aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-04-08 19:03:26 +0100
committerMichael Williamson <mike@zwobble.org>2026-04-08 19:07:06 +0100
commit879826dd5cbbd50314bd89caded240c2b12c156c (patch)
treeee654a279e20b86a0f9bf8a197eb6225a8704450 /src/main/java
parent870cbd63018d9e253c476ebe0692fd3c27d9a1d3 (diff)
Add poison as LLVM operand
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializer.java4
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/ir/ast/operands/LlvmOperand.java2
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/ir/ast/operands/LlvmOperandPoison.java4
3 files changed, 9 insertions, 1 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 4508f90b..6a315272 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
@@ -248,6 +248,10 @@ public class LlvmIrSerializer {
writer.append("null");
}
+ case LlvmOperandPoison _ -> {
+ writer.append("poison");
+ }
+
case LlvmOperandStructure structure -> {
writer.append("{");
forEachInterspersed(
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/ir/ast/operands/LlvmOperand.java b/src/main/java/org/shedlang/compiler/backends/llvm/ir/ast/operands/LlvmOperand.java
index 624e6dc0..9ada3b12 100644
--- a/src/main/java/org/shedlang/compiler/backends/llvm/ir/ast/operands/LlvmOperand.java
+++ b/src/main/java/org/shedlang/compiler/backends/llvm/ir/ast/operands/LlvmOperand.java
@@ -1,4 +1,4 @@
package org.shedlang.compiler.backends.llvm.ir.ast.operands;
-public sealed interface LlvmOperand permits LlvmOperandArray, LlvmOperandGetElementPtr, LlvmOperandInt, LlvmOperandNull, LlvmOperandPtrToInt, LlvmOperandStructure, LlvmVariable {
+public sealed interface LlvmOperand permits LlvmOperandArray, LlvmOperandGetElementPtr, LlvmOperandInt, LlvmOperandNull, LlvmOperandPoison, LlvmOperandPtrToInt, LlvmOperandStructure, LlvmVariable {
}
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/ir/ast/operands/LlvmOperandPoison.java b/src/main/java/org/shedlang/compiler/backends/llvm/ir/ast/operands/LlvmOperandPoison.java
new file mode 100644
index 00000000..b34cb6a5
--- /dev/null
+++ b/src/main/java/org/shedlang/compiler/backends/llvm/ir/ast/operands/LlvmOperandPoison.java
@@ -0,0 +1,4 @@
+package org.shedlang.compiler.backends.llvm.ir.ast.operands;
+
+public record LlvmOperandPoison() implements LlvmOperand {
+}