Description[compiler] Extend the functionality of CodeStubAssembler
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.
Committed: https://crrev.com/1f28904b2487a52d75e4c4fcd4a5a1abaf3456f5
Cr-Commit-Position: refs/heads/master@{#33664}
Patch Set 1 #Patch Set 2 : Latest #Patch Set 3 : Latest #
Total comments: 24
Patch Set 4 : Review feedback #Patch Set 5 : Nit #Patch Set 6 : Review feedback, fix tests #Patch Set 7 : Fix windows #Patch Set 8 : Fix build #Patch Set 9 : Fix release build #
Messages
Total messages: 25 (14 generated)
|