Skip to content

Simplify and improve transformation passes #133

@alastairreid

Description

@alastairreid

The plan for improving compilation is

  • extend the HLIR intermediate representation (libISA/hlir.ml) to handle the full language
  • extend the ISA->HLIR convertor to handle the full language
  • change the implementation of HLIR to make more operations constant time (based on MLIR/LLVM-IR implementation)
  • remove some of the early desugaring passes that will be redundant when using HLIR (because HLIR doesn't have syntactic sugar)
  • convert later passes (codegen, mono, constprop) to work on HLIR
  • gradually work on mid-passes and early passes to work on HLIR until all passes have been converted.

This is likely to take a while and is considered non-urgent.
(But, once done, code generation will be dramatically faster and less fragile)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions