Uses of Interface
org.kink_lang.kink.internal.program.itree.Itree
Packages that use Itree
Package
Description
Compiles itree to FunVal by runtime bytecode generation.
Intermediate representation before JVM byte code compilation.
Itree (intermediate tree) representation of Kink programs.
Provides optimizers of itrees.
Conversion of an itree to SSA - Static Single Assignment - form.
-
Uses of Itree in org.kink_lang.kink.internal.compile
Methods in org.kink_lang.kink.internal.compile with parameters of type Itree -
Uses of Itree in org.kink_lang.kink.internal.compile.javaclassir
Methods in org.kink_lang.kink.internal.compile.javaclassir with parameters of type ItreeModifier and TypeMethodDescriptionCompiles a top level fun.InsnsGenerator.generate(Itree itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) Generates insns of doResume.Method parameters in org.kink_lang.kink.internal.compile.javaclassir with type arguments of type ItreeModifier and TypeMethodDescriptionControlGenerator.branch(BranchItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) Generates insns of branch without else.OverriddenControlGenerator.branch(BranchItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) UnchangedControlGenerator.branch(BranchItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) ControlGenerator.branchWithElse(BranchWithElseItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) Generates insns of branch with else.OverriddenControlGenerator.branchWithElse(BranchWithElseItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) UnchangedControlGenerator.branchWithElse(BranchWithElseItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) InFastFunLetRecGenerator.letRec(LetRecItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate) InSlowFunLetRecGenerator.letRec(LetRecItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate) LetRecGenerator.letRec(LetRecItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate) Generates letrec insns.ControlGenerator.noTraitNewVal(NoTraitNewValItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) Generates insns of new_val without trait.OverriddenControlGenerator.noTraitNewVal(NoTraitNewValItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) UnchangedControlGenerator.noTraitNewVal(NoTraitNewValItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) ControlGenerator.preloadedIf(IfItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) Generates insns ofifpreloaded fun.OverriddenControlGenerator.preloadedIf(IfItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) UnchangedControlGenerator.preloadedIf(IfItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) ControlGenerator.traitNewVal(TraitNewValItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) Generates insns of new_val with trait.OverriddenControlGenerator.traitNewVal(TraitNewValItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) UnchangedControlGenerator.traitNewVal(TraitNewValItree itree, BiFunction<Itree, org.kink_lang.kink.internal.compile.javaclassir.ResultContext, List<Insn>> generate, org.kink_lang.kink.internal.compile.javaclassir.ResultContext resultCtx) -
Uses of Itree in org.kink_lang.kink.internal.program.itree
Subinterfaces of Itree in org.kink_lang.kink.internal.program.itreeClasses in org.kink_lang.kink.internal.program.itree that implement ItreeModifier and TypeClassDescriptionfinal recordItree for args passing such as[:X :Y :Z] <- \args.final recordA context arg vec itree.final recordItree of an assignment.final recordAn arithmetic operation whose second operand is a number literal.final recordAn itree of a context binding.final recordInvocation of branch in the following form.final recordInvocation of branch in the following form.final recordA deref itree.classA fun in SSA (static single assignment) form.final recordAn itree of invocation ofifpreloaded fun.final recordA lderef itree.final recordLetrec itree.final recordItree of local var assignment such as:X <- 42.final recordA mcall itree.final recordA nada itree.final recordItree of an args passing in the form[:X [:A :B] :Y] <- \args.final recordItree of an args passing in the form[:X [:A :B] :Y] <- Rhs.final recordItree of new_val('X' x 'Y' y).final recordA num itree.final recordAssignment in the form[:A :B :C.opt :D.opt :R.rest] <- xxx.final recordAssignment in the form[:A :B :C.opt :D.opt] <- xxx.final recordA context recv itree.final recordAssignment to a vec in the form[:R.rest] <- xxx.final recordAn itree of sequential evaluation; that corresponds to a not-empty seq node.final recordA fun itree which is not in SSA (static single assignment) form.final recordItree of nonlocal var assignment such asB:X <- 42.final recordA str itree.final recordA fun call which is not a method call, and has a sym.final recordItree of new_val(...final recordA varref itree.final recordAssignment in the form[:Foo X:Bar] <- Rhs.final recordA vec itree.Methods in org.kink_lang.kink.internal.program.itree that return ItreeModifier and TypeMethodDescriptionTranslates an AST node to an itree.FastFunItree.body()Returns the fun body itree.SlowFunItree.body()Returns the value of thebodyrecord component.IfItree.cond()Returns the value of thecondrecord component.static ItreeDeepTransformer.deepTransform(Itree itree, DeepTransformer.Callback callback) Transformsitreetraversing the sub itrees in the evaluation order.default ItreeItree.expr()ItreeElem.expr()Returns the expression in the elem.ItreeElem.Spread.expr()Returns the value of theexprrecord component.SymcallItree.fun()Returns the value of thefunrecord component.SeqItree.getLastStep()Returns the last step.Transforms the itree.AssignmentItree.lhs()Returns the value of thelhsrecord component.DerefItree.owner()Returns the value of theownerrecord component.GenericVar.owner()Returns the value of theownerrecord component.StoreItree.owner()Returns the value of theownerrecord component.VarrefItree.owner()Returns the value of theownerrecord component.McallItree.ownerRecv()Returns the value of theownerRecvrecord component.BiArithmeticItree.recv()Returns the value of therecvrecord component.SymcallItree.recv()Returns the value of therecvrecord component.AssignmentItree.rhs()Returns the value of therhsrecord component.ItreeWithRhs.rhs()Returns the right-hand-side of the itree.LstoreItree.rhs()Returns the value of therhsrecord component.NestedVecAssignmentItree.rhs()Returns the value of therhsrecord component.OptRestVecAssignmentItree.rhs()Returns the value of therhsrecord component.OptVecAssignmentItree.rhs()Returns the value of therhsrecord component.RestVecAssignmentItree.rhs()Returns the value of therhsrecord component.StoreItree.rhs()Returns the value of therhsrecord component.VarrefVecAssignmentItree.rhs()Returns the value of therhsrecord component.TraitNewValItree.trait()Returns the value of thetraitrecord component.SymValPair.val()Returns the value of thevalrecord component.Methods in org.kink_lang.kink.internal.program.itree that return types with arguments of type ItreeModifier and TypeMethodDescriptionSeqItree.getLeadingSteps()Returns the steps excepting the last one.SeqItree.steps()Returns the value of thestepsrecord component.Methods in org.kink_lang.kink.internal.program.itree with parameters of type ItreeModifier and TypeMethodDescriptionstatic Map<LocalVar,LocalVarContent> ContentAnalysis.analyzeContent(Itree body) Returns the mapping from local vars to the contents.static ItreeDeepTransformer.deepTransform(Itree itree, DeepTransformer.Callback callback) Transformsitreetraversing the sub itrees in the evaluation order.Transforms the itree.Constructors in org.kink_lang.kink.internal.program.itree with parameters of type ItreeModifierConstructorDescriptionAssignmentItree(Itree lhs, Itree rhs, int pos) Creates an instance of aAssignmentItreerecord class.BiArithmeticItree(Itree recv, BiArithmeticItree.Op op, BigDecimal arg, int pos) Creates an instance of aBiArithmeticItreerecord class.DerefItree(Itree owner, String sym, int pos) Creates an instance of aDerefItreerecord class.FastFunItree(Itree body, int pos) Constructs a fun itree in SSA form.GenericVar(Itree owner, String name) Creates an instance of aGenericVarrecord class.IfItree(Itree cond, FastFunItree trueFun, Optional<FastFunItree> falseFun, int pos) Creates an instance of aIfItreerecord class.LstoreItree(LocalVar lvar, Itree rhs, int pos) Creates an instance of aLstoreItreerecord class.McallItree(Itree ownerRecv, String sym, List<ItreeElem> args, int pos) Constructs a mcall itree.NestedVecAssignmentItree(List<NestedParam> params, Itree rhs, int pos) Constructs an itree.OptRestVecAssignmentItree(List<LocalVar> mandatory, List<LocalVar> opt, LocalVar rest, Itree rhs, int pos) Constructs an assignment itree.Constructs an assignment itree.RestVecAssignmentItree(LocalVar lvar, Itree rhs, int pos) Creates an instance of aRestVecAssignmentItreerecord class.SlowFunItree(Itree body, int pos) Creates an instance of aSlowFunItreerecord class.Creates an instance of aSpreadrecord class.StoreItree(Itree owner, String sym, Itree rhs, int pos) Creates an instance of aStoreItreerecord class.Constructs an itree.SymValPair(String sym, Itree val) Creates an instance of aSymValPairrecord class.TraitNewValItree(Itree trait, int spreadPos, List<SymValPair> symValPairs, int pos) Constructs an itree.VarrefItree(Itree owner, String sym, int pos) Creates an instance of aVarrefItreerecord class.VarrefVecAssignmentItree(List<VarrefParam> params, Itree rhs, int pos) Constructs an assignment.Constructor parameters in org.kink_lang.kink.internal.program.itree with type arguments of type Itree -
Uses of Itree in org.kink_lang.kink.internal.program.itreeoptimize
Classes in org.kink_lang.kink.internal.program.itreeoptimize with type parameters of type ItreeModifier and TypeClassDescriptionclassTemplateArgsPassingOptimizer<S extends ItreeWithRhs,D extends Itree> Converts an assignment to args passing.Methods in org.kink_lang.kink.internal.program.itreeoptimize that return ItreeModifier and TypeMethodDescriptionAssignmentOptimizer.visit(McallItree mcall) BiArithmeticInliner.visit(McallItree mcall) BranchInliner.visit(SymcallItree scall) BranchWithElseInliner.visit(SymcallItree org) ContentPropagator.visit(LderefItree lderef) DeadLstoreEliminator.visit(LstoreItree lstore) FunMcallToSymcallOptimizer.visit(McallItree mcall) IfInliner.visit(SymcallItree scall) LderefOptimizer.visit(DerefItree deref) LetRecProducer.visit(LstoreItree lstore) LetRecReducer.visit(LetRecItree letrec) LetSymcallInliner.visit(FastFunItree fun) LstoreOptimizer.visit(StoreItree store) MinusConstantFolder.visit(McallItree mcall) NestedVecAssignmentInliner.visit(AssignmentItree itree) OptRestVecAssignmentOptimizer.visit(AssignmentItree itree) OptVecAssignmentOptimizer.visit(AssignmentItree assignment) ParenContOptimizer.visit(DerefItree deref) ParenContOptimizer.visit(McallItree mcall) ParenContOptimizer.visit(SymcallItree scall) ParenContOptimizer.visit(VarrefItree varref) RestVecAssignmentOptimizer.visit(OptRestVecAssignmentItree itree) SimpleNewValInliner.visit(SymcallItree scall) SsafyOptimizer.visit(SlowFunItree itree) StoreOptimizer.visit(AssignmentItree assignment) TemplateArgsPassingOptimizer.visit(FastFunItree fun) TemplateArgsPassingOptimizer.visit(SlowFunItree fun) TraitNewValOptimizer.visit(SymcallItree scall) UnnestArgsPassingOptimizer.visit(NestedArgsPassingItree itree) VarrefVecAssignmentInliner.visit(AssignmentItree assignment) VarrefVecAssignmentToLocalOptimizer.visit(VarrefVecAssignmentItree assignment) Methods in org.kink_lang.kink.internal.program.itreeoptimize that return types with arguments of type ItreeModifier and TypeMethodDescriptionItreeOptimizers.getOptimizer()Returns the optimizer function of itrees.ItreeOptimizers.getOptimizer()Returns the optimizer function of itrees.Methods in org.kink_lang.kink.internal.program.itreeoptimize with parameters of type ItreeModifier and TypeMethodDescriptionConstructor parameters in org.kink_lang.kink.internal.program.itreeoptimize with type arguments of type ItreeModifierConstructorDescriptionRepetitiveOptimizer(List<? extends Function<? super Itree, ? extends Itree>> componentOptimizers) Constructs a composite optimizer.RepetitiveOptimizer(List<? extends Function<? super Itree, ? extends Itree>> componentOptimizers) Constructs a composite optimizer. -
Uses of Itree in org.kink_lang.kink.internal.program.itreeoptimize.ssafy
Methods in org.kink_lang.kink.internal.program.itreeoptimize.ssafy that return ItreeMethods in org.kink_lang.kink.internal.program.itreeoptimize.ssafy with parameters of type ItreeModifier and TypeMethodDescriptionstatic booleanSsaChecker.canConvertToSsa(Itree body) Determines whether a fun can be converted to SSA.static ItreeConvertsfunBodyinto SSA form.