From 76eb5fdd4858e1844fce2a53af3287acdb7f53c4 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 20 Dec 2023 16:55:06 +0000 Subject: Rename LlvmPatioCodeGent to PatioToLlvm --- .../backends/llvm/LlvmPatioCodeGenTests.java | 77 ---------------------- .../compiler/backends/llvm/PatioToLlvmTests.java | 77 ++++++++++++++++++++++ 2 files changed, 77 insertions(+), 77 deletions(-) delete mode 100644 src/test/java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGenTests.java create mode 100644 src/test/java/org/shedlang/compiler/backends/llvm/PatioToLlvmTests.java (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGenTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGenTests.java deleted file mode 100644 index 725195e0..00000000 --- a/src/test/java/org/shedlang/compiler/backends/llvm/LlvmPatioCodeGenTests.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.shedlang.compiler.backends.llvm; - -import org.shedlang.compiler.backends.llvm.codegen.LlvmPatioCodeGen; -import org.shedlang.compiler.backends.llvm.codegen.LlvmPatioCodeGenGlobalContext; -import org.shedlang.compiler.backends.llvm.ir.ast.LlvmBasicBlock; -import org.shedlang.compiler.backends.llvm.ir.ast.LlvmFunctionDefinition; -import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmCall; -import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmReturn; -import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmTrunc; -import org.shedlang.compiler.backends.llvm.ir.ast.operands.LlvmVariableGlobal; -import org.shedlang.compiler.backends.llvm.ir.ast.operands.LlvmVariableLocal; -import org.shedlang.compiler.backends.llvm.ir.ast.types.LlvmTypes; -import org.shedlang.compiler.backends.paths.PartialTargetPath; -import org.shedlang.compiler.patio.PatioExampleTests; -import org.shedlang.compiler.patio.ast.PatioCompilationUnit; -import org.shedlang.compiler.testing.ExecutionResult; -import org.shedlang.compiler.testing.TestProcessRunner; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.List; -import java.util.Optional; - -public class LlvmPatioCodeGenTests extends PatioExampleTests { - @Override - protected ExecutionResult run(PatioCompilationUnit patio) throws IOException, InterruptedException { - var llvmModuleResult = LlvmPatioCodeGen.generateCompilationUnit( - patio, - LlvmPatioCodeGenGlobalContext.EMPTY - ); - var llvmModule = llvmModuleResult.value(); - - llvmModule = llvmModule.addTopLevelEntity(new LlvmFunctionDefinition( - "main", - LlvmTypes.INT_32, - List.of(), - List.of( - new LlvmBasicBlock( - Optional.empty(), - List.of( - new LlvmCall( - new LlvmVariableLocal("exitCode"), - LlvmTypes.INT_64, - new LlvmVariableGlobal(FUNCTION_NAME), - List.of() - ), - new LlvmTrunc( - new LlvmVariableLocal("exitCode32"), - LlvmTypes.INT_64, - new LlvmVariableLocal("exitCode"), - LlvmTypes.INT_32 - ) - ), - new LlvmReturn(LlvmTypes.INT_32, new LlvmVariableLocal("exitCode32")) - ) - ) - )); - - Files.createDirectories(Path.of("tests-tmp")); - var workingDirectory = Files.createTempDirectory(Path.of("tests-tmp"), "LlvmPatioCodeGen"); - - var objectFilePath = LlvmCompiler.compileLlvmModule( - llvmModule, - new PartialTargetPath(workingDirectory.resolve("main")) - ); - - var executablePath = workingDirectory.resolve("main"); - - LlvmBackend.link( - List.of(objectFilePath), - executablePath - ); - - return TestProcessRunner.runCaptureOutput(List.of(executablePath.toString())); - } -} diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/PatioToLlvmTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/PatioToLlvmTests.java new file mode 100644 index 00000000..1bb67008 --- /dev/null +++ b/src/test/java/org/shedlang/compiler/backends/llvm/PatioToLlvmTests.java @@ -0,0 +1,77 @@ +package org.shedlang.compiler.backends.llvm; + +import org.shedlang.compiler.backends.llvm.codegen.PatioToLlvm; +import org.shedlang.compiler.backends.llvm.codegen.LlvmPatioCodeGenGlobalContext; +import org.shedlang.compiler.backends.llvm.ir.ast.LlvmBasicBlock; +import org.shedlang.compiler.backends.llvm.ir.ast.LlvmFunctionDefinition; +import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmCall; +import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmReturn; +import org.shedlang.compiler.backends.llvm.ir.ast.instructions.LlvmTrunc; +import org.shedlang.compiler.backends.llvm.ir.ast.operands.LlvmVariableGlobal; +import org.shedlang.compiler.backends.llvm.ir.ast.operands.LlvmVariableLocal; +import org.shedlang.compiler.backends.llvm.ir.ast.types.LlvmTypes; +import org.shedlang.compiler.backends.paths.PartialTargetPath; +import org.shedlang.compiler.patio.PatioExampleTests; +import org.shedlang.compiler.patio.ast.PatioCompilationUnit; +import org.shedlang.compiler.testing.ExecutionResult; +import org.shedlang.compiler.testing.TestProcessRunner; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Optional; + +public class PatioToLlvmTests extends PatioExampleTests { + @Override + protected ExecutionResult run(PatioCompilationUnit patio) throws IOException, InterruptedException { + var llvmModuleResult = PatioToLlvm.generateCompilationUnit( + patio, + LlvmPatioCodeGenGlobalContext.EMPTY + ); + var llvmModule = llvmModuleResult.value(); + + llvmModule = llvmModule.addTopLevelEntity(new LlvmFunctionDefinition( + "main", + LlvmTypes.INT_32, + List.of(), + List.of( + new LlvmBasicBlock( + Optional.empty(), + List.of( + new LlvmCall( + new LlvmVariableLocal("exitCode"), + LlvmTypes.INT_64, + new LlvmVariableGlobal(FUNCTION_NAME), + List.of() + ), + new LlvmTrunc( + new LlvmVariableLocal("exitCode32"), + LlvmTypes.INT_64, + new LlvmVariableLocal("exitCode"), + LlvmTypes.INT_32 + ) + ), + new LlvmReturn(LlvmTypes.INT_32, new LlvmVariableLocal("exitCode32")) + ) + ) + )); + + Files.createDirectories(Path.of("tests-tmp")); + var workingDirectory = Files.createTempDirectory(Path.of("tests-tmp"), "LlvmPatioCodeGen"); + + var objectFilePath = LlvmCompiler.compileLlvmModule( + llvmModule, + new PartialTargetPath(workingDirectory.resolve("main")) + ); + + var executablePath = workingDirectory.resolve("main"); + + LlvmBackend.link( + List.of(objectFilePath), + executablePath + ); + + return TestProcessRunner.runCaptureOutput(List.of(executablePath.toString())); + } +} -- cgit v1.2.3