《计算机研究与发展杂志》发表论文赏析

面向LoongArch边界检查访存指令的GCC优化

来源:计算机研究与发展杂志2025年第5期北京时间:

作者:舒燕君,郑翔宇,徐成华,黄沛,王永琪,周凡,张展,左德承,

摘要:为了减少内存安全检查的开销,LoongArch指令集架构引入了边界检查访存类指令.然而,作为一种新的内存访问指令,目前GCC(GNUcompilercollection)编译器不支持该类指令,LoongArch硬件能力不能得到充分利用.针对此LoongArch边界检查访存指令改进了GCC编译器,实现利用该类指令优化程序的内存安全检查.具体而言,完成了3个方面的工作:1)设计实现了针对边界检查访存指令的内建函数;2)改进GCCRTL(registertransferlanguage)阶段的优化器,使其能够识别无异常处理和带异常处理2种情况的边界检查访存语义,并自动优化;3)面向LoongArch边界检查访存指令触发的边界检查异常(boundcheckexception,BCE),设计了新的Linux内核异常信号SIGBCE和相应的运行时库glibc(GNUClibrary)的信号处理函数,实现了BCE处理.通过在GCC12.2.0和龙芯3C5000L服务器进行实验,验证了改进后的编译器不仅能正确使用新引入的边界检查访存指令,而且在某些安全函数中带来接近20%的性能提升.完善了LoongArch生态,推进了LoongArch指令集发展,对此类特定指令编译器优化工作有一定的借鉴意义.

关键词:编译器优化, LoongArch, GCC, 边界检查访存, 龙芯CPU, 异常处理, 内存安全,

填文献完整题目 获取完整文献

填写需求
联系方式
注:学术顾问会在1小时内联系您,请留意!