aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-04-07 20:05:31 +0100
committerMichael Williamson <mike@zwobble.org>2026-04-07 20:35:29 +0100
commit59b5294ffd1b5bf299f07cc0a586d67464a26cc3 (patch)
treebb34e697732884162cb81afeff173834de00670c /src/main/java
parent1bfac23fac8b749cdcbd0232253a57b29ec91142 (diff)
Remove Patio resume instruction
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java6
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java8
-rw-r--r--src/main/java/org/shedlang/compiler/patio/PatioSerializer.java6
-rw-r--r--src/main/java/org/shedlang/compiler/patio/instructions/PatioInstruction.java2
-rw-r--r--src/main/java/org/shedlang/compiler/patio/instructions/PatioResume.java15
-rw-r--r--src/main/java/org/shedlang/compiler/patio/serialization/PatioToFlatbuffers.java50
-rw-r--r--src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioEffects.java2
7 files changed, 3 insertions, 86 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java b/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java
index 5f554710..3dfae913 100644
--- a/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java
+++ b/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java
@@ -616,12 +616,6 @@ public class PatioToLlvm {
yield context;
}
- case PatioResume patioResume ->
- context.addTerminatorInstruction(new LlvmReturn(
- patioOperandToLlvmType(patioResume.value(), context),
- patioOperandToLlvmOperand(patioResume.value(), context)
- ));
-
case PatioReturn patioReturn ->
context.addTerminatorInstruction(new LlvmReturn(
patioOperandToLlvmType(patioReturn.value(), context),
diff --git a/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java b/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java
index 356b016f..ed416976 100644
--- a/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java
+++ b/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java
@@ -340,14 +340,6 @@ public class PatioToWasm {
yield context;
}
- case PatioResume patioResume -> {
- context = generateOperand(patioResume.value(), context);
-
- context = context.addInstruction(new WasmReturn());
-
- yield context;
- }
-
case PatioReturn patioReturn -> {
context = generateOperand(patioReturn.value(), context);
diff --git a/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java b/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java
index d9ca8c37..d324c5e8 100644
--- a/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java
+++ b/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java
@@ -293,12 +293,6 @@ public class PatioSerializer {
treeNamed("value", operandToTree(memoryStore.value()))
);
- case PatioResume resume ->
- treeList(
- treeIdentifier("resume"),
- operandToTree(resume.value())
- );
-
case PatioReturn return_ ->
treeList(
treeIdentifier("return"),
diff --git a/src/main/java/org/shedlang/compiler/patio/instructions/PatioInstruction.java b/src/main/java/org/shedlang/compiler/patio/instructions/PatioInstruction.java
index 76ab6632..00e30fe6 100644
--- a/src/main/java/org/shedlang/compiler/patio/instructions/PatioInstruction.java
+++ b/src/main/java/org/shedlang/compiler/patio/instructions/PatioInstruction.java
@@ -2,7 +2,7 @@ package org.shedlang.compiler.patio.instructions;
import org.shedlang.compiler.sources.Source;
-public sealed interface PatioInstruction permits PatioBlock, PatioBoolToInt, PatioCall, PatioCallPointer, PatioDataPtrToInt, PatioIf, PatioIntAdd, PatioIntEquals, PatioIntNotEqual, PatioIntSub, PatioIntToBool, PatioIntToDataPtr, PatioLocalStore, PatioLoop, PatioLoopBreak, PatioLoopContinue, PatioMemoryLoad, PatioMemoryStore, PatioResume, PatioReturn, PatioReturnVoid, PatioSwitch, PatioThrow, PatioTry, PatioUnreachable, PatioVarLoad, PatioVarStore {
+public sealed interface PatioInstruction permits PatioBlock, PatioBoolToInt, PatioCall, PatioCallPointer, PatioDataPtrToInt, PatioIf, PatioIntAdd, PatioIntEquals, PatioIntNotEqual, PatioIntSub, PatioIntToBool, PatioIntToDataPtr, PatioLocalStore, PatioLoop, PatioLoopBreak, PatioLoopContinue, PatioMemoryLoad, PatioMemoryStore, PatioReturn, PatioReturnVoid, PatioSwitch, PatioThrow, PatioTry, PatioUnreachable, PatioVarLoad, PatioVarStore {
boolean isBlockTerminator();
Source source();
}
diff --git a/src/main/java/org/shedlang/compiler/patio/instructions/PatioResume.java b/src/main/java/org/shedlang/compiler/patio/instructions/PatioResume.java
deleted file mode 100644
index 6b1838d2..00000000
--- a/src/main/java/org/shedlang/compiler/patio/instructions/PatioResume.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.shedlang.compiler.patio.instructions;
-
-import org.shedlang.compiler.patio.operands.PatioOperand;
-import org.shedlang.compiler.sources.Source;
-
-/**
- * Return with the given value from the effect handler method back to the effect
- * call.
- */
-public record PatioResume(PatioOperand value, Source source) implements PatioInstruction {
- @Override
- public boolean isBlockTerminator() {
- return true;
- }
-}
diff --git a/src/main/java/org/shedlang/compiler/patio/serialization/PatioToFlatbuffers.java b/src/main/java/org/shedlang/compiler/patio/serialization/PatioToFlatbuffers.java
index 20c5f9f9..870c8204 100644
--- a/src/main/java/org/shedlang/compiler/patio/serialization/PatioToFlatbuffers.java
+++ b/src/main/java/org/shedlang/compiler/patio/serialization/PatioToFlatbuffers.java
@@ -706,15 +706,6 @@ public class PatioToFlatbuffers {
yield PatioInstructionFbs.endPatioInstructionFbs(builder);
}
- case PatioResume resume -> {
- var resumeFbs = serializeResume(builder, resume, parentSource);
-
- PatioInstructionFbs.startPatioInstructionFbs(builder);
- PatioInstructionFbs.addValueType(builder, PatioInstructionValueFbs.PatioResumeFbs);
- PatioInstructionFbs.addValue(builder, resumeFbs);
- yield PatioInstructionFbs.endPatioInstructionFbs(builder);
- }
-
case PatioReturn return_ -> {
var returnFbs = serializeReturn(builder, return_, parentSource);
@@ -902,12 +893,6 @@ public class PatioToFlatbuffers {
parentSource
);
- case PatioInstructionValueFbs.PatioResumeFbs ->
- deserializeResume(
- (PatioResumeFbs) instructionFbs.value(new PatioResumeFbs()),
- parentSource
- );
-
case PatioInstructionValueFbs.PatioReturnFbs ->
deserializeReturn(
(PatioReturnFbs) instructionFbs.value(new PatioReturnFbs()),
@@ -1631,39 +1616,6 @@ public class PatioToFlatbuffers {
return new PatioMemoryStore(pointer, layout, elementOffsets, value, source);
}
- public static int serializeResume(
- FlatBufferBuilder builder,
- PatioResume instruction,
- Source parentSource
- ) {
- var sourceFbs = SourceToFlatbuffers.serializeSource(
- builder,
- instruction.source(),
- parentSource
- );
-
- var valueFbs = serializeOperand(builder, instruction.value());
-
- PatioResumeFbs.startPatioResumeFbs(builder);
- PatioResumeFbs.addSource(builder, sourceFbs);
- PatioResumeFbs.addValue(builder, valueFbs);
- return PatioResumeFbs.endPatioResumeFbs(builder);
- }
-
- private static PatioResume deserializeResume(
- PatioResumeFbs instructionFbs,
- Source parentSource
- ) {
- var source = SourceToFlatbuffers.deserializeSource(
- instructionFbs.source(),
- parentSource
- );
-
- var value = deserializeOperand(instructionFbs.value());
-
- return new PatioResume(value, source);
- }
-
public static int serializeReturn(
FlatBufferBuilder builder,
PatioReturn instruction,
@@ -1679,7 +1631,7 @@ public class PatioToFlatbuffers {
PatioReturnFbs.startPatioReturnFbs(builder);
PatioReturnFbs.addSource(builder, sourceFbs);
- PatioResumeFbs.addValue(builder, valueFbs);
+ PatioReturnFbs.addValue(builder, valueFbs);
return PatioReturnFbs.endPatioReturnFbs(builder);
}
diff --git a/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioEffects.java b/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioEffects.java
index 6d2ba0e3..a41ef9c7 100644
--- a/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioEffects.java
+++ b/src/main/java/org/shedlang/compiler/shidtopatio/ShidToPatioEffects.java
@@ -519,7 +519,7 @@ public class ShidToPatioEffects {
source
));
- context = context.addInstruction(new PatioResume(value, source));
+ context = context.addInstruction(new PatioReturn(value, source));
return context;
}