沐曦二面前几天面的,今天记录一下团队技术boss,特别像大学教授,对编译前沿的知识了解非常多,人特别和蔼,学院派的感觉。1. 介绍项目2. llvm pass的开发回答:llvm有一些自有的pass,比如…但是自己没有开发过。3. 反汇编时jump指令越界处理语义分析,比如一些下标越界,空指针这种。还有就是一些特殊段比如 stack 之类的有固定的虚拟地址。不然只能运行时报错。(面试官微微一笑,我感觉我答的有点奇怪)4. 寄存器分配方法我直接以之前课设浅薄知识回答:待用活跃链表,和基本块栈式组成。其实,应该是use-def链,中科大华保健老师的课我都看完还做了笔记的,我居然忘了,哭辽。5. 平时调试代码的方法代码里会写assert输出错误,还有就是gdb --args,b打断点,bt看调用栈这些。(大家有什么好方法可以补充)6. 手写算法题k组链表的翻转。我电脑重刷系统了,只能找了一个在线的C++代码编辑器当场手码。不难,但是老提示越界。当场把链表数据结构,循环输入输出手搓出来调试,发现这鬼玩意儿一写递归函数就提示越界。(面试官语重心长的说,还是要安装一个ide,比如visual studio好调试。平时一直在服务器上调试,我就直接把本地ide卸了,唉)7. 个人规划8. 反问如何高效学习编译相关知识?入门很难。面试官:宏观:5年一个周期,要耐得住寂寞,选择有时候比努力更重要。具体:follow llvm or其他社区,从文献索引中看自己感兴趣的点切入。体感:一面面试官偏工程,对技术系列非常了解;二面面试官偏学术,对前沿和基础原理非常了解,面试体验感觉不错。 #编译器# #面经#