声明
严正声明:本站非期刊官网,非中介代理。
本站仅提供学术规范服务:快速预审、润色编辑服务、中英文查重、降重、去重服务、推荐合适的期刊投稿等学术规范服务。 如需提供学术规范服务请联系在线编辑。
国内刊号:11-1777/TP
国际刊号:1000-1239
发布日期:
作者:舒燕君,郑翔宇,徐成华,黄沛,王永琪,周凡,张展,左德承,
关键词:编译器优化, LoongArch, GCC, 边界检查访存, 龙芯CPU, 异常处理, 内存安全,
为了减少内存安全检查的开销,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指令集发展,对此类特定指令编译器优化工作有一定的借鉴意义.
来源:2025年第5期
《计算机研究与发展》期刊编辑部
严正声明:本站非期刊官网,非中介代理。
本站仅提供学术规范服务:快速预审、润色编辑服务、中英文查重、降重、去重服务、推荐合适的期刊投稿等学术规范服务。 如需提供学术规范服务请联系在线编辑。