2年编译器社招面经—沐曦二面

沐曦二面
前几天面的,今天记录一下
团队技术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其他社区,从文献索引中看自己感兴趣的点切入。

体感:一面面试官偏工程,对技术系列非常了解;二面面试官偏学术,对前沿和基础原理非常了解,面试体验感觉不错。 #编译器# #面经#
全部评论
谢谢大佬的分享,感觉问的还是挺简单的,可能他们更偏向传统编译器一些
1 回复 分享
发布于 2024-04-02 16:10 山西
寄存器分配算法不是图着色吗?感觉和我看的咋不一样
点赞 回复 分享
发布于 2024-11-28 11:54 河南
老哥,一面二面隔了多久
点赞 回复 分享
发布于 2023-07-05 10:57 上海

相关推荐

08-12 23:18
中山大学 C++
笔试2题只a了一题,竟然过了。一面面试官感觉挺年轻的,很好人。面了一个半小时,总体上是提出问题后不断深挖1、给了一个结构体,问大小,各成员的首地址2、怎么修改可以减少总大小3、通过什么方法可以修改对齐的规则(这个不知道)4、那我现在想要压缩这个结构体,只使用15字节(成员总大小)的空间要怎么放针对这个问题让我写一下伪代码,我的思路用一个int8数组存,把大于一个字节的成员转成int8数组格式,然后分别放进数组里。然后根据我的代码连续问了好几个问题,最后一个是:uint8_t array[15],把一个double num存进去,让其放在array下标1-8的位置。这个问题没答上来,面试官就作出了解答5、struct alignas,加上这个原结构体的size是多少6、介绍一下虚拟内存7、从虚拟地址到物理地址的具体寻址过程,比如cpu干了什么8、内存分页是为了解决什么问题9、介绍一下三次握手10、第三次握手发的ACK是为了回应什么?(第二次握手中的SYN)11、介绍一下四次挥手12、为什么第四次挥手要等待这么长的时间,这样设计是为了什么13、连接完成后,假如client突然掉了,且此时网络中没有任何数据收发,那么server可以通过协议栈的方法得知client挂了吗?这里不是很熟,我说感觉server应该不知道。然后问那么通过怎么样的方法可以让server知道,这时突然想到keep-alive就提了一下,面试官说他的查询间隔是多少,会不会有点长(这里具体的间隔是多少主播不懂)让我设计一个方法的话会怎么设计。我就联想到一秒有多少帧,可以就按这个频率发送检测,如果send()和recv()正常就代表连接正常14、如果server开启listen()状态后突然挂了,然后直接重启服务器代码的话会出现什么错误?怎么避免?15、介绍一下IO多路复用的select、poll、epoll。把之前看的东西都说了一下,然后也继续问多了几个问题,只记得一个这三个哪个能用在windows上16、问python的问题,问知道GIL吗?(我说不知道,对python的细节不是很熟,只是会用python做科研项目,面试官就没继续拷打了)17、时间到50min的时候,说出个代码题,说说思路就好。让实现Timer和TimerManager。后面查了一下才知道这个是比较高频的考点,但是完全没接触过(一开始还以为是实现一个计时的秒表),不过面试官会全程引导,我一开始说完思路后面试官会抛出一些问题指引我要使用什么数据结构、联想一下前面说的多路复用等等18、这里说了20多分钟,最后让我介绍一下之前实习的项目,讲了10min左右19、反问总体来说问的挺多的,有些问题我就说不熟悉然后猜了一下,面试官会问为什么这样猜,或者加以引导
查看21道真题和解析
点赞 评论 收藏
分享
评论
5
36
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务