spacer
spacer

Job description

Role title: Compiler Engineer

Icera is seeking a Compiler Engineer to join its programming tools and models team, specifically to enhance our compiler and code generation technologies. The candidate must have prior commercial toolchain development experience, working for a semiconductor or software tools vendor with significant involvement in the porting/enhancement of compiler/linker assembler tools for a commercially available processor.

  • knowledge of CPU architecture (pipeline effects, cache behaviour, interrupt mechanisms, bootstrap mechanisms etc.)
  • Porting/enhancing GNU C compiler tools (gcc) and GNU binutils (gas, ld, BFD) to new processor targets.
  • Experience of advanced register allocation and code scheduling techniques.
  • Code generation techniques for non-C source languages (eg using MATLAB to generate assembly language or C).
  • Code analysis and tuning (examining compiled and/or hand written assembly language statically, or using pipeline simulator output).
  • Determining optimizations/improvements. Working with applications groups to assist in these activities.
  • GNU newlib porting experience. Optimization of similar runtime libraries (for codesize/datasize etc)
  • Embedded RTOS porting/writing drivers, eg eCOS/Nucleus/pSOS/VxWorks.

Candidates should have:

  • Good degree (Computer Science, Electronic Engineering etc.)
  • Several years industrial experience involving processor toolchain development, involvement in compiler porting, experience in porting tools such as assemblers, linkers, and experience of tuning tools to application requirements
  • Good communication skills, a methodical approach and solid engineering ability.