Custom LLVM Register Allocator Implementation
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.
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.
Related categories:
C Programming
C++ Programming
Debugging
Software Development
Computer Science
Software Engineering