• 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
..
assembler-ia32-inl.h Loading commit data...
assembler-ia32.cc Loading commit data...
assembler-ia32.h Loading commit data...
builtins-ia32.cc Loading commit data...
cfg-ia32.cc Loading commit data...
codegen-ia32-inl.h Loading commit data...
codegen-ia32.cc Loading commit data...
codegen-ia32.h Loading commit data...
cpu-ia32.cc Loading commit data...
debug-ia32.cc Loading commit data...
disasm-ia32.cc Loading commit data...
frames-ia32.cc Loading commit data...
frames-ia32.h Loading commit data...
ic-ia32.cc Loading commit data...
jump-target-ia32.cc Loading commit data...
macro-assembler-ia32.cc Loading commit data...
macro-assembler-ia32.h Loading commit data...
regexp-macro-assembler-ia32.cc Loading commit data...
regexp-macro-assembler-ia32.h Loading commit data...
register-allocator-ia32-inl.h Loading commit data...
register-allocator-ia32.cc Loading commit data...
register-allocator-ia32.h Loading commit data...
simulator-ia32.cc Loading commit data...
simulator-ia32.h Loading commit data...
stub-cache-ia32.cc Loading commit data...
virtual-frame-ia32.cc Loading commit data...
virtual-frame-ia32.h Loading commit data...