Merge branch 'IROptPre' into backend

This commit is contained in:
Lixuanwang
2025-06-24 00:40:36 +08:00
10 changed files with 562 additions and 16 deletions

View File

@@ -9,6 +9,7 @@ using namespace antlr4;
// #include "Backend.h"
#include "SysYIRGenerator.h"
#include "SysYIRPrinter.h"
#include "SysYIROptPre.h"
#include "RISCv32Backend.h"
// #include "LLVMIRGenerator.h"
using namespace sysy;
@@ -79,6 +80,19 @@ int main(int argc, char **argv) {
auto moduleIR = generator.get();
SysYPrinter printer(moduleIR);
printer.printIR();
auto builder = generator.getBuilder();
SysYOptPre optPre(moduleIR, builder);
optPre.SysYOptimizateAfterIR();
printer.printIR();
return EXIT_SUCCESS;
}
// generate assembly
auto module = generator.get();
sysy::RISCv32CodeGen codegen(module);
string asmCode = codegen.code_gen();
if (argStopAfter == "asm") {
cout << asmCode << endl;
return EXIT_SUCCESS;
}