feat(ir): 启用LIR模块并重构HIR组件结构
- 在cbuild.toml中启用lir依赖项,取消注释相关配置 - 重构libs/README.md文档,添加详细的库说明和层级结构 - 重命名头文件以统一命名规范:ast_def.h → scc_ast_def.h, ast_dump.h → scc_ast_dump.h, hir相关文件添加scc前缀 - 更新include路径以匹配新的文件命名 - 在cfg模块中添加symbol ID类型和linkage枚举,完善符号表功能 - 实现cfg模块中的符号添加、查找和获取功能 - 修改HIR中meta字段替换原有的attribute字段,更新相关访问宏 - 修复HIR构建器中的函数元数据访问错误 - 为LIR模块创建完整的头文件结构,包括指令定义、转换器等组件
This commit is contained in:
50
src/main.c
50
src/main.c
@@ -3,12 +3,12 @@
|
||||
#include <scc_parser.h>
|
||||
#include <scc_pproc.h>
|
||||
|
||||
#include <ast_dump.h>
|
||||
#include <hir_dump.h>
|
||||
#include <scc_ast2ir.h>
|
||||
#include <scc_ast_dump.h>
|
||||
#include <scc_hir2lir.h>
|
||||
#include <scc_hir_dump.h>
|
||||
#include <scc_lir_dump.h>
|
||||
|
||||
// #include <scc_ir2lir.h>
|
||||
// #include <scc_lir_dump.h>
|
||||
// #include <scc_ir2mcode.h>
|
||||
// #include <sccf2pe.h>
|
||||
|
||||
@@ -231,7 +231,7 @@ sstream_drop:
|
||||
} else {
|
||||
scc_tree_dump_init(&tree_dump, false);
|
||||
}
|
||||
scc_hir_dump_ctx_init(&ir_dump_ctx, &tree_dump, &cprog);
|
||||
scc_hir_dump_init(&ir_dump_ctx, &tree_dump, &cprog);
|
||||
// scc_ir_dump_cprog(&ir_dump_ctx);
|
||||
scc_hir_dump_cprog_linear(&ir_dump_ctx);
|
||||
|
||||
@@ -241,28 +241,26 @@ sstream_drop:
|
||||
return 0;
|
||||
}
|
||||
|
||||
// scc_lir_builder_t lir_builder;
|
||||
// scc_lir_module_t lir_module;
|
||||
// scc_lir_module_init(&lir_module);
|
||||
// scc_lir_builder_init(&lir_builder, &lir_module);
|
||||
// scc_ir2lir(&lir_builder, &cprog);
|
||||
// if (config.emit_lir) {
|
||||
// scc_lir_dump_ctx_t lir_dump_ctx;
|
||||
// scc_tree_dump_t tree_dump;
|
||||
// if (fp == nullptr) {
|
||||
// scc_tree_dump_init(&tree_dump, true);
|
||||
// } else {
|
||||
// scc_tree_dump_init(&tree_dump, false);
|
||||
// }
|
||||
// scc_lir_dump_init(&lir_dump_ctx, &tree_dump);
|
||||
// // scc_ir_dump_cprog(&ir_dump_ctx);
|
||||
// scc_lir_dump_module(&lir_dump_ctx, &lir_module);
|
||||
scc_lir_module_t lir_module;
|
||||
scc_lir_module_init(&lir_module);
|
||||
scc_hir2lir(&lir_module, &cprog);
|
||||
if (config.emit_lir) {
|
||||
scc_lir_dump_ctx_t lir_dump_ctx;
|
||||
scc_tree_dump_t tree_dump;
|
||||
if (fp == nullptr) {
|
||||
scc_tree_dump_init(&tree_dump, true);
|
||||
} else {
|
||||
scc_tree_dump_init(&tree_dump, false);
|
||||
}
|
||||
scc_lir_dump_init(&lir_dump_ctx, &tree_dump, &lir_module);
|
||||
// scc_ir_dump_cprog(&ir_dump_ctx);
|
||||
scc_lir_dump_module(&lir_dump_ctx);
|
||||
|
||||
// scc_tree_dump_flush(&tree_dump, tree_dump_output,
|
||||
// fp == nullptr ? scc_stdout : fp);
|
||||
// scc_tree_dump_drop(&tree_dump);
|
||||
// return 0;
|
||||
// }
|
||||
scc_tree_dump_flush(&tree_dump, tree_dump_output,
|
||||
fp == nullptr ? scc_stdout : fp);
|
||||
scc_tree_dump_drop(&tree_dump);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// scc_ir2mcode_ctx_t ir2mcode_ctx;
|
||||
// sccf_builder_t sccf_builder;
|
||||
|
||||
Reference in New Issue
Block a user