llvmir some opt

This commit is contained in:
邓智航
2025-12-10 17:58:17 +08:00
commit 84827838e2
103 changed files with 5838 additions and 0 deletions

36
midend/visit/Visitor.java Normal file
View File

@@ -0,0 +1,36 @@
package midend.visit;
import java.util.ArrayList;
import frontend.ast.CompUnit;
import frontend.ast.decl.Decl;
import frontend.ast.func.FuncDef;
import frontend.ast.func.MainFuncDef;
import midend.symbol.SymbolManager;
public class Visitor {
private CompUnit compUnit;
public Visitor(CompUnit compUnit) {
this.compUnit = compUnit;
SymbolManager.reset();
SymbolManager.nextTable();
}
public void visit() {
ArrayList<Decl> decls = this.compUnit.GetDecls();
ArrayList<FuncDef> funcDefs = this.compUnit.GetFuncDefs();
MainFuncDef mainFuncDef = this.compUnit.GetMainFuncDef();
for (Decl decl : decls) {
VisitorDecl.visitDecl(decl);
}
for (FuncDef funcDef : funcDefs) {
VisitorFuncDef.visitFuncDef(funcDef);
}
VisitorFuncDef.visitMainFuncDef(mainFuncDef);
}
//:TODO:符号表的变换,什么时候往前进一个符号表,这需要人工手工来操作
}