From 5b45f12110760bee7fd94cda9801fba54dc785d1 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 23 Jul 2023 22:59:08 +0100 Subject: Consistenly use PatioOperand for Patio operands --- .../java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGen.java | 4 ++-- src/main/java/org/shedlang/compiler/patio/PatioCodeGenClosures.java | 3 ++- .../shedlang/compiler/patio/ast/instructions/PatioCallPointer.java | 2 +- .../java/org/shedlang/compiler/patio/ast/instructions/PatioIf.java | 3 ++- .../org/shedlang/compiler/patio/ast/instructions/PatioReturn.java | 4 ++-- 5 files changed, 9 insertions(+), 7 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGen.java b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGen.java index aa389dc2..8b3d4a4b 100644 --- a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGen.java +++ b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGen.java @@ -458,8 +458,8 @@ public class LlvmPatioCodeGen { case PatioReturn patioReturn -> context.addTerminatorInstruction(new LlvmReturn( - context.patioLocalToType(patioReturn.value()), - context.patioLocalToOperand(patioReturn.value()) + patioOperandToLlvmType(patioReturn.value(), context), + patioOperandToLlvmOperand(patioReturn.value(), context) )); }; } diff --git a/src/main/java/org/shedlang/compiler/patio/PatioCodeGenClosures.java b/src/main/java/org/shedlang/compiler/patio/PatioCodeGenClosures.java index db864db0..8c9c242e 100644 --- a/src/main/java/org/shedlang/compiler/patio/PatioCodeGenClosures.java +++ b/src/main/java/org/shedlang/compiler/patio/PatioCodeGenClosures.java @@ -6,6 +6,7 @@ import org.shedlang.compiler.patio.ast.PatioVisibility; import org.shedlang.compiler.patio.ast.instructions.*; import org.shedlang.compiler.patio.ast.operands.PatioFunctionPtr; import org.shedlang.compiler.patio.ast.operands.PatioLocalRef; +import org.shedlang.compiler.patio.ast.operands.PatioOperand; import org.shedlang.compiler.patio.ast.types.*; import org.shedlang.compiler.sources.Source; import org.shedlang.compiler.stackir.instructions.DefineFunctionInstruction; @@ -173,7 +174,7 @@ class PatioCodeGenClosures { source )); - var args = new ArrayList(); + var args = new ArrayList(); args.add(closurePointer); diff --git a/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioCallPointer.java b/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioCallPointer.java index 215f71f9..fcd3fb0b 100644 --- a/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioCallPointer.java +++ b/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioCallPointer.java @@ -13,7 +13,7 @@ import java.util.List; public record PatioCallPointer( PatioLocalRef target, PatioOperand functionPointer, - List args, + List args, Source source ) implements PatioInstruction { } diff --git a/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioIf.java b/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioIf.java index 4f7a8700..94327a1f 100644 --- a/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioIf.java +++ b/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioIf.java @@ -1,6 +1,7 @@ package org.shedlang.compiler.patio.ast.instructions; import org.shedlang.compiler.patio.ast.operands.PatioLocalRef; +import org.shedlang.compiler.patio.ast.operands.PatioOperand; import org.shedlang.compiler.sources.Source; import java.util.List; @@ -14,7 +15,7 @@ import java.util.List; */ public record PatioIf( List targets, - PatioLocalRef condition, + PatioOperand condition, PatioBlock trueBody, PatioBlock falseBody, Source source diff --git a/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioReturn.java b/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioReturn.java index 285395e0..1d5cbcd2 100644 --- a/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioReturn.java +++ b/src/main/java/org/shedlang/compiler/patio/ast/instructions/PatioReturn.java @@ -1,10 +1,10 @@ package org.shedlang.compiler.patio.ast.instructions; -import org.shedlang.compiler.patio.ast.operands.PatioLocalRef; +import org.shedlang.compiler.patio.ast.operands.PatioOperand; import org.shedlang.compiler.sources.Source; /** * Return with the given value from the current function. */ -public record PatioReturn(PatioLocalRef value, Source source) implements PatioInstruction { +public record PatioReturn(PatioOperand value, Source source) implements PatioInstruction { } -- cgit v1.2.3