From bc4099247a3d911cd29c791389be368505e98867 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 26 Nov 2023 11:43:27 +0000 Subject: Accept basic block label as LlvmVariableLocal instead of String --- .../compiler/backends/llvm/LlvmPatioCodeGen.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/main/java') 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(); 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, -- cgit v1.2.3