Compiler Engineer Interview Questions

101

Compiler Engineer interview questions shared by candidates

Top Interview Questions

Sort: Relevance|Popular|Date
CEVA
Junior Compiler Software Engineer was asked...March 29, 2018

Assume your assembly language includes ONLY the following instructions: 'inc REG': increments a given register by one. 'dec REG': decrement a given register by one. 'jnz LABEL': jumps to a given LABEL if the previous instruction's result was not zero. 'HALT': stops running. Task: A and B registers hold non-negative values. The program should calculate the value of |A-B| and locate the result in C. In addition, the language holds registers C,D,...,Z, which you can assume are initialized at program start to zero.

2 Answers

Not well

sub_A: DEC A JNZ sub_B INC D JNZ A_reached_zero sub_B: DEC B JNZ sub_A A_grater: INC C DEC A JNZ A_greater HALT A_reached_zero: DEC B JNZ B_greater HALT B_greater: INC C DEC B JNZ B_greater HALT Less

IBM

Optimize this code (like what compiler would reconstruct an equivalent source code as): int fn (int a, int b) { int sum = 0; for(int i=4*a;i>0;i--) { sum+=b*i*i; } return sum; }

2 Answers

One of them is replace 4*b with a<<2. But there are more ways I didn't find. Less

the loop can be replaced by one line (basic series formula) : sum = b* 4*a *(4*a +1) *(8*a+1)/6 http://www.tug.org/texshowcase/cheat.pdf Less

AMD

LLVM and projects that I did.

1 Answers

I just explained my projects. I also showed my open-source contribution through screen sharing. Less

IBM

isPowerofTwo() without using addition

1 Answers

int isPowoftwo(int n) { while(n>0) { if(n&1) return (n==1) n= n>>1; } return 0; } Less

IBM

What's the difference between C++ and C?

1 Answers

Object oriented programming in C++ is the biggest difference, obviously. They will ask you to expand on this, so make sure you know what you're talking about before answering it. Less

Intel Corporation

The performance of a program is slower than the same program before the backend of the compiler has changed. What direction would you look into this issue and solve it?

1 Answers

I will utilize tools to find out hotspots in the target program. Then disassemble some particular hotspots, to see whether it's regard to loop, and CPU pipeline. Then try to unroll the loop, or rearrange the policy of the CG backend. Less

NVIDIA

How would you narrow down bugs, if you came in one day and found 10 new failures with your run?

1 Answers

Check the environment first, so see if anything has changed.

CEVA

Implement the next function in C (value can be also negative): char * itoa (int value, char * str);

1 Answers

Very good

IBM

Give an example of a time you solved a technical problem

1 Answers

Finding bugs in 3rd party libraries

IBM

Talk about a project on your resume.

1 Answers

If applying for co-op position from school, don't just talk about school projects, because chances are everyone else spoke about the same project. Do talk about personal and side projects if you have any, and be sure to mention that it was a side project, as employers like to see that. Less

Viewing 1 - 10 of 101 interview questions

See Interview Questions for Similar Jobs

analyst developeralgorithm engineerc software engineerplatform engineerassistant professor of computer sciencemobile engineersoftware systems engineer

Glassdoor has 101 interview questions and reports from Compiler engineer interviews. Prepare for your interview. Get hired. Love your job.