Uses of Class
org.ek9lang.compiler.ir.instructions.OperationInstr
Packages that use OperationInstr
Package
Description
JVM Bytecode Generation - Transforms EK9 IR into JVM bytecode.
Common parts of processing that can be reused across various phases.
IR Instruction Classes - The instruction set for EK9 intermediate representation.
IR Support Utilities - Helper classes for IR generation and processing.
K - Intermediate Representation Generation.
Synthetic operator and method generation for EK9.
M - Intermediate Representation Analysis and Optimization.
-
Uses of OperationInstr in org.ek9lang.compiler.backend.jvm
Methods in org.ek9lang.compiler.backend.jvm with parameters of type OperationInstrModifier and TypeMethodDescription(package private) Ek9MethodKindMethodKindClassifier.classifyConstructor(IRConstruct construct, OperationInstr operation) Classify a general constructor funnel emission.(package private) Ek9MethodKindMethodKindClassifier.classifyMethod(IRConstruct construct, OperationInstr operation) Classify a general (non-ctor, non-_c_init/_i_init/_main) funnel method.(package private) booleanSuperConstructorAsmGenerator.hasThisDelegation(OperationInstr operation) Check if constructor delegates to another constructor via this().Constructor parameters in org.ek9lang.compiler.backend.jvm with type arguments of type OperationInstrModifierConstructorDescription(package private)CovariantBridgeAsmGenerator(FullyQualifiedJvmName jvmNameConverter, Function<OperationInstr, String> descriptorOf, BiFunction<OperationInstr, String, String> descriptorReturning) Create with the creator's descriptor builders.(package private)CovariantBridgeAsmGenerator(FullyQualifiedJvmName jvmNameConverter, Function<OperationInstr, String> descriptorOf, BiFunction<OperationInstr, String, String> descriptorReturning) Create with the creator's descriptor builders. -
Uses of OperationInstr in org.ek9lang.compiler.common
Methods in org.ek9lang.compiler.common with parameters of type OperationInstrModifier and TypeMethodDescriptiondefault voidINodeVisitor.visit(OperationInstr operation) voidNodePrinter.visit(OperationInstr operation) -
Uses of OperationInstr in org.ek9lang.compiler.ir.instructions
Classes in org.ek9lang.compiler.ir.instructions that implement interfaces with type arguments of type OperationInstrModifier and TypeClassDescriptionfinal classTHE executed instructions of one operation (one callable), flattened asExecutedInstructionsIndescribes - the per-callable unit an IR analysis reads.final classAn operation on some sort on a Construct.Methods in org.ek9lang.compiler.ir.instructions that return OperationInstrMethods in org.ek9lang.compiler.ir.instructions that return types with arguments of type OperationInstrMethods in org.ek9lang.compiler.ir.instructions with parameters of type OperationInstrModifier and TypeMethodDescriptionvoidIRConstruct.add(OperationInstr operation) ExecutedInstructionsOf.apply(OperationInstr operation) intOperationInstr.compareTo(OperationInstr o) Orders the operations of a construct in the emitted IR (viaIRConstruct.getOperations()). -
Uses of OperationInstr in org.ek9lang.compiler.ir.support
Methods in org.ek9lang.compiler.ir.support with parameters of type OperationInstrModifier and TypeMethodDescriptionvoidRewrite an operation's body in place (the operation takes the rebuilt body, or keeps its own when nothing changed).voidIRRewriter.rewriteLists(OperationInstr operation, UnaryOperator<List<IRInstr>> listRewrite) Rewrite an operation's body list by list: every nested list first (bottom-up), then the list that holds it. -
Uses of OperationInstr in org.ek9lang.compiler.phase7
Methods in org.ek9lang.compiler.phase7 that return OperationInstrModifier and TypeMethodDescriptionprotected OperationInstrAbstractDfnGenerator.newSyntheticInitOperation(IScope scope, String methodName) Methods in org.ek9lang.compiler.phase7 with parameters of type OperationInstrModifier and TypeMethodDescriptionAggregateDfnGenerator.beforeInstanceInit(OperationInstr operation) What a constructor does between its construction call and its_i_init, while its body is built: nothing, but for a dynamic class's capture constructor (DynamicClassDfnGenerator), which stores the captured values there.DynamicClassDfnGenerator.beforeInstanceInit(OperationInstr operation) The capture stores, in THE capture constructor only.(package private) voidDispatchTableGenerator.generateAndPrepend(OperationInstr dispatcherOperation, AggregateSymbol aggregateSymbol) Generate dispatch table for a dispatcher operation and prepend to its body.protected voidAbstractDfnGenerator.processAsMethodOrOperator(OperationInstr operation, EK9Parser.OperationDetailsContext ctx) protected voidAbstractDfnGenerator.processAsMethodOrOperator(OperationInstr operation, EK9Parser.OperationDetailsContext ctx, List<IRInstr> beforeInstanceInit) AbstractDfnGenerator.processAsMethodOrOperator(OperationInstr, EK9Parser.OperationDetailsContext), withbeforeInstanceInit- an explicit capture constructor's capture stores (CaptureStores) - just after the constructor's construction call, before its_i_init.(package private) voidConstrainedDelegation.processDelegationMethod(OperationInstr operation) Generate delegation method/operator body.(package private) voidConstrainedConstruction.processFallibleFactory(OperationInstr operation) Generate the fallible factoryof(arg as Base) -> Constrained?.(package private) voidConstrainedConstruction.processIsSetOperator(OperationInstr operation) Generate?asthis._viable AND this._delegate._isSet()rather than delegating it.(package private) voidConstrainedConstruction.processParameterizedConstructor(OperationInstr operation, List<ISymbol> params) Generate constructor that takes a base-type argument and stores it in the delegate field.(package private) voidConstrainedDelegation.processPromote(OperationInstr operation, String scopeName) Promote (#^) - and the synthesised_base(), scoped asscopeName- returns a fresh COPY of the delegate, never the delegate field reference.protected voidAbstractDfnGenerator.processSyntheticConstructor(OperationInstr operation) Process a synthetic constructor (default constructor created by earlier phases).protected voidAbstractDfnGenerator.processSyntheticConstructor(OperationInstr operation, List<IRInstr> beforeInstanceInit) AbstractDfnGenerator.processSyntheticConstructor(OperationInstr), withbeforeInstanceInit- a dynamic function's or a dynamic class's capture stores (CaptureStores) - between the super call and_i_init.protected voidAbstractDfnGenerator.processSyntheticConstructor(OperationInstr operation, IScopedSymbol superType) A synthetic constructor whose super the caller names.Method parameters in org.ek9lang.compiler.phase7 with type arguments of type OperationInstrModifier and TypeMethodDescription(package private) voidDispatchTablePass.generate(Map<MethodSymbol, OperationInstr> operationsMap, AggregateSymbol aggregateSymbol, SharedThreadContext<CompilableProgram> compilableProgramAccess) -
Uses of OperationInstr in org.ek9lang.compiler.phase7.generator
Classes in org.ek9lang.compiler.phase7.generator that implement interfaces with type arguments of type OperationInstrModifier and TypeClassDescriptionfinal classDeals with the generation of the IR for OperationDetails.Methods in org.ek9lang.compiler.phase7.generator with parameters of type OperationInstrModifier and TypeMethodDescriptionvoidOperationDfnGenerator.accept(OperationInstr operation, EK9Parser.OperationDetailsContext ctx) voidOperationDfnGenerator.accept(OperationInstr operation, EK9Parser.OperationDetailsContext ctx, List<IRInstr> beforeInstanceInit) OperationDfnGenerator.accept(OperationInstr, EK9Parser.OperationDetailsContext), withbeforeInstanceInit- THE capture stores of a dynamic class's explicit capture constructor (CaptureStores,support/IsCaptureConstructor) - placed while the body is built: just after the constructor's super(...) call, implicit or explicit, or first when it has none or delegates with this(...) - so before every_i_initit runs and outside the partial-construction region (D10).voidOperationDfnGenerator.acceptInMethodFrame(OperationInstr operation, EK9Parser.OperationDetailsContext ctx) THE operation in its own method frame (IR tidy W3.4, OPS-17): the frame named after the operation, with the debug info of its symbol's token, aroundOperationDfnGenerator.accept(OperationInstr, EK9Parser.OperationDetailsContext).voidOperationDfnGenerator.acceptInMethodFrame(OperationInstr operation, EK9Parser.OperationDetailsContext ctx, List<IRInstr> beforeInstanceInit) OperationDfnGenerator.acceptInMethodFrame(OperationInstr, EK9Parser.OperationDetailsContext)for a dynamic class's explicit capture constructor, with its capture stores (OperationDfnGenerator.accept(OperationInstr, EK9Parser.OperationDetailsContext, List)).voidTextBodyMethodGenerator.process(OperationInstr operation, EK9Parser.TextBodyDeclarationContext ctx) Process a text body method and populate the OperationInstr with IR instructions - THE operation-body skeleton (OperationBodyPlan): parameters, the receiver's cleaning of its 'sanitized' ones, then the text's string, which is the returned value. -
Uses of OperationInstr in org.ek9lang.compiler.phase7.synthesis
Methods in org.ek9lang.compiler.phase7.synthesis that return OperationInstrModifier and TypeMethodDescriptionSyntheticOperatorGenerator.generateEnumConstructor(MethodSymbol constructorSymbol, AggregateSymbol aggregateSymbol) Generate IR for a parameterized enum constructor (copy or String).SyntheticOperatorGenerator.generateMethod(MethodSymbol methodSymbol, AggregateSymbol aggregateSymbol) Generate IR for a synthetic regular method (non-operator).SyntheticOperatorGenerator.generateOperator(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate IR for a synthetic operator. -
Uses of OperationInstr in org.ek9lang.compiler.phase9
Classes in org.ek9lang.compiler.phase9 that implement interfaces with type arguments of type OperationInstrModifier and TypeClassDescriptionfinal classTHE back-edge placement of IR_OPTIMISATION: a point instruction at the end of every loop body of an operation - the back edge, reached once per iteration after the body's own scope has dropped its values - unless one of the same opcode is already last.final classTHE callback-reachable operations of a program: those the runtime may call - directly, or through other operations - while one of its C frames is live below them (EK9_NATIVE_CYCLE_COLLECTOR_DESIGN.md ยง14.3).Methods in org.ek9lang.compiler.phase9 that return types with arguments of type OperationInstrModifier and TypeMethodDescriptionCallbackReachableOperations.apply(Collection<IRConstruct> constructs) CallbackReachableOperations.callEdges(Collection<IRConstruct> constructs) THE call edges of a program as this analysis follows them: for each operation, the operations a CALL in it may run - the named type's operations of that name, and for a virtual or trait call the same name on every type below it.CallbackReachableOperations.callEdges(Collection<IRConstruct> constructs) THE call edges of a program as this analysis follows them: for each operation, the operations a CALL in it may run - the named type's operations of that name, and for a virtual or trait call the same name on every type below it.Methods in org.ek9lang.compiler.phase9 with parameters of type OperationInstrModifier and TypeMethodDescriptionvoidBackEdgePoints.accept(OperationInstr operation, Supplier<IRInstr> point) booleanCancelPointPlacement.isPlacedIn(OperationInstr operation) Does this operation get cancel points: one the runtime may call (so one an async task may run), with a body, and not a class initialiser.(package private) PublishedValues.WherePublishedValues.of(IRConstruct construct, OperationInstr operation) Where the instructions of this operation of this construct are.Method parameters in org.ek9lang.compiler.phase9 with type arguments of type OperationInstrModifier and TypeMethodDescription(package private) List<RetainReleaseBalanceVerifier.Finding> RetainReleaseBalanceVerifier.verify(IRConstruct construct, Function<OperationInstr, Set<String>> movedOut) Verify a LOWERED construct: asRetainReleaseBalanceVerifier.verify(IRConstruct), told for each operation the variables its ownership form moved out of (MovedOutOf).