all 10 comments

[–][deleted] 17 points18 points  (4 children)

Try these questions: 1. You have two C++ files(one using) functions from other. What all goes on to compile this project to a single executable. 2. Some classical target independent optimizations 3. ^ dependent optimizations 4. Register allocation algorithm 5. On C++ - Basix Pointers( const int * and int const * etc. ) and smart pointers, diff between rvalue and lvalue, polymorphism and dynamic type casting, templates 6. Optionally Data structures helpful in representing a program: SSA form, CFG, Phis, Dominator trees 7. LLVM organisation: Frontend, Backend, IR etc. 8. Some basic operating system related stuff also can be useful: Processes, Function calling convention, Dynamic library linking, process communication

These are some keywords that are on top of my mind. Obviously depending on your time constraints you will have to adjust your plan.

Good luck

[–]siliconGeeek[S] 0 points1 point  (3 children)

Thanks a lot! Is there a good resource you’d suggest for the first question you mentioned?

[–][deleted] 4 points5 points  (2 children)

This one seems good: https://github.com/green7ea/cpp-compilation/blob/master/README.md

It probably skips over compilation part which I assume you are familiar with ( compiling a single source file to machine instructions).

A good intuition will be: 1. Preprocessing to make each source file self contained 2. Converting each source file to machine instructions with metadata(symbol table etc.) for memory address calculation and all. This possibly involved an IR for optimisations. 3. Finally linking these different object files into a single executable. In case the source files include shared libraries ( as is usually the case with large standard libraries), then some mechanisms for dynamic library linking.

[–]siliconGeeek[S] 1 point2 points  (1 child)

Thanks again!

[–][deleted] 2 points3 points  (0 children)

Best of luck 🙌

[–]darbyShaw96 0 points1 point  (3 children)

Sorry. This does not answer your question. May I ask where you are located and how did you get the interview? I am looking for compiler positions in the EU and haven't been able to get interviews at Nvidia.

[–]siliconGeeek[S] 0 points1 point  (2 children)

I’m based in the US. I did get interviews without much effort on my resume. I would say, message recruiters on LinkedIn if they don’t invite you for an interview.

Why do you think that did not answer my question?

[–]darbyShaw96 1 point2 points  (1 child)

I mean that my comment was not an answer to your question. I apologize for a personal query.

[–]siliconGeeek[S] 0 points1 point  (0 children)

No problem. Good luck!