aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-17 22:03:32 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-17 22:03:32 +0100
commitabf18334f1f598230e69109f43a4a601b4f571a3 (patch)
tree28b7b6c1b93f9b1cb172843d8f82c8e5c31e5915 /src/test/java
parent2ead93bf3d82dc37bfe440917bfd4244d3a3f14f (diff)
Serialize LLVM ptr types as opaque ptr
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/LlvmCompilerDefineFunctionTests.java24
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java2
-rw-r--r--src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerTypesTests.java4
3 files changed, 15 insertions, 15 deletions
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 e3f41a6c..1f4e154f 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/LlvmCompilerDefineFunctionTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/LlvmCompilerDefineFunctionTests.java
@@ -43,7 +43,7 @@ public class LlvmCompilerDefineFunctionTests {
() -> topLevelEntities.append("\n")
);
assertThat(topLevelEntities.toString(), equalTo("""
- define i64 @shed__fun__f__0([0 x i64] * %shed__env__0) {
+ define i64 @shed__fun__f__0(ptr %shed__env__0) {
ret i64 0
}
"""));
@@ -55,11 +55,11 @@ public class LlvmCompilerDefineFunctionTests {
() -> instructions.append("\n")
);
assertThat(instructions.toString(), equalTo("""
- %sizePtr__0 = getelementptr {i64 ([0 x i64] *) *, [0 x i64]}, ptr null, i64 0
+ %sizePtr__0 = getelementptr {ptr, [0 x i64]}, ptr null, i64 0
%size__0 = ptrtoint ptr %sizePtr__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, ptr %closureFunctionPointerPointer__0
+ %closurePointer__0 = call ptr @shed__runtime__alloc(i64 %size__0)
+ %closureFunctionPointerPointer__0 = getelementptr {ptr, [0 x i64]}, ptr %closurePointer__0, i64 0, i32 0
+ store ptr @shed__fun__f__0, ptr %closureFunctionPointerPointer__0
%closureValue__0 = ptrtoint ptr %closurePointer__0 to i64"""));
assertThat(result.stack(), isSequence(
@@ -94,7 +94,7 @@ public class LlvmCompilerDefineFunctionTests {
() -> topLevelEntities.append("\n")
);
assertThat(topLevelEntities.toString(), equalTo("""
- define i64 @shed__fun__f__0([2 x i64] * %shed__env__0) {
+ define i64 @shed__fun__f__0(ptr %shed__env__0) {
ret i64 0
}
"""));
@@ -106,14 +106,14 @@ public class LlvmCompilerDefineFunctionTests {
() -> instructions.append("\n")
);
assertThat(instructions.toString(), equalTo("""
- %sizePtr__0 = getelementptr {i64 ([2 x i64] *) *, [2 x i64]}, ptr null, i64 0
+ %sizePtr__0 = getelementptr {ptr, [2 x i64]}, ptr null, i64 0
%size__0 = ptrtoint ptr %sizePtr__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, ptr %closureFunctionPointerPointer__0
- %closureFreeVariablePointer__a__0 = getelementptr {i64 ([2 x i64] *) *, [2 x i64]}, ptr %closurePointer__0, i64 0, i32 1, i64 0
+ %closurePointer__0 = call ptr @shed__runtime__alloc(i64 %size__0)
+ %closureFunctionPointerPointer__0 = getelementptr {ptr, [2 x i64]}, ptr %closurePointer__0, i64 0, i32 0
+ store ptr @shed__fun__f__0, ptr %closureFunctionPointerPointer__0
+ %closureFreeVariablePointer__a__0 = getelementptr {ptr, [2 x i64]}, ptr %closurePointer__0, i64 0, i32 1, i64 0
store i64 1, ptr %closureFreeVariablePointer__a__0
- %closureFreeVariablePointer__b__0 = getelementptr {i64 ([2 x i64] *) *, [2 x i64]}, ptr %closurePointer__0, i64 0, i32 1, i64 1
+ %closureFreeVariablePointer__b__0 = getelementptr {ptr, [2 x i64]}, ptr %closurePointer__0, i64 0, i32 1, i64 1
store i64 2, ptr %closureFreeVariablePointer__b__0
%closureValue__0 = ptrtoint ptr %closurePointer__0 to i64"""));
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java
index 29f053fa..06d3f244 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerOperandsTests.java
@@ -57,7 +57,7 @@ public class LlvmIrSerializerOperandsTests {
var result = serializeToString(operand, LlvmIrSerializer::serializeOperand);
- assertThat(result, equalTo("ptrtoint (i8 * %x to i64)"));
+ assertThat(result, equalTo("ptrtoint (ptr %x to i64)"));
}
@Test
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerTypesTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerTypesTests.java
index cc085a16..1850f642 100644
--- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerTypesTests.java
+++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerTypesTests.java
@@ -20,12 +20,12 @@ public class LlvmIrSerializerTypesTests {
}
@Test
- public void pointerTypeIsSerializedWithElementType() {
+ public void pointerTypeIsSerializedToOpaquePtr() {
var type = LlvmTypes.pointer(LlvmTypes.INT_64);
var result = serializeToString(type, LlvmIrSerializer::serializeType);
- assertThat(result, equalTo("i64 *"));
+ assertThat(result, equalTo("ptr"));
}
@Test