vlambda博客
学习文章列表

你所不知道的编译器优化技术 | 鉴释刘新铭做客清华大学

12月16日,鉴释联合创始人兼首席架构师刘新铭先生受清华大学计算机系邀请,在大四的编译器课程上进行了分享。该课程重点研究数据流分析及其应用。刘新铭在分享中讲解了如何运用静态单一赋值形式(SSA) 进行代码静态分析,静态单一赋值形式是一种中间表现形式。


通过对比过去20年中CVE漏洞的数量变化,可以看到自2017年始,CVE漏洞出现大幅增长。面对这样严峻的挑战,鉴释开发了新一代基于编译器技术的分析工具。“传统SAST分析工具在漏洞检测方面仍存在很多常见问题,如分析目标代码时无法找到未知/潜在的漏洞,分析源代码时出现高误报率和错报率、无法处理复杂程序逻辑、不完全分析等,鉴释的解决方案则是构建一个基于open64编译器优化内存静态单赋值框架上的静态分析工具。”


据介绍,为实现精确(accuracy)、高效(efficiency)、可定制(customizability)的性能,鉴释采用了单一中间表示(single intermediate representation),统一资源模型(unified resource model),流敏感、上下文敏感和对象敏感(flow,context&object sensitivity),语义分析引擎(semantic analysis engine)等核心技术。


你所不知道的编译器优化技术 | 鉴释刘新铭做客清华大学

刘新铭先生在清华大学做现场分享


在问答环节,刘新铭先生与清华大学计算机专业的同学们进行了深入的交流,并鼓励同学们继续拓展具有前瞻性的编译器技术。刘新铭先生是国际上少数精通编译器技术的计算机科学家之一,他在计算机语言设计和高级编译器优化技术方面具有深入的实践经验。他曾担任惠普编译器及SDK技术实验室主任,领导基于惠普安腾处理器的编译器开发工作。


鉴释的创始团队在编译器技术领域具有深厚的技术积累。除了刘新铭先生,鉴释联合创始人兼CTO陈新中先生也是高性能计算和嵌入式系统中高级编译器和处理器优化方面的技术专家,是全球编译器优化技术领域的早期先驱者。他曾在英特尔-清华大学联合实验室担任主管,潜心研究前沿移动计算技术,并在英特尔实验室就职担任负责人,专注嵌入式系统方向的研究。


在12月14日举办的开源操作系统年度技术会议(OS2ATC)上,陈新中先生作为主题分享嘉宾,回顾了过程间分析(IPA)的应用历史。陈新中表示,跨函数分析(IPA)的第一代是链接时优化 (LTO),例如1987年的MIPS ;第二代是IPA+LTO,例如1997年的MipsPro/Open64编译器; 2000年的英特尔编译器、2002年的惠普编译器、2006年的GCC编译器;如今来到第三代,则是针对C、C++、Java、Python等跨语言跨函数的安全缺陷的深入分析。


陈新中先生在OS2ATC做现场分享


基于此,陈新中还带大家回顾了编译器的发展历程,并解释了为什么鉴释会选择采用Open64编译器技术。“x86 Open64编译器系统是一种高性能、生成高质量代码的生成工具,专为高性能并行计算设计。Open64中使用的多个组件为静态分析器提供了精确的分析架构,以在识别漏洞时获得更高的准确性。”