6502汇编代码生成器:比GCC和LLVM更快?

2025-02-16

一位开发者构建了一个针对6502架构的编译器,其生成的代码速度竟然超过了GCC、LLVM和其他编译器。这并非源于高级优化,而是代码生成阶段的巧妙设计。该编译器使用了“非法”指令、高计算成本的指令选择以及空间换时间的优化策略。其核心算法将指令选择与寄存器分配相结合,并巧妙地利用了延续传递风格,通过DAG和SSA形式的中间表示,生成多种汇编代码组合,再利用动态规划和分支限界法进行剪枝,最终通过求解PBQP问题选择最优组合。虽然存在一些“作弊”之处,但该编译器在基准测试中表现出色,为代码生成技术提供了新的思路。

开发