compiler.tree vocabulary
Factor handbook > Vocabulary index


Documentation
High-level optimizer operating on lexical tree SSA IR

Meta-data
Authors:Slava Pestov


Words

Tuple classes
ClassSuperclassSlots
#alien-assembly #alien-node
#alien-callback nodeparams child
#alien-indirect #alien-node
#alien-invoke #alien-node
#alien-node nodeparams in-d out-d
#branch nodein-d children live-branches
#call nodeword in-d out-d body method class info
#call-recursive nodelabel in-d out-d info
#copy #renamingin-d out-d
#declare nodedeclaration
#dispatch #branch
#enter-recursive nodein-d out-d label info
#if #branch
#introduce nodeout-d
#phi nodephi-in-d phi-info-d out-d terminated
#push nodeliteral out-d
#recursive nodein-d word label loop? child
#renaming node
#return nodein-d info
#return-recursive #renamingin-d out-d label info
#shuffle #renamingmapping in-d out-d in-r out-r
#terminate nodein-d in-r
node identity-tuple


Generic words
WordStack effect
inputs/outputs( #renaming -- inputs outputs )


Ordinary words
WordStack effect
<#call-recursive>( inputs outputs label -- node )
<#call>( inputs outputs word -- node )
<#copy>( inputs outputs -- node )
<#data-shuffle>( in-d out-d mapping -- node )
<#declare>( declaration -- node )
<#dispatch>( n branches -- node )
<#drop>( inputs -- node )
<#enter-recursive>( label inputs outputs -- node )
<#if>( ? true false -- node )
<#introduce>( out-d -- node )
<#phi>( d-phi-in d-phi-out terminated -- node )
<#push>( literal value -- node )
<#recursive>( label inputs child -- node )
<#return-recursive>( label inputs outputs -- node )
<#return>( stack -- node )
<#shuffle>( in-d out-d in-r out-r mapping -- node )
ends-with-terminate?( nodes -- ? )
new-branch( value children class -- node )
node,( node -- )


Class predicate words
WordStack effect
#alien-assembly?( object -- ? )
#alien-callback?( object -- ? )
#alien-indirect?( object -- ? )
#alien-invoke?( object -- ? )
#alien-node?( object -- ? )
#branch?( object -- ? )
#call-recursive?( object -- ? )
#call?( object -- ? )
#copy?( object -- ? )
#declare?( object -- ? )
#dispatch?( object -- ? )
#enter-recursive?( object -- ? )
#if?( object -- ? )
#introduce?( object -- ? )
#phi?( object -- ? )
#push?( object -- ? )
#recursive?( object -- ? )
#renaming?( object -- ? )
#return-recursive?( object -- ? )
#return?( object -- ? )
#shuffle?( object -- ? )
#terminate?( object -- ? )
node?( object -- ? )


Files


Children from resource:basis
VocabularySummary
compiler.tree.builderConstructing high-level tree IR
compiler.tree.checkerDebugging tool for checking various invariants of tree IR
compiler.tree.cleanupFinalizing speculative inlining and constant folding from propagation pass
compiler.tree.combinatorsCombinators for iterating over tree IR
compiler.tree.comparisonsUtilities for working with binary comparison operations
compiler.tree.dead-codeDead code elimination
compiler.tree.debuggerTools for debugging high-level optimizer
compiler.tree.def-useDef/use chain construction
compiler.tree.escape-analysisEscape analysis for tuple unboxing
compiler.tree.finalizationFinal pass cleans up high-level IR
compiler.tree.identitiesApplying arithmetic identities to integer code
compiler.tree.late-optimizationsUtilities used by several optimization passes run in the later stages
compiler.tree.modular-arithmeticModular arithmetic optimization
compiler.tree.normalizationNormalize IR created by high level IR builder to simplify subsequent passes
compiler.tree.optimizerTop-level harness for high-level optimizer
compiler.tree.propagationClass, interval, constant propagation
compiler.tree.recursiveAnalysis of inline recursive combinators and loop detection
compiler.tree.tuple-unboxingTuple unboxing