Gerador de código 6502 supera GCC e LLVM

2025-02-16

Um desenvolvedor criou um gerador de código para a arquitetura 6502 que, surpreendentemente, supera o GCC, LLVM e outros compiladores. A vantagem de velocidade não vem de otimizações de alto nível superiores, mas sim de técnicas inovadoras de geração de código. O compilador utiliza instruções "ilegais", seleção de instruções com alto custo computacional e otimizações que trocam espaço por tempo. O algoritmo principal combina seleção de instruções com alocação de registradores, usando de forma inteligente o estilo de passagem de continuação. Ele trabalha com uma representação intermediária DAG e SSA, gerando múltiplas combinações de código de montagem, podando com programação dinâmica e branch-and-bound, e finalmente resolvendo um problema PBQP para seleção ótima. Embora empregue alguns "truques", o compilador apresenta resultados de benchmark notáveis, oferecendo novas perspectivas sobre a geração de código.

Desenvolvimento