diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1230ce300..62b34ae1e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,6 +15,24 @@ jobs: - name: Checkout uses: actions/checkout@v2 + - name: Cache LLVM and Clang + id: cache-llvm + uses: actions/cache@v2 + with: + path: ../llvm + key: llvm-12-0-1 + + - name: Setup LLVM + if: steps.cache-llvm.outputs.cache-hit != 'true' + run: | + mkdir -p ../llvm/build + cd ../llvm + curl -fsSL https://github.com/llvm/llvm-project/archive/refs/tags/llvmorg-12.0.1.tar.gz -o llvm.tar.gz + tar -zxf llvm.tar.gz + cd build + cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS_RELEASE="-O2" -G "Unix Makefiles" ../llvm + cmake --build . + - name: Download Libs run: | mkdir -p ./compiler/lib diff --git a/compiler/src/ir/GeneratorVisitor.cpp b/compiler/src/ir/GeneratorVisitor.cpp index 77c0839c0..fdc6144d1 100644 --- a/compiler/src/ir/GeneratorVisitor.cpp +++ b/compiler/src/ir/GeneratorVisitor.cpp @@ -291,10 +291,6 @@ antlrcpp::Any GeneratorVisitor::visitFunctionCall(SpiceParser::FunctionCallConte return builder->CreateCall(fct, argValues); } -antlrcpp::Any GeneratorVisitor::visitImportStmt(SpiceParser::ImportStmtContext *ctx) { - return SpiceBaseVisitor::visitImportStmt(ctx); -} - antlrcpp::Any GeneratorVisitor::visitReturnStmt(SpiceParser::ReturnStmtContext *ctx) { auto returnValue = visit(ctx->assignment()).as(); // Build return value diff --git a/compiler/src/ir/GeneratorVisitor.h b/compiler/src/ir/GeneratorVisitor.h index c625348cb..6080035ac 100644 --- a/compiler/src/ir/GeneratorVisitor.h +++ b/compiler/src/ir/GeneratorVisitor.h @@ -46,7 +46,6 @@ class GeneratorVisitor : public SpiceBaseVisitor { antlrcpp::Any visitIfStmt(SpiceParser::IfStmtContext *ctx) override; antlrcpp::Any visitDeclStmt(SpiceParser::DeclStmtContext *ctx) override; antlrcpp::Any visitFunctionCall(SpiceParser::FunctionCallContext *ctx) override; - antlrcpp::Any visitImportStmt(SpiceParser::ImportStmtContext *ctx) override; antlrcpp::Any visitReturnStmt(SpiceParser::ReturnStmtContext *ctx) override; antlrcpp::Any visitPrintfStmt(SpiceParser::PrintfStmtContext *ctx) override; antlrcpp::Any visitAssignment(SpiceParser::AssignmentContext *ctx) override; diff --git a/media/test.spice b/media/test.spice index 8c0665b02..ef04810ec 100644 --- a/media/test.spice +++ b/media/test.spice @@ -1,19 +1,8 @@ -f testFunc() { - printf("Hello from testFunc!\n"); - return 1; -} - -p testProcedure() { - double result = true || false ? 5.1 : 4.12; - printf("Computation result: %d", result); -} - f main() { - for int j = 0; j < 5; j++ { - printf("For round: %d \n", j); - } - int testFuncResult = testFunc(); - printf("Result of testFunc: %d \n", testFuncResult); - testProcedure(); + int operand1 = 6; + int operand2 = 5; + int res = operand1 | operand2; + printf("Computation result is: %d", res); + return 0; } \ No newline at end of file