diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-11-26 11:43:27 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-11-26 11:43:27 +0000 |
| commit | bc4099247a3d911cd29c791389be368505e98867 (patch) | |
| tree | fabed9f6182afd2c680ee62623695973079fb60e /src/main/java | |
| parent | 5a51382f65b56d545e5276d6df8acedd9f7251c2 (diff) | |
Accept basic block label as LlvmVariableLocal instead of String
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGen.java | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGen.java b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGen.java index 576ac771..f1441637 100644 --- a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGen.java +++ b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGen.java @@ -424,13 +424,13 @@ public class LlvmPatioCodeGen { var loopEndLabel = loopEndLabelResult.value(); context = loopEndLabelResult.context(); - context = context.startBasicBlock(loopStartLabel.name()); + context = context.startBasicBlock(loopStartLabel); context = context.enterLoop(loopStartLabel, loopEndLabel); context = generateInstructions(patioLoop.body(), context); context = context.exitLoop(); - context = context.startBasicBlock(loopEndLabel.name()); + context = context.startBasicBlock(loopEndLabel); yield context; } @@ -656,7 +656,7 @@ public class LlvmPatioCodeGen { ) { var phiPredecessors = new ArrayList<PhiPredecessor>(); for (var branch : branches) { - context = context.startBasicBlock(branch.startLabel.name()); + context = context.startBasicBlock(branch.startLabel); context = generateInstructions(branch.body.body(), context); @@ -664,7 +664,7 @@ public class LlvmPatioCodeGen { .anyMatch(instruction -> instruction instanceof PatioUnreachable); if (!endIsUnreachable) { - context = context.startBasicBlock(branch.endLabel.name()); + context = context.startBasicBlock(branch.endLabel); context = context.addTerminatorInstruction(new LlvmBrUnconditional( endLabel )); @@ -673,7 +673,7 @@ public class LlvmPatioCodeGen { } } - context = context.startBasicBlock(endLabel.name()); + context = context.startBasicBlock(endLabel); context = generatePhiInstructions( targets, phiPredecessors, @@ -1127,17 +1127,17 @@ public class LlvmPatioCodeGen { * block, then the existing basic block is terminated with an * unconditional jump to the new basic block. */ - public FunctionContext startBasicBlock(String basicBlockLabel) { + public FunctionContext startBasicBlock(LlvmVariableLocal basicBlockLabel) { var context = this.basicBlockLabel.isEmpty() && this.instructions.isEmpty() ? this : this.addTerminatorInstruction( - new LlvmBrUnconditional(new LlvmVariableLocal(basicBlockLabel)) + new LlvmBrUnconditional(basicBlockLabel) ); return new FunctionContext( context.functionNameToReturnType, context.basicBlocks, - Optional.of(basicBlockLabel), + Optional.of(basicBlockLabel.name()), context.instructions, context.patioLocalToType, context.patioLocalToOperand, |
