aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-17 20:52:09 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-17 20:52:09 +0100
commit76c08690d87de2f0e17522d8f3dce6ff01683cc5 (patch)
tree0fc5b3a953bae838aced8e1de5903c4a8baf9a63 /src
parent61101c304939e74822b480889377870b388f0443 (diff)
Use opaque ptr in store instructions
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializer.java4
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/LlvmCompilerDefineFunctionTests.java8
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java2
3 files changed, 6 insertions, 8 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializer.java b/src/main/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializer.java
index cf5d71f4..e19cc2e0 100644
--- a/src/main/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializer.java
+++ b/src/main/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializer.java
@@ -91,9 +91,7 @@ public class LlvmIrSerializer {
serializeType(store.type(), builder);
builder.append(" ");
serializeOperand(store.value(), builder);
- builder.append(", ");
- serializeType(LlvmTypes.pointer(store.type()), builder);
- builder.append(" ");
+ builder.append(", ptr ");
serializeOperand(store.pointer(), builder);
}
}
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/LlvmCompilerDefineFunctionTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/LlvmCompilerDefineFunctionTests.java
index 7604386c..bd88a784 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/LlvmCompilerDefineFunctionTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/LlvmCompilerDefineFunctionTests.java
@@ -60,7 +60,7 @@ public class LlvmCompilerDefineFunctionTests {
%size__0 = ptrtoint ptr %size_ptr__0 to i64
%closurePointer__0 = call {i64 ([0 x i64] *) *, [0 x i64]} * @shed__runtime__alloc(i64 %size__0)
%closureFunctionPointerPointer__0 = getelementptr {i64 ([0 x i64] *) *, [0 x i64]}, ptr %closurePointer__0, i64 0, i32 0
- store i64 ([0 x i64] *) * @shed__fun__f__0, i64 ([0 x i64] *) * * %closureFunctionPointerPointer__0
+ store i64 ([0 x i64] *) * @shed__fun__f__0, ptr %closureFunctionPointerPointer__0
%closureValue__0 = ptrtoint ptr %closurePointer__0 to i64"""));
assertThat(result.stack(), isSequence(
@@ -111,11 +111,11 @@ public class LlvmCompilerDefineFunctionTests {
%size__0 = ptrtoint ptr %size_ptr__0 to i64
%closurePointer__0 = call {i64 ([2 x i64] *) *, [2 x i64]} * @shed__runtime__alloc(i64 %size__0)
%closureFunctionPointerPointer__0 = getelementptr {i64 ([2 x i64] *) *, [2 x i64]}, ptr %closurePointer__0, i64 0, i32 0
- store i64 ([2 x i64] *) * @shed__fun__f__0, i64 ([2 x i64] *) * * %closureFunctionPointerPointer__0
+ store i64 ([2 x i64] *) * @shed__fun__f__0, ptr %closureFunctionPointerPointer__0
%closureEnvironmentPointer__0 = getelementptr {i64 ([2 x i64] *) *, [2 x i64]}, ptr %closurePointer__0, i64 0, i32 1, i64 0
- store i64 1, i64 * %closureEnvironmentPointer__0
+ store i64 1, ptr %closureEnvironmentPointer__0
%closureEnvironmentPointer__1 = getelementptr {i64 ([2 x i64] *) *, [2 x i64]}, ptr %closurePointer__0, i64 0, i32 1, i64 1
- store i64 2, i64 * %closureEnvironmentPointer__1
+ store i64 2, ptr %closureEnvironmentPointer__1
%closureValue__0 = ptrtoint ptr %closurePointer__0 to i64"""));
assertThat(result.stack(), isSequence(
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java
index f88b24ba..08cefa81 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java
@@ -127,6 +127,6 @@ public class LlvmIrSerializerInstructionTests {
var result = serializeToString(instruction, LlvmIrSerializer::serializeInstruction);
- assertThat(result, equalTo("store i64 42, i64 * %target"));
+ assertThat(result, equalTo("store i64 42, ptr %target"));
}
}