Custom LLVM Register Allocator Implementation

Job ID: 39769347

Budget: $250 – $750 USD

I'm seeking an experienced C++ developer with a strong understanding of LLVM to implement and debug a custom register allocator based on interval sets.

The tasks include:
• Modifying or adding a new pass under llvm/lib/CodeGen/
• Implementing tryAllocateRegister and selectOrSplit for interval-based allocation
• Integrating with VirtRegMap, LiveIntervals, and Spiller
• Ensuring llc -regalloc=intervals compiles and runs without crashes on provided test IR files
• Ensuring correctness: all virtual registers must be mapped to a physical register, and spills handled gracefully

Deliverables:
• Working C++ source file(s) under LLVM CodeGen
• Instructions to build and run with ninja llc
• Example run on a small .ll test file showing correct register allocation

Ideal skills and experience:
• Proficiency in C++
• Experience with LLVM internals, especially CodeGen
• Familiarity with register allocation techniques
• Ability to debug complex compilation issues

Please provide relevant past work or projects related to LLVM or compiler development.