Skip to content

RV32 backend has no register allocator #126

Description

@Zaneham

Every BIR value round-trips through its own 4-byte stack slot, with only t0/t1/t2 as scratch. A simple add is a load, a load, an add and a store. There is no live-range analysis, no coalescing and no rematerialisation, so the output is correct but roughly three times longer than it needs to be.

src/amdgpu/ra_ssa.c is a real allocator and is probably the thing to point at this. Worth noting the prologue currently only pushes ra, so callee-saved save and restore needs adding before anything can live in s0-s11.

Metadata

Metadata

Assignees

No one assigned

    Labels

    backend: TensixTenstorrent Tensix / Metalium backendoptimisationPerformance improvements

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions