From 6d34e5866571fe050068685f5926052f9464ba9e Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Fri, 24 Dec 2021 16:52:43 +0000 Subject: [PATCH] Fix the wrong constant opretation --- builder | 2 +- include/serene/slir/generatable.h | 3 ++- include/serene/slir/traits.h | 3 ++- src/libserene/CMakeLists.txt | 3 ++- src/libserene/passes/slir_lowering.cpp | 21 +++++++++++---------- src/serenec/CMakeLists.txt | 10 +++++----- 6 files changed, 23 insertions(+), 19 deletions(-) diff --git a/builder b/builder index c6c6a97..7af4757 100755 --- a/builder +++ b/builder @@ -35,7 +35,7 @@ BUILD_DIR=$ROOT_DIR/build ME=$(cd "$(dirname "$0")/." >/dev/null 2>&1 ; pwd -P) CMAKEARGS_DEBUG=" -DCMAKE_BUILD_TYPE=Debug -DSERENE_WITH_MLIR_CL_OPTION=ON" -CMAKEARGS="-DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DSERENE_CCACHE_DIR=$HOME/.ccache" +CMAKEARGS="-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DSERENE_CCACHE_DIR=$HOME/.ccache" # The scan-build utility scans the build for bugs checkout the man page scanbuild="scan-build --force-analyze-debug-code --use-analyzer=$(which clang)" diff --git a/include/serene/slir/generatable.h b/include/serene/slir/generatable.h index 791e3b4..11de52b 100644 --- a/include/serene/slir/generatable.h +++ b/include/serene/slir/generatable.h @@ -33,6 +33,7 @@ #include #include #include + #include #include @@ -93,7 +94,7 @@ std::unique_ptr toLLVMIR(Generatable &t) { // Initialize LLVM targets. llvm::InitializeNativeTarget(); - llvm::InitializeNativeTargetAsmPrinter(); + // llvm::InitializeNativeTargetAsmPrinter(); // TODO: replace this call with our own version of setupTargetTriple mlir::ExecutionEngine::setupTargetTriple(llvmModule.get()); diff --git a/include/serene/slir/traits.h b/include/serene/slir/traits.h index 805e922..29b1fa6 100644 --- a/include/serene/slir/traits.h +++ b/include/serene/slir/traits.h @@ -33,6 +33,7 @@ #include #include #include + #include #include @@ -89,7 +90,7 @@ std::unique_ptr toLLVMIR(Generatable &t) { // Initialize LLVM targets. llvm::InitializeNativeTarget(); - llvm::InitializeNativeTargetAsmPrinter(); + // llvm::InitializeNativeTargetAsmPrinter(); // TODO: replace this call with our own version of setupTargetTriple mlir::ExecutionEngine::setupTargetTriple(llvmModule.get()); diff --git a/src/libserene/CMakeLists.txt b/src/libserene/CMakeLists.txt index 71925ec..800bf43 100644 --- a/src/libserene/CMakeLists.txt +++ b/src/libserene/CMakeLists.txt @@ -168,6 +168,7 @@ target_link_libraries(serene PRIVATE LLVMOrcJIT MLIRLLVMToLLVMIRTranslation - LLVMX86AsmParser + #LLVMTarget + #LLVMX86AsmParser ${llvm_libs}) diff --git a/src/libserene/passes/slir_lowering.cpp b/src/libserene/passes/slir_lowering.cpp index 2c33a65..6990215 100644 --- a/src/libserene/passes/slir_lowering.cpp +++ b/src/libserene/passes/slir_lowering.cpp @@ -21,6 +21,7 @@ #include "serene/utils.h" #include +#include #include #include #include @@ -30,6 +31,8 @@ #include #include +#include + namespace serene::passes { // ---------------------------------------------------------------------------- @@ -57,12 +60,10 @@ ValueOpLowering::matchAndRewrite(serene::slir::ValueOp op, rewriter.setInsertionPointToStart(entryBlock); // Since we only support i64 at the moment we use ConstantOp - auto retVal = - rewriter - .create( - loc, mlir::IntegerAttr::get(rewriter.getI64Type(), value), - rewriter.getI64Type()) - .getResult(); + auto retVal = rewriter + .create(loc, (int64_t)value, + rewriter.getI64Type()) + .getResult(); UNUSED(rewriter.create(loc, retVal)); @@ -111,9 +112,8 @@ FnOpLowering::matchAndRewrite(serene::slir::FnOp op, rewriter.setInsertionPointToStart(entryBlock); auto retVal = rewriter - .create( - loc, mlir::IntegerAttr::get(rewriter.getI64Type(), 3), - rewriter.getI64Type()) + .create(loc, (int64_t)3, + rewriter.getI64Type()) .getResult(); rewriter.create(loc, retVal); @@ -142,7 +142,7 @@ struct SLIRToMLIRPass // dialects do we want to lower to void SLIRToMLIRPass::getDependentDialects( mlir::DialectRegistry ®istry) const { - registry.insert(); + registry.insert(); }; /// Return the current function being transformed. @@ -161,6 +161,7 @@ void SLIRToMLIRPass::runOnModule() { // We define the specific operations, or dialects, that are legal targets for // this lowering. In our case, we are lowering to the `Standard` dialects. target.addLegalDialect(); + target.addLegalDialect(); // We also define the SLIR dialect as Illegal so that the conversion will fail // if any of these operations are *not* converted. diff --git a/src/serenec/CMakeLists.txt b/src/serenec/CMakeLists.txt index f4a82d3..823bcb9 100644 --- a/src/serenec/CMakeLists.txt +++ b/src/serenec/CMakeLists.txt @@ -39,12 +39,12 @@ target_link_libraries(serenec PRIVATE Serene::lib - MLIRPass + #MLIRPass - LLVMTarget - LLVMOption - lldDriver - lldELF + #LLVMTarget + #LLVMOption + #lldDriver + #lldELF ) target_include_directories(serenec PRIVATE ${PROJECT_BINARY_DIR})