LLVM Back-end Engineer
Description
We
are looking for an experienced LLVM Backend Engineer to design and implement
backend components of the compiler toolchain. The role focuses on building and
optimizing the code generation flow targeting a custom or existing hardware
architecture. The candidate will work on LLVM IR transformations, instruction
selection, and target-specific optimizations to deliver high-performance,
efficient compiled code.
Responsibilities:
• Develop and maintain the LLVM backend for a
custom or existing target architecture.
• Implement and extend instruction selection,
register allocation, scheduling, and code emission.
• Design and implement IR-level optimization passes
to improve performance, memory efficiency, and code quality.
• Work on LLVM middle-end transformations and
optimizations.
• Analyze and tune generated assembly/code quality
for performance bottlenecks.
• Collaborate with hardware teams to ensure
architectural features are fully leveraged by the compiler backend.
Requirements
Education:
• Strong C/C++ programming skills and solid
understanding of compiler fundamentals.
• Hands-on experience with LLVM, LLVM IR, and
backend/code-generation components.
• Understanding of instruction selection, register
allocation, instruction scheduling, and code emission.
• Experience with compiler optimizations and
performance/code-quality analysis.
Need to have (Can be bridged):
• Experience developing or modifying LLVM backend
components for a target architecture.
• Knowledge of IR-level and middle-end
transformations and optimization passes.
• Ability to analyze generated assembly and
identify performance bottlenecks.
Good to have (Not essential):
• Experience with custom hardware architectures,
accelerators, CPU/GPU/DSP/FPGA targets, or domain-specific architectures.
• Experience contributing to upstream LLVM or
maintaining an internal LLVM fork.
• Familiarity with compiler testing, benchmarking,
and performance tuning workflows.
Preferred Qualifications (Optional):
• Experience collaborating closely with
hardware/architecture teams and translating architectural features into
compiler support.
