Add support for (some) assignment expressions to the CFG builder and
fast-mode compiler. 1. We avoid generating a useless temporary for assignments with nontrivial right-hand sides. Instead of translating id = expr into: ... tmp = <last expr instruction> id = tmp we generate directly ... id = <last expr instruction> by passing a data destination ('hint') down the AST. The semantics is to use the destination as a result location if a temp is needed. It may be ignored. NULL indicates I don't care and you should generate a temp. 2. We correctly handle assignments as subexpressions. When building the CFG for an expression we accumulate the assigned variables and we emit a move to a fresh temporary if a value in a variable is in jeopardy of being overwritten. Review URL: http://codereview.chromium.org/165056 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2643 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Showing
This diff is collapsed.
Please
register
or
sign in
to comment