diff options
| author | Michael Williamson <mike@zwobble.org> | 2024-03-19 15:56:15 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2024-03-19 15:56:15 +0000 |
| commit | 0702b47fc0f2d22324a2d45b44fa5657c8bfeab9 (patch) | |
| tree | c87c4e583a47ac4b3ca49bc5bbcf5041ff0c06c9 /src/main/java | |
| parent | 013bed2aa9a998ae8d7973777dcce6bd89a9cdf1 (diff) | |
Remove Patio alloc-stack instruction
Diffstat (limited to 'src/main/java')
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(); } |
