aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java14
-rw-r--r--src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java12
-rw-r--r--src/main/java/org/shedlang/compiler/patio/PatioSerializer.java7
-rw-r--r--src/main/java/org/shedlang/compiler/patio/instructions/PatioAllocStack.java21
-rw-r--r--src/main/java/org/shedlang/compiler/patio/instructions/PatioInstruction.java2
5 files changed, 1 insertions, 55 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 dd10b2f7..75d66773 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
@@ -296,20 +296,6 @@ public class PatioToLlvm {
PatioToLlvmFunctionContext context
) {
return switch (patioInstruction) {
- case PatioAllocStack patioAllocStack -> {
- var destinationResult = context.addPatioLocalToLlvmLocal(patioAllocStack.destination());
- var destination = destinationResult.value();
- context = destinationResult.context();
-
- yield context.addInstruction(new LlvmAlloca(
- destination,
- patioDataLayoutToLlvmType(
- patioAllocStack.layout(),
- context.target()
- )
- ));
- }
-
case PatioBlock patioBlock ->
generateInstructions(patioBlock.body(), 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 bedfe7e7..eb21a3a4 100644
--- a/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java
+++ b/src/main/java/org/shedlang/compiler/backends/wasm/PatioToWasm.java
@@ -150,18 +150,6 @@ public class PatioToWasm {
var target = context.target;
return switch (patioInstruction) {
- case PatioAllocStack patioAllocStack -> {
- context = context
- .addInstruction(wasmIntConst(
- target.sizeT(),
- sizeOf(patioAllocStack.layout(), target)
- ))
- .addInstruction(new WasmCall(new WasmFuncName(STACK_ALLOC_NAME)))
- .addInstruction(new WasmLocalSet(context.wasmLocalIndex(patioAllocStack.destination())));
-
- yield context;
- }
-
case PatioBlock patioBlock ->
generateInstructions(patioBlock.body(), context);
diff --git a/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java b/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java
index 0b6b52e5..78c23ffd 100644
--- a/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java
+++ b/src/main/java/org/shedlang/compiler/patio/PatioSerializer.java
@@ -156,13 +156,6 @@ public class PatioSerializer {
private static Tree instructionToTree(PatioInstruction instruction) {
return switch (instruction) {
- case PatioAllocStack allocStack ->
- treeList(
- treeIdentifier("alloc-stack"),
- operandToTree(allocStack.destination()),
- dataLayoutToTree(allocStack.layout())
- );
-
case PatioBlock block ->
blockToTree(block);
diff --git a/src/main/java/org/shedlang/compiler/patio/instructions/PatioAllocStack.java b/src/main/java/org/shedlang/compiler/patio/instructions/PatioAllocStack.java
deleted file mode 100644
index 5f545606..00000000
--- a/src/main/java/org/shedlang/compiler/patio/instructions/PatioAllocStack.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.shedlang.compiler.patio.instructions;
-
-import org.shedlang.compiler.patio.operands.PatioLocalRef;
-import org.shedlang.compiler.patio.types.PatioDataLayout;
-import org.shedlang.compiler.sources.Source;
-
-/**
- * Allocate space for the given data layout on the memory stack for the current
- * call frame, and store the pointer to the allocated memory in the destination
- * local.
- */
-public record PatioAllocStack(
- PatioLocalRef destination,
- PatioDataLayout layout,
- Source source
-) implements PatioInstruction {
- @Override
- public boolean isBlockTerminator() {
- return false;
- }
-}
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 92119bfb..76ab6632 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 PatioAllocStack, 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, PatioResume, PatioReturn, PatioReturnVoid, PatioSwitch, PatioThrow, PatioTry, PatioUnreachable, PatioVarLoad, PatioVarStore {
boolean isBlockTerminator();
Source source();
}