Skip to content

Dump e visualização da IR para debugging do compilador #32

@Bappoz

Description

@Bappoz

Descrição

Implementar --dump-ir como flag de linha de comando que ativa a impressão da IR em cada etapa do pipeline.

Saída esperada

=== TAC (antes das otimizações) ===
function main:
  t0 = 3 * 4
  t1 = 2 + t0
  return t1

=== CFG ===
block 0 (entry):
  succs: [1]
  t0 = 3 * 4
  t1 = 2 + t0
  return t1

=== TAC (após otimizações) ===
function main:
  t1 = 14
  return t1

Tarefas

  • Implementar Display completo para TacProgram e TacFunction
  • Implementar Display para Cfg mostrando blocos, succs/preds e instruções
  • Adicionar flag --dump-ir no CLI (src/main.rs)
  • Adicionar flag --dump-ir-optimized para mostrar após otimizações
  • Adicionar flag --dump-cfg para mostrar o CFG em formato de lista de arestas

Testes

#[test]
fn tac_program_display_is_valid_text() {
    // o Display não deve entrar em pânico para nenhum programa válido
}
#[test]
fn optimized_tac_has_fewer_instrs_than_original() {}

Metadata

Metadata

Assignees

No one assigned

    Labels

    IRintermediate code generationenhancementNew feature or requesttest

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions