• kmillikin@chromium.org's avatar
    Add support for (some) assignment expressions to the CFG builder and · 9edc69c7
    kmillikin@chromium.org authored
    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
    9edc69c7
Name
Last commit
Last update
benchmarks Loading commit data...
include Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
tools Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
ChangeLog Loading commit data...
LICENSE Loading commit data...
SConstruct Loading commit data...