• danno's avatar
    [compiler] Extend the functionality of CodeStubAssembler · 1f28904b
    danno authored
    After this change, the functionality of the CodeStubAssembler should be
    sufficient to generate non-trivial stubs (e.g. the KeyedLoadIC) with control
    flow, variables and probing of internal meta data structures.
    
    Specifically this patch:
    
    * introduces a Label class, which allows stubs to construct graphs that don't
      have linear control graphs.
    * introduces a Variable class. Variables can be bound to Node* values at
      different points in a non-linear control flow graph. In conjunction with the
      Label machinery, the CodeStubAssembler ensures that Phi nodes are inserted at
      the "minimal" set of merge points.
    * adds Tail calling support to other Stubs and to any arbitrary code whose
      interface can be described by a CallInterfaceDescriptor.
    * provides new macros for accessing FixedArray elements that are optimized for
      use with Smi values.
    
    Review URL: https://codereview.chromium.org/1649723002
    
    Cr-Commit-Position: refs/heads/master@{#33664}
    1f28904b
code-stub-assembler.cc 15.4 KB