Module org.kink_lang.kink
Class LetInliner
java.lang.Object
org.kink_lang.kink.internal.program.itree.SkeltonItreeVisitor<Itree>
org.kink_lang.kink.internal.program.itreeoptimize.BaseOptimizer
org.kink_lang.kink.internal.program.itreeoptimize.LetInliner
- All Implemented Interfaces:
Function<Itree,,Itree> UnaryOperator<Itree>,ItreeVisitor<Itree>
Inlining optimizer of a let clause on the tail context.
Example program before inlining:
{ do_foo{ ,,, }
:X = produce_arg
do_bar{ ,,, }
}
This optimizer converts the program roughly to the following.
{ do_foo{ ,,, }
:X <- produce_arg
do_bar{ ,,, }
}
-
Constructor Summary
Constructors -
Method Summary
Methods inherited from class org.kink_lang.kink.internal.program.itreeoptimize.BaseOptimizer
applyMethods inherited from class org.kink_lang.kink.internal.program.itree.SkeltonItreeVisitor
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
Constructor Details
-
LetInliner
public LetInliner()
-
-
Method Details
-
visit
Description copied from interface:ItreeVisitorVisits an indexable fun itree.- Specified by:
visitin interfaceItreeVisitor<Itree>- Overrides:
visitin classSkeltonItreeVisitor<Itree>- Parameters:
fun- the indexable fun itree.- Returns:
- the result.
-