Uses of Class
org.ek9lang.compiler.ir.instructions.IRInstr
Packages that use IRInstr
Package
Description
Common parts of processing that can be reused across various phases.
K - Intermediate Representation Generation.
Synthetic operator and method generation for EK9.
Support classes for synthetic operator IR generation.
-
Uses of IRInstr in org.ek9lang.compiler.backend.jvm
Methods in org.ek9lang.compiler.backend.jvm that return types with arguments of type IRInstrModifier and TypeMethodDescriptionLoopCaseData.body()Returns the value of thebodyrecord component.LoopCaseData.bodySetup()Returns the value of thebodySetuprecord component.LoopCaseData.conditionTemplate()Returns the value of theconditionTemplaterecord component.LoopCaseData.increment()Returns the value of theincrementrecord component.Methods in org.ek9lang.compiler.backend.jvm with parameters of type IRInstrModifier and TypeMethodDescriptionvoidDispatch IRInstr to typed visit methods.Method parameters in org.ek9lang.compiler.backend.jvm with type arguments of type IRInstrModifier and TypeMethodDescriptionprotected voidAbstractControlFlowAsmGenerator.processBodyEvaluation(List<IRInstr> bodyEvaluation) Process body evaluation instructions via recursive visiting.protected voidAbstractControlFlowAsmGenerator.processConditionEvaluation(List<IRInstr> conditionEvaluation) Process condition evaluation instructions via recursive visiting.protected voidAbstractControlFlowAsmGenerator.processInstructions(List<IRInstr> instructions) Process list of IR instructions via recursive delegation to OutputVisitor.Constructor parameters in org.ek9lang.compiler.backend.jvm with type arguments of type IRInstrModifierConstructorDescription(package private)LoopCaseData(org.objectweb.asm.Label loopStart, List<IRInstr> conditionTemplate, String conditionPrimitive, List<IRInstr> bodySetup, List<IRInstr> body, List<IRInstr> increment, org.objectweb.asm.Label endLabel, String loopScopeId, BytecodeGenerationContext.DispatchCase dispatchCase) Creates an instance of aLoopCaseDatarecord class. -
Uses of IRInstr in org.ek9lang.compiler.common
Methods in org.ek9lang.compiler.common with parameters of type IRInstr -
Uses of IRInstr in org.ek9lang.compiler.ir.data
Methods in org.ek9lang.compiler.ir.data that return types with arguments of type IRInstrModifier and TypeMethodDescriptionConditionCaseDetails.bodyEvaluation()Returns the value of thebodyEvaluationrecord component.ConditionCaseDetails.conditionEvaluation()Returns the value of theconditionEvaluationrecord component.ControlFlowChainDetails.defaultBodyEvaluation()Get default body evaluation instructions.DefaultCaseDetails.defaultBodyEvaluation()Returns the value of thedefaultBodyEvaluationrecord component.ControlFlowChainDetails.evaluationVariableSetup()Get evaluation variable setup instructions.EvaluationVariableDetails.evaluationVariableSetup()Returns the value of theevaluationVariableSetuprecord component.ControlFlowChainDetails.finallyBlockEvaluation()Returns the value of thefinallyBlockEvaluationrecord component.ControlFlowChainDetails.guardEntryCheck()Get guard entry check instructions (for WHILE/DO-WHILE loops).GuardVariableDetails.guardEntryCheck()Returns the value of theguardEntryCheckrecord component.ControlFlowChainDetails.guardScopeSetup()Get guard scope setup instructions.GuardVariableDetails.guardScopeSetup()Returns the value of theguardScopeSetuprecord component.ConditionCaseDetails.guardUpdates()Returns the value of theguardUpdatesrecord component.ControlFlowChainDetails.returnVariableSetup()Get return variable setup instructions.ReturnVariableDetails.returnVariableSetup()Returns the value of thereturnVariableSetuprecord component.ControlFlowChainDetails.tryBodyEvaluation()Get try body evaluation instructions.TryBlockDetails.tryBodyEvaluation()Returns the value of thetryBodyEvaluationrecord component.Method parameters in org.ek9lang.compiler.ir.data with type arguments of type IRInstrModifier and TypeMethodDescriptionstatic ConditionCaseDetailsConditionCaseDetails.createExceptionHandler(String catchScopeId, String exceptionType, String exceptionVariable, String catchBodyScopeId, List<IRInstr> catchBodyEvaluation, String catchBodyResult) Create a condition case for exception handlers (try/catch blocks).static ConditionCaseDetailsConditionCaseDetails.createExpression(String caseScopeId, List<IRInstr> conditionEvaluation, String conditionResult, String primitiveCondition, List<IRInstr> bodyEvaluation, String bodyResult) Create a condition case for general boolean expressions (if statements).static ConditionCaseDetailsConditionCaseDetails.createLiteral(String caseScopeId, List<IRInstr> conditionEvaluation, String conditionResult, String primitiveCondition, List<IRInstr> bodyEvaluation, String bodyResult) Create a condition case for literal value comparison (switch literal cases).static ConditionCaseDetailsConditionCaseDetails.createNullCheck(String caseScopeId, List<IRInstr> conditionEvaluation, String conditionResult, String primitiveCondition, List<IRInstr> bodyEvaluation, String bodyResult) Create a condition case for the Question operator null check.static ControlFlowChainDetailsControlFlowChainDetails.createSwitchWithGuards(String result, GuardVariableDetails guardDetails, String evaluationVariable, String evaluationVariableType, String returnVariable, String returnVariableType, List<IRInstr> returnVariableSetup, List<ConditionCaseDetails> conditionChain, List<IRInstr> defaultBodyEvaluation, String defaultResult, DebugInfo debugInfo, String scopeId) Create details for a switch statement with guard variable support.static DefaultCaseDetailsDefaultCaseDetails.withResult(List<IRInstr> defaultBodyEvaluation, String defaultResult) Create default case details with instructions and result.static EvaluationVariableDetailsEvaluationVariableDetails.withSetup(String evaluationVariable, String evaluationVariableType, List<IRInstr> evaluationVariableSetup) Create evaluation variable details with setup instructions.static ReturnVariableDetailsReturnVariableDetails.withSetup(String returnVariable, String returnVariableType, List<IRInstr> returnVariableSetup) Create return variable details with setup instructions.Constructor parameters in org.ek9lang.compiler.ir.data with type arguments of type IRInstrModifierConstructorDescriptionConditionCaseDetails(String caseScopeId, String caseType, List<IRInstr> guardUpdates, String bodyScopeId, String enumConstant, int enumOrdinal, List<IRInstr> conditionEvaluation, String conditionResult, String primitiveCondition, List<IRInstr> bodyEvaluation, String bodyResult, String exceptionType, String exceptionVariable) Creates an instance of aConditionCaseDetailsrecord class.DefaultCaseDetails(List<IRInstr> defaultBodyEvaluation, String defaultResult) Creates an instance of aDefaultCaseDetailsrecord class.EvaluationVariableDetails(String evaluationVariable, String evaluationVariableType, List<IRInstr> evaluationVariableSetup) Creates an instance of aEvaluationVariableDetailsrecord class.ReturnVariableDetails(String returnVariable, String returnVariableType, List<IRInstr> returnVariableSetup) Creates an instance of aReturnVariableDetailsrecord class.TryBlockDetails(String tryScopeId, List<IRInstr> tryBodyEvaluation, String tryBodyResult) Creates an instance of aTryBlockDetailsrecord class. -
Uses of IRInstr in org.ek9lang.compiler.ir.instructions
Subclasses of IRInstr in org.ek9lang.compiler.ir.instructionsModifier and TypeClassDescriptionfinal classSpecialized IR instruction for control flow operations (BRANCH, BRANCH_TRUE, BRANCH_FALSE, ASSERT, RETURN).final classSpecialized IR instruction for method calls (CALL, CALL_VIRTUAL, CALL_STATIC, CALL_DISPATCHER).final classUnified IR instruction for all EK9 control flow constructs.final classSpecialized IR instruction for EK9 polymorphic for-range loops.final classSpecialized IR instruction for control flow labels (LABEL).final classIR instruction for loading literal/constant values.final classIR instruction for logical operations (AND/OR) with short-circuit capability.final classSpecialized IR instruction for memory operations (LOAD, STORE, ALLOCA, REFERENCE).final classIR instruction containing all discovered programs and their metadata.final classSpecialized IR instruction for scope management (SCOPE_ENTER, SCOPE_EXIT, SCOPE_REGISTER).final classSpecialized IR instruction for throwing exceptions (THROW).Methods in org.ek9lang.compiler.ir.instructions that return IRInstrModifier and TypeMethodDescriptionIRInstr.addOperand(String operand) Add operand to this instruction.IRInstr.addOperands(String... operands) Add multiple operands to this instruction.static IRInstrLogicalOperationInstr.andOperation(LogicalDetails logicalDetails) Create logical AND operation.BasicBlockInstr.getLastInstruction()Get the last instruction in this block (usually control flow).static IRInstrLogicalOperationInstr.orOperation(LogicalDetails logicalDetails) Create logical OR operation.Methods in org.ek9lang.compiler.ir.instructions that return types with arguments of type IRInstrModifier and TypeMethodDescriptionForRangePolymorphicInstr.AscendingCase.directionCheck()Returns the value of thedirectionCheckrecord component.ForRangePolymorphicInstr.DescendingCase.directionCheck()Returns the value of thedirectionCheckrecord component.ForRangePolymorphicInstr.EqualCase.directionCheck()Returns the value of thedirectionCheckrecord component.ForRangePolymorphicInstr.getBodyInstructions()ControlFlowChainInstr.getDefaultBodyEvaluation()Get the default/else case evaluation instructions.ControlFlowChainInstr.getFinallyBlockEvaluation()Get the finally block evaluation instructions (for TRY_CATCH_FINALLY).ForRangePolymorphicInstr.getInitializationInstructions()BasicBlockInstr.getInstructions()LogicalOperationInstr.getLeftEvaluationInstructions()Get the left operand evaluation instructions.BasicBlockInstr.getMemoryManagementInstructions()Get all memory management instructions in this block.BasicBlockInstr.getMethodCalls()Get all method call instructions in this block.LogicalOperationInstr.getResultComputationInstructions()Get the result computation instructions.LogicalOperationInstr.getRightEvaluationInstructions()Get the right operand evaluation instructions.ForRangePolymorphicInstr.AscendingCase.loopBodySetup()Returns the value of theloopBodySetuprecord component.ForRangePolymorphicInstr.DescendingCase.loopBodySetup()Returns the value of theloopBodySetuprecord component.ForRangePolymorphicInstr.EqualCase.loopBodySetup()Returns the value of theloopBodySetuprecord component.ForRangePolymorphicInstr.AscendingCase.loopConditionTemplate()Returns the value of theloopConditionTemplaterecord component.ForRangePolymorphicInstr.DescendingCase.loopConditionTemplate()Returns the value of theloopConditionTemplaterecord component.ForRangePolymorphicInstr.AscendingCase.loopIncrement()Returns the value of theloopIncrementrecord component.ForRangePolymorphicInstr.DescendingCase.loopIncrement()Returns the value of theloopIncrementrecord component.Methods in org.ek9lang.compiler.ir.instructions with parameters of type IRInstrModifier and TypeMethodDescriptionBasicBlockInstr.addInstruction(IRInstr instruction) Add instruction to this basic block.BasicBlockInstr.addInstructions(IRInstr... instructions) Add multiple instructions to this basic block.Method parameters in org.ek9lang.compiler.ir.instructions with type arguments of type IRInstrModifier and TypeMethodDescriptionBasicBlockInstr.addInstructions(List<IRInstr> instructions) Add multiple instructions from a list.static ForRangePolymorphicInstrForRangePolymorphicInstr.forRangePolymorphic(List<IRInstr> initializationInstructions, ForRangePolymorphicInstr.DispatchCases dispatchCases, ForRangePolymorphicInstr.LoopMetadata metadata, List<IRInstr> bodyInstructions, ForRangePolymorphicInstr.ScopeMetadata scopeMetadata, DebugInfo debugInfo) Create a polymorphic for-range loop instruction.Constructor parameters in org.ek9lang.compiler.ir.instructions with type arguments of type IRInstrModifierConstructorDescriptionAscendingCase(List<IRInstr> directionCheck, String directionPrimitive, List<IRInstr> loopConditionTemplate, String loopConditionPrimitive, List<IRInstr> loopBodySetup, List<IRInstr> loopIncrement) Creates an instance of aAscendingCaserecord class.DescendingCase(List<IRInstr> directionCheck, String directionPrimitive, List<IRInstr> loopConditionTemplate, String loopConditionPrimitive, List<IRInstr> loopBodySetup, List<IRInstr> loopIncrement) Creates an instance of aDescendingCaserecord class.EqualCase(List<IRInstr> directionCheck, String directionPrimitive, List<IRInstr> loopBodySetup, boolean singleIteration) Creates an instance of aEqualCaserecord class. -
Uses of IRInstr in org.ek9lang.compiler.phase7
Methods in org.ek9lang.compiler.phase7 that return types with arguments of type IRInstrModifier and TypeMethodDescriptionAbstractDfnGenerator.processPropertiesForInstanceInit(EK9Parser.AggregatePartsContext ctx) Process all properties for instance initialization. -
Uses of IRInstr in org.ek9lang.compiler.phase7.calls
Methods in org.ek9lang.compiler.phase7.calls that return types with arguments of type IRInstrModifier and TypeMethodDescriptionCallDetailsBuilder.CallDetailsResult.allInstructions()Returns the value of theallInstructionsrecord component.Constructor parameters in org.ek9lang.compiler.phase7.calls with type arguments of type IRInstrModifierConstructorDescriptionCallDetailsResult(CallDetails callDetails, List<IRInstr> allInstructions) Creates an instance of aCallDetailsResultrecord class. -
Uses of IRInstr in org.ek9lang.compiler.phase7.generation
Methods in org.ek9lang.compiler.phase7.generation that return types with arguments of type IRInstrModifier and TypeMethodDescriptionIRGenerationContext.extractInstructions()Get current instruction list and clear it.IRInstructionBuilder.extractInstructions()Extract all built instructions and clear the builder.IRGenerationContext.getCurrentInstructions()Get current instruction list without clearing.Methods in org.ek9lang.compiler.phase7.generation with parameters of type IRInstrModifier and TypeMethodDescriptionvoidIRGenerationContext.addInstruction(IRInstr instruction) Add instruction to current instruction list.voidIRInstructionBuilder.addInstruction(IRInstr instruction) Add a raw instruction to the current context.Method parameters in org.ek9lang.compiler.phase7.generation with type arguments of type IRInstrModifier and TypeMethodDescriptionvoidIRGenerationContext.addInstructions(List<IRInstr> instructions) Add multiple instructions to current instruction list.voidIRInstructionBuilder.addInstructions(List<IRInstr> instructions) Add multiple raw instructions to the current context. -
Uses of IRInstr in org.ek9lang.compiler.phase7.generator
Classes in org.ek9lang.compiler.phase7.generator that implement interfaces with type arguments of type IRInstrModifier and TypeClassDescription(package private) classBoth AND/OR are very similar in processing, the only real differences are:
What operation to call and the op code to generate.final classgIR Generation for the assert statement.(package private) final class(package private) final classCreates IR instructions for assignment expressions.final classProcess assignment statement: variable = expression Uses RELEASE-then-RETAIN pattern for memory-safe assignments.final classGenerates IR instructions for binary operations (e.g., addition, subtraction, comparison, etc.).final classCreates IR instructions for block statements.final classGenerates IR instructions for function/method calls.final classUnified IR generator for EK9 control flow operators using CONTROL_FLOW_CHAIN.final classCreates IR instructions for expressions.final classGenerates IR for for-in loops and expressions: for item in collection.final classGenerates IR for for-range loops and expressions using FOR_RANGE_POLYMORPHIC instruction.final classCoordinates for-statement IR generation by delegating to specialized generators.final classUnified function call processor using CallDetailsBuilder for method resolution and promotion.final classUnified function call processor using CallDetailsBuilder for method resolution and promotion.(package private) final classGuarded assignment generator using unified CONTROL_FLOW_CHAIN approach.final classGenerates IR for if/else statements using CONTROL_FLOW_CHAIN.final classGenerates IR instructions for list literal expressions.(package private) final classDeals with generating the correct IR Instructions for processing any form of literal.final classGenerates IR instructions for primary references (THIS and SUPER keywords).final classGenerates IR instructions for question operator (?) using unified SWITCH_CHAIN_BLOCK.final classCreates IR instructions for statements.final classGenerates IR for switch statements and expressions using CONTROL_FLOW_CHAIN.final classGenerates IR for throw statements.final classGenerates IR for try/catch/finally constructs using CONTROL_FLOW_CHAIN.final classGenerates IR instructions for unary operations (e.g., unary minus, increment, decrement, etc.).final classCreates IR instructions for variable declarations.final classCreates IR instructions for variable only declarations.final classGenerates IR for while and do-while loops and expressions using CONTROL_FLOW_CHAIN.Methods in org.ek9lang.compiler.phase7.generator that return types with arguments of type IRInstrModifier and TypeMethodDescriptionAbstractShortCircuitGenerator.apply(ExprProcessingDetails details) AssertStmtGenerator.apply(EK9Parser.AssertStatementContext ctx) AssignExpressionToSymbol.apply(ISymbol lhsSymbol, EK9Parser.AssignmentExpressionContext ctx) Generate IR instructions for assignment expression using stack-based scope management.AssignmentStmtGenerator.apply(EK9Parser.AssignmentStatementContext ctx) BinaryOperationGenerator.apply(ExprProcessingDetails details) BlockStmtInstrGenerator.apply(EK9Parser.BlockStatementContext ctx) Generate IR instructions for a block statement using stack-based scope management.CallInstrGenerator.apply(EK9Parser.CallContext ctx, VariableDetails resultDetails) ControlFlowChainGenerator.apply(ControlFlowChainDetails details) ExprInstrGenerator.apply(ExprProcessingDetails details) Generate IR instructions for expression.ForInGenerator.apply(EK9Parser.ForStatementExpressionContext ctx) ForRangeGenerator.apply(EK9Parser.ForStatementExpressionContext ctx) Main orchestration method for for-range loop IR generation.ForStatementGenerator.apply(EK9Parser.ForStatementExpressionContext ctx) Main entry point for for-statement IR generation.FunctionCallProcessor.apply(CallProcessingDetails details, Function<ExprProcessingDetails, List<IRInstr>> exprProcessor) Apply function call processing with an expression processor function.GuardedAssignmentBlockGenerator.apply(GuardedAssignmentDetails details) IfStatementGenerator.apply(EK9Parser.IfStatementContext ctx) ListLiteralGenerator.apply(ExprProcessingDetails details) LiteralGenerator.apply(LiteralProcessingDetails details) ObjectAccessInstrGenerator.apply(EK9Parser.ObjectAccessExpressionContext ctx, VariableDetails variableDetails) Generate IR instructions for object access expression using resolved symbols.PrimaryReferenceGenerator.apply(PrimaryReferenceProcessingDetails details) QuestionBlockGenerator.apply(ExprProcessingDetails details) StmtInstrGenerator.apply(EK9Parser.StatementContext ctx) Generate IR instructions for a statement using proper stack-based scope management.SwitchStatementGenerator.apply(EK9Parser.SwitchStatementExpressionContext ctx) ThrowStatementGenerator.apply(EK9Parser.ThrowStatementContext ctx) TryCatchStatementGenerator.apply(EK9Parser.TryStatementExpressionContext ctx) UnaryOperationGenerator.apply(ExprProcessingDetails details) VariableDeclInstrGenerator.apply(EK9Parser.VariableDeclarationContext ctx) Generate IR instructions for variable declaration with assignment using stack-based scope management.VariableOnlyDeclInstrGenerator.apply(EK9Parser.VariableOnlyDeclarationContext ctx) Generate IR instructions for variable only declaration.WhileStatementGenerator.apply(EK9Parser.WhileStatementExpressionContext ctx) Generate ARC-safe assignment instructions for a branch result.ExpressionResultAssigner.assignIfNeeded(String returnVariable, String branchResult, DebugInfo debugInfo) Conditionally generate assignment instructions.ControlFlowChainGenerator.generateComparisonCoalescing(ExprProcessingDetails lhsDetails, ExprProcessingDetails rhsDetails, String comparisonOperator, String chainType) Generate CONTROL_FLOW_CHAIN for Comparison Coalescing operators (<?, >?, <=?, >=?).ControlFlowChainGenerator.generateElvisCoalescing(ExprProcessingDetails lhsDetails, ExprProcessingDetails rhsDetails) Generate CONTROL_FLOW_CHAIN for Elvis Coalescing operator (:?).ControlFlowChainGenerator.generateGuardedAssignment(ISymbol lhsSymbol, List<IRInstr> assignmentEvaluation, String assignmentResult, DebugInfo debugInfo) Generate SWITCH_CHAIN_BLOCK for guarded assignment (:=?).ControlFlowChainGenerator.generateNullCoalescing(ExprProcessingDetails lhsDetails, ExprProcessingDetails rhsDetails) Generate CONTROL_FLOW_CHAIN for Null Coalescing operator (??).ControlFlowChainGenerator.generateQuestionOperator(ExprProcessingDetails exprDetails) Generate SWITCH_CHAIN_BLOCK for Question operator (?).ControlFlowChainGenerator.generateQuestionOperatorForVariable(ISymbol variableSymbol, String resultVariable, DebugInfo debugInfo) Generate SWITCH_CHAIN_BLOCK for Question operator applied to a variable.ControlFlowChainGenerator.generateTernary(ExprProcessingDetails details) Generate IR for ternary operator: condition <- thenValue : elseValue.AbstractVariableDeclGenerator.getDeclInstrs(org.antlr.v4.runtime.tree.ParseTree ctx) ConditionEvaluation.instructions()Returns the value of theinstructionsrecord component.GuardedConditionEvaluator.ConditionEvaluation.instructions()Returns the value of theinstructionsrecord component.SwitchCaseOrChainGenerator.ComparisonResult.instructions()Returns the value of theinstructionsrecord component.AbstractGenerator.processBlockStatements(EK9Parser.InstructionBlockContext ctx, Function<EK9Parser.BlockStatementContext, List<IRInstr>> blockStmtGenerator) Process all block statements in an instruction block.BinaryOperationGenerator.processOperandExpression(EK9Parser.ExpressionContext operandExpr, VariableDetails operandDetails) Process operand expression using exprGenerator from generators struct.UnaryOperationGenerator.processOperandExpression(EK9Parser.ExpressionContext operandExpr, VariableDetails operandDetails) Process operand expression using exprGenerator from generators struct.LoopGuardHelper.wrapBodyWithGuardEntryCheck(GuardVariableDetails guardDetails, List<IRInstr> bodyInstructions, String guardScopeId, DebugInfo debugInfo) Wrap body instructions in an IF_ELSE_IF that checks the guard entry condition.LoopGuardHelper.wrapChainWithGuardEntryCheck(GuardVariableDetails guardDetails, ControlFlowChainDetails chainDetails, String guardScopeId, DebugInfo debugInfo) Wrap a ControlFlowChainDetails (loop or try) in an IF_ELSE_IF that checks the guard entry condition.LoopGuardHelper.wrapExpressionFormWithGuardEntryCheck(GuardVariableDetails guardDetails, List<IRInstr> returnVariableSetup, List<IRInstr> bodyInstructionsWithoutRtn, String guardScopeId, DebugInfo debugInfo) Wrap body instructions in an IF_ELSE_IF for EXPRESSION FORM with return variable.Method parameters in org.ek9lang.compiler.phase7.generator with type arguments of type IRInstrModifier and TypeMethodDescriptionFunctionCallProcessor.apply(CallProcessingDetails details, Function<ExprProcessingDetails, List<IRInstr>> exprProcessor) Apply function call processing with an expression processor function.ControlFlowChainGenerator.generateGuardedAssignment(ISymbol lhsSymbol, List<IRInstr> assignmentEvaluation, String assignmentResult, DebugInfo debugInfo) Generate SWITCH_CHAIN_BLOCK for guarded assignment (:=?).AbstractGenerator.processBlockStatements(EK9Parser.InstructionBlockContext ctx, Function<EK9Parser.BlockStatementContext, List<IRInstr>> blockStmtGenerator) Process all block statements in an instruction block.voidConstructorCallProcessor.processConstructorCall(CallSymbol callSymbol, EK9Parser.CallContext callContext, String resultVariable, String targetObject, List<IRInstr> instructions, Function<ExprProcessingDetails, List<IRInstr>> expressionProcessor, boolean useMemoryManagement) Process a constructor call and generate appropriate IR instructions.voidConstructorCallProcessor.processConstructorCall(CallSymbol callSymbol, EK9Parser.CallContext callContext, String resultVariable, String targetObject, List<IRInstr> instructions, Function<ExprProcessingDetails, List<IRInstr>> expressionProcessor, boolean useMemoryManagement) Process a constructor call and generate appropriate IR instructions.LoopGuardHelper.wrapBodyWithGuardEntryCheck(GuardVariableDetails guardDetails, List<IRInstr> bodyInstructions, String guardScopeId, DebugInfo debugInfo) Wrap body instructions in an IF_ELSE_IF that checks the guard entry condition.LoopGuardHelper.wrapExpressionFormWithGuardEntryCheck(GuardVariableDetails guardDetails, List<IRInstr> returnVariableSetup, List<IRInstr> bodyInstructionsWithoutRtn, String guardScopeId, DebugInfo debugInfo) Wrap body instructions in an IF_ELSE_IF for EXPRESSION FORM with return variable.Constructor parameters in org.ek9lang.compiler.phase7.generator with type arguments of type IRInstrModifierConstructorDescription(package private)AbstractShortCircuitGenerator(IRGenerationContext stackContext, VariableMemoryManagement variableMemoryManagement, RecordExprProcessing recordExprProcessing, Function<LogicalDetails, IRInstr> logicalOperation) (package private)AssignExpressionToSymbol(IRGenerationContext stackContext, VariableMemoryManagement variableMemoryManagement, boolean release, Function<String, List<IRInstr>> assignmentGenerator) ComparisonResult(List<IRInstr> instructions, String resultVariable, String primitiveCondition) Creates an instance of aComparisonResultrecord class.ConditionEvaluation(List<IRInstr> instructions, String primitiveCondition) Creates an instance of aConditionEvaluationrecord class.ConditionEvaluation(List<IRInstr> instructions, String primitiveCondition) Creates an instance of aConditionEvaluationrecord class.ControlFlowChainGenerator(IRGenerationContext stackContext, VariableMemoryManagement variableMemoryManagement, Function<ExprProcessingDetails, List<IRInstr>> rawExprProcessor) -
Uses of IRInstr in org.ek9lang.compiler.phase7.support
Classes in org.ek9lang.compiler.phase7.support that implement interfaces with type arguments of type IRInstrModifier and TypeClassDescriptionfinal classCONCERN: Binary operator invocation with memory management.final classCreates evaluation instructions for Boolean._ofFalse() static method call.final classCONCERN: Chained comparison evaluation for polymorphic for-range.final classCONCERN: Comparison evaluation with boolean primitive extraction.final classCONCERN: Loop counter increment/decrement.classConverts the single IRInstr supplied by the supplier into a List with one element in.classConverts the single IRInstr supplied by the supplier into a List with one element in.final classCONCERN: Literal loading with memory management.final classCONCERN: Boolean primitive extraction from EK9 Boolean objects.classTriggers the expression processing with the given details.final classCONCERN: Unary operator invocation with memory management.final classCalls a supplier of main processing instructions and then adds in the memory management.final classCalls a supplier of main processing instructions and then adds in the memory management.Methods in org.ek9lang.compiler.phase7.support that return types with arguments of type IRInstrModifier and TypeMethodDescriptionBinaryOperatorInvoker.apply(BinaryOperatorParams params) Invoke binary operator on two operands.BooleanFalseEvaluationCreator.apply(VariableDetails variableDetails) BooleanNotEvaluationCreator.apply(String booleanVariable, VariableDetails resultDetails) Creates Boolean._not() method call instructions.ChainedComparisonEvaluator.apply(ChainedComparisonParams params) Evaluate chained comparison operations.ComparisonEvaluator.apply(ComparisonParams params) Evaluate comparison and extract primitive boolean.IncrementEvaluator.apply(IncrementParams params) Evaluate increment/decrement on the counter variable.IsSetEvaluationCreator.apply(String operandVariable, String operandType, VariableDetails resultDetails) Creates _isSet() method call instructions.ManagedLiteralLoader.apply(LiteralParams params) Load literal value into temp variable with memory management.PrimitiveBooleanExtractor.apply(BooleanExtractionParams params) Extract primitive boolean from EK9 Boolean object.RecordExprProcessing.apply(ExprProcessingDetails details) UnaryOperatorInvoker.apply(UnaryOperatorParams params) Invoke unary operator on operand.VariableMemoryManagement.apply(Supplier<List<IRInstr>> mainProcessing, VariableDetails target) ConditionalEvaluation.conditionInstructions()Returns the value of theconditionInstructionsrecord component.OperandEvaluation.evaluationInstructions()Returns the value of theevaluationInstructionsrecord component.ScopedInstructionExecutor.execute(Supplier<List<IRInstr>> instructionGenerator, DebugInfo debugInfo) Execute instructions within temporary scope.ConditionEvaluationResult.instructions()Returns the value of theinstructionsrecord component.PromotedVariable.instructions()Returns the value of theinstructionsrecord component.PromotionResult.promotionInstructions()Returns the value of thepromotionInstructionsrecord component.Method parameters in org.ek9lang.compiler.phase7.support with type arguments of type IRInstrModifier and TypeMethodDescriptionVariableMemoryManagement.apply(Supplier<List<IRInstr>> mainProcessing, VariableDetails target) ScopedInstructionExecutor.execute(Supplier<List<IRInstr>> instructionGenerator, DebugInfo debugInfo) Execute instructions within temporary scope.static PromotedVariableCreate a promoted variable result.Constructor parameters in org.ek9lang.compiler.phase7.support with type arguments of type IRInstrModifierConstructorDescriptionConditionalEvaluation(List<IRInstr> conditionInstructions, String conditionResult) Creates an instance of aConditionalEvaluationrecord class.ConditionEvaluationResult(List<IRInstr> instructions, String primitiveVariableName) Creates an instance of aConditionEvaluationResultrecord class.OperandEvaluation(List<IRInstr> evaluationInstructions, String operandName) Creates an instance of aOperandEvaluationrecord class.PromotedVariable(String variable, List<IRInstr> instructions) Creates an instance of aPromotedVariablerecord class.RecordExprProcessing(Function<ExprProcessingDetails, List<IRInstr>> processor, VariableMemoryManagement variableMemoryManagement) -
Uses of IRInstr in org.ek9lang.compiler.phase7.synthesis
Methods in org.ek9lang.compiler.phase7.synthesis that return types with arguments of type IRInstrModifier and TypeMethodDescriptionCompareGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _cmp operator IR for the given aggregate.CopyGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _copy operator IR for the given aggregate.DerivedComparisonGenerator.generate(String operatorName, MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate IR for a derived comparison operator.EqualsGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _eq operator IR for the given aggregate.FieldSetStatusGenerator.generate(MethodSymbol methodSymbol, AggregateSymbol aggregateSymbol) Generate the _fieldSetStatus method IR for the given aggregate.HashCodeGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _hashcode operator IR for the given aggregate.IsSetGenerator.generate(MethodSymbol methodSymbol, AggregateSymbol aggregateSymbol) Generate the _isSet operator IR for the given aggregate.NotEqualsGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _neq operator IR for the given aggregate.ToJsonGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _json operator IR for the given aggregate.ToStringGenerator.generate(MethodSymbol operatorSymbol, AggregateSymbol aggregateSymbol) Generate the _string operator IR for the given aggregate.AbstractSyntheticGenerator.generateAnyFieldSetGuard(AggregateSymbol aggregateSymbol, String aggregateTypeName, DebugInfo debugInfo, String returnUnsetLabel, String scopeId) Generate guard that returns UNSET if no fields are set (ANY field set semantics).AbstractSyntheticGenerator.generateBinaryOperatorGuards(String aggregateTypeName, String paramName, String unsetLabel, SynthesisScope ctx) Generate isSet guards for binary operators (this and param).AbstractSyntheticGenerator.generateBooleanBranch(String booleanVar, String label, boolean branchIfTrue, SynthesisScope ctx) Extract primitive boolean from Boolean object and branch.AbstractSyntheticGenerator.generateBooleanReturnBlock(boolean value, String returnVarName, DebugInfo debugInfo, String scopeId) Generate a return block that returns a specific boolean value (true or false).AbstractSyntheticGenerator.generateConstructorCall(String resultVar, String typeName, String argument, String parameterType, DebugInfo debugInfo, String scopeId) Generate a constructor call with a single argument to create a new instance.AbstractSyntheticGenerator.generateConstructorCall(String resultVar, String typeName, DebugInfo debugInfo, String scopeId) Generate a constructor call to create a new instance.AbstractSyntheticGenerator.generateConstructorCall(String resultVar, String typeName, SynthesisScope ctx) Generate constructor call using SynthesisScope.AbstractSyntheticGenerator.generateConstructorCallWithArgs(String resultVar, String typeName, List<String> arguments, List<String> parameterTypes, DebugInfo debugInfo, String scopeId) Generate a constructor call with arguments to create a new instance.AbstractSyntheticGenerator.generateFieldLoad(String targetVar, String objectVar, String fieldName, DebugInfo debugInfo, String scopeId) Generate field load instruction with memory management.AbstractSyntheticGenerator.generateFieldLoad(String targetVar, String objectVar, String fieldName, SynthesisScope ctx) Generate field load using SynthesisScope.AbstractSyntheticGenerator.generateFieldSetStatusCheck(String otherParamName, String aggregateTypeName, DebugInfo debugInfo, String scopeId, String returnUnsetLabel) Generate field set status comparison check.AbstractSyntheticGenerator.generateIsSetGuard(String variableName, String typeName, String unsetLabel, SynthesisScope ctx) Generate isSet guard check for a variable using SynthesisScope.AbstractSyntheticGenerator.generateIsSetGuard(String variableName, String typeName, DebugInfo debugInfo, String unsetLabel, String scopeId) Generate isSet guard check for a variable with branch to unset return.AbstractSyntheticGenerator.generateMethodCall(String resultVar, String targetVar, String targetType, String methodName, String argument, String parameterType, String returnType, DebugInfo debugInfo, String scopeId) Generate a single-argument method call with result storage and memory management.AbstractSyntheticGenerator.generateMethodCall(String resultVar, String targetVar, String targetType, String methodName, String argument, String parameterType, String returnType, SynthesisScope ctx) Generate a single-argument method call using SynthesisScope.AbstractSyntheticGenerator.generateMethodCall(String resultVar, String targetVar, String targetType, String methodName, String returnType, DebugInfo debugInfo, String scopeId) Generate a no-argument method call with result storage and memory management.AbstractSyntheticGenerator.generateMethodCall(String resultVar, String targetVar, String targetType, String methodName, String returnType, SynthesisScope ctx) Generate a no-argument method call using SynthesisScope.AbstractSyntheticGenerator.generateMethodCall(String resultVar, String targetVar, String targetType, String methodName, List<String> arguments, List<String> parameterTypes, String returnType, DebugInfo debugInfo, String scopeId) Generate a method call on a variable with result storage and memory management.AbstractSyntheticGenerator.generateResultReturnBlock(String labelName, String returnVarName, DebugInfo debugInfo, String scopeId) Generate a result return block that returns whatever is in the return variable.AbstractSyntheticGenerator.generateResultReturnBlock(String labelName, String returnVarName, SynthesisScope ctx) Generate result return block using SynthesisScope.AbstractSyntheticGenerator.generateStringLiteralLoad(String resultVar, String literalValue, DebugInfo debugInfo, String scopeId) Generate a string literal load with memory management.AbstractSyntheticGenerator.generateThisIsSetGuard(String aggregateTypeName, String unsetLabel, SynthesisScope ctx) Generate isSet guard for 'this' using SynthesisScope.AbstractSyntheticGenerator.generateThisIsSetGuard(String aggregateTypeName, DebugInfo debugInfo, String unsetLabel, String scopeId) Generate isSet guard check for 'this' with branch to unset return.AbstractSyntheticGenerator.generateUnsetReturnBlock(String returnTypeName, String returnVarName, DebugInfo debugInfo, String scopeId) Generate the return_unset basic block that returns an unset value.AbstractSyntheticGenerator.generateUnsetReturnBlockWithLabel(String labelName, String returnTypeName, String returnVarName, DebugInfo debugInfo, String scopeId) Generate unset return block at a specific label.AbstractSyntheticGenerator.generateUnsetReturnBlockWithLabel(String labelName, String returnTypeName, String returnVarName, SynthesisScope ctx) Generate unset return block using SynthesisScope.AbstractSyntheticGenerator.ScopeSetup.instructions()Returns the value of theinstructionsrecord component.Constructor parameters in org.ek9lang.compiler.phase7.synthesis with type arguments of type IRInstrModifierConstructorDescriptionprotectedScopeSetup(SynthesisScope ctx, List<IRInstr> instructions) Creates an instance of aScopeSetuprecord class. -
Uses of IRInstr in org.ek9lang.compiler.phase7.synthesis.support
Methods in org.ek9lang.compiler.phase7.synthesis.support that return types with arguments of type IRInstrModifier and TypeMethodDescriptionReturnBlockHelper.generateBooleanReturn(String labelName, boolean value, String returnVarName, DebugInfo debugInfo, String scopeId) Generate a return block that returns a boolean value (true or false).ReturnBlockHelper.generateIntegerReturn(String labelName, int value, String returnVarName, DebugInfo debugInfo, String scopeId) Generate a return block that returns an integer literal value.ReturnBlockHelper.generateUnsetReturn(String labelName, String returnTypeName, String returnVarName, DebugInfo debugInfo, String scopeId) Generate a return block that returns an unset value of the given type.ReturnBlockHelper.generateValueReturn(String labelName, String returnVarName, DebugInfo debugInfo, String scopeId) Generate a return block that returns the value already in the return variable.