Skip to content

Add SSA optimizer and target #37

@SamuraiCrow

Description

@SamuraiCrow

Static Single-Assign format reduces complexity in modern compilers. It is used extensively in LLVM but is more practically applied in the use of the QBE backend. Since QBE is MIT licensed and much smaller than LLVM or even GCC, it would seem to be the most obvious target. What is needed to make QBE usable for E is:

  • Add 32-bit processor support to the format using an existing patch
  • Replace C11 dependencies with E equivalents (eg. fprintf with VfPrintF from DOS.library and printf with PrintF)

Compromises:

  • Inline assembly is not supported by this optimizer target
  • Register loading is automatic rather than REG variables and assumed because it has a proper register mapper and spiller.

Sub-issues

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions