Changeset 1034 for trunk/rphp/doc/phc-pass-notes.txt
- Timestamp:
- 02/11/10 11:18:34 (7 months ago)
- Files:
-
- 1 modified
-
trunk/rphp/doc/phc-pass-notes.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/rphp/doc/phc-pass-notes.txt
r977 r1034 10 10 Constant_folding: a) we don't have a match() function in rphp b) We don't call to zend php for folding constant expressions 11 11 Remove_concat_null: Our parser shouldn't create these concats, so this issue is phc specific. 12 Desugar : - and/or renaming to && and || happens already in our parser12 Desugar *implemented Desugar* : - and/or renaming to && and || happens already in our parser 13 13 - we don't have classes yet (no need to replace self:: and parent:: yet) 14 14 - same for interfaces 15 15 - we don't store cast types as strings but as enum, so we don't have to normalize them. 16 - we already generate the same AST for return; andreturn NULL;16 - we need this to replace return; with return NULL; 17 17 - i'm unsure whether we want to transform - x to 0 - x 18 18 Split_multiple_arguments: We got a better facility to iterate over children nodes, so we don't need this imho. 19 Split_unset_isset : this one makes more sense, but we need a facility to return an expression list first (sth block-like)20 Echo_split : we definitly want this for the reason given in Echo_split.cpp, but see S-u-i...21 Early_lower_control_flow : we want this at least partially because it simplifies loop codegen later on, but we've to be19 Split_unset_isset *implemented Split_Builtins*: this one makes more sense, but we need a facility to return an expression list first (sth block-like) 20 Echo_split *implemented Split_Builtins*: we definitly want this for the reason given in Echo_split.cpp, but see S-u-i... 21 Early_lower_control_flow *implemented Early_lower_control_flow except switch and foreach!*: we want this at least partially because it simplifies loop codegen later on, but we've to be 22 22 super careful with continue. Probably the transformations by phc can be used, but we want to 23 23 sure they are optimized later if the loop body doesn't contain a continue;. 24 Lower_expr_flow : We want everything except the comma-seperated list transform. We need an EXPR_LIST anyways, i'd like24 Lower_expr_flow *implemented in Lower_Binary_Op and Lower_Conditional_Expr* and: We want everything except the comma-seperated list transform. We need an EXPR_LIST anyways, i'd like 25 25 to have one which is not binary but uses a std::vector or sth like that 26 26 List_shredder: We want this one :) … … 28 28 nearly everything. 29 29 Pre_post_op_shredder: makes sense, but is a bit more complex. 30 Switch_bin_op : should simplify codegen a bit :)30 Switch_bin_op *implented in Lower_Binary_Op*: should simplify codegen a bit :) 31 31 Remove_solo_exprs: because we don't have an Eval_expr facility, we can't really do this pass so easily as phc can. 32 32 I'm unsure whether we want to support this or not.
