The Compiler Engineer is responsible for development and enhancement of high-performance production level C/C++/Fortran compilers. Compiler Engineers are expected to independently design and develop complex optimization passes. Compiler Engineers must work closely with performance analysts, Compiler QA and the Compiler support organization. As needed, Compiler Engineers also work on Performance Analysis of the compiler and produce analysis reports.
- Implement or enhance compiler passes (mostly backend optimization passes)
- Independently work on optimization passes
- Propose design, defend and implement optimization passes
- Contribute to the technical content of the compiler documentation/manuals.
- Generate a formal Performance Analysis report on performance issues, analysis and quantified improvement in performance.
- Develop a close working relationship with Compiler QA, Compiler Support and other performance/compiler teams.
Qualifications / Experience:
- BS and 2+ years or fresh MS/PhD with computer science major
- Hands-on experience in compiler code generation and optimization in at least one major general purpose compiler for C/C++/Fortran
- Good working experience with one or more commercial or open source compilers (eg: Open64, LLVM etc)
- Good knowledge of micro-architectural features of modern microprocessors (eg; x86 , ARM)
- Excellent programming/debugging skills at Assembly level.
- Very solid practical C/C++/Fortran experience.
- Prior experience with performance analysis of programs, tuning and experience with analysis tools like profilers
- Prior experience with ARM and/or x86 target code generation a plus.
- Good interpersonal and communication (written and oral) skills
- Experience with parallel programming domain (OpenMP, MPI, auto-parallelization etc) is a plus
- Experience in parallel computing domain like (multi-core, GPGPU, SIMD, MIMD etc) is a plus
- Experience with GCC/LLVM internal is a plus