You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lzkk
fccd935a24
feat(backend): 新增 AddImm/SubImm 操作码,消除冗余 MovImm
AArch64 add/sub 支持 12 位立即数,但 MIR 只有 AddRR/SubRR,
导致 RHS 为常量时需先 MovImm 再 RR 运算。本次修改:
- MIR.h:新增 AddImm、SubImm 操作码
- Lowering.cpp:Add/Sub 降级时 RHS 为 0-4095 常量直接用 AddImm/SubImm
- RegAlloc.cpp:AddImm/SubImm 复用 AddRR/SubRR 的 def-use 分析
- AsmPrinter.cpp:通用打印机自动处理 Imm 操作数(#value)
效果(对比 CmpImm 基线):
- sl1-3: 261→247 (-14, -5.4%)
- huffman-01-03: 792→790 (-2)
- h-5-01-03: 341→338 (-3)
- 全 60 个性能用例总减少 55 行
- 功能测试 0 新故障
更新:优化记录.md 新增条目,基线自动更新
|
7 days ago |
| .. |
|
antlr4
|
fix: 补全缺失的头文件目录
|
3 weeks ago |
|
frontend
|
Fix undefined behavior: signed overflow, negative left shift, float-to-int overflow
|
3 weeks ago |
|
include
|
feat(backend): 新增 AddImm/SubImm 操作码,消除冗余 MovImm
|
7 days ago |
|
ir
|
feat(mem2reg): tune PHI threshold to allow Mem2Reg on moderate functions\n\nChange phi_threshold from max(50, block_count) to max(100, block_count*2).\nThe old threshold was too conservative for functions with many allocas\nlike many_mat_cal (~15 allocas, 60 blocks), causing premature skip.\nThe new threshold allows these while still blocking crypto-like functions\nwhere excessive PHI nodes hurt code quality.\n\nmany_mat_cal: -91 lines, matmul: -84 lines, h-8: -97 lines
|
1 week ago |
|
irgen
|
Fix starttime/stoptime function name and add line number parameter
|
3 weeks ago |
|
mir
|
feat(backend): 新增 AddImm/SubImm 操作码,消除冗余 MovImm
|
7 days ago |
|
sem
|
Fix undefined behavior: signed overflow, negative left shift, float-to-int overflow
|
3 weeks ago |
|
utils
|
Fix undefined behavior: signed overflow, negative left shift, float-to-int overflow
|
3 weeks ago |
|
CMakeLists.txt
|
已实现基本标量优化,实现部分寄存器优化
|
3 weeks ago |
|
main.cpp
|
实现循环优化:LICM、强度削弱、循环展开、循环分裂
|
2 weeks ago |