期刊文献+
共找到49篇文章
< 1 2 3 >
每页显示 20 50 100
面向国产高性能加速器的LLVM编译器设计及优化
1
作者 宋强 唐俊龙 +4 位作者 陈照云 时洋 谭期轩 肖紫阳 邹望辉 《计算机工程》 CAS CSCD 北大核心 2024年第4期321-331,共11页
国防科技大学自主研制的高性能加速器采用中央处理器(CPU)+通用数字信号处理器(GPDSP)的片上异构融合架构,使用超长指令集(VLIW)+单指令多数据流(SIMD)的向量化结构的GPDSP是峰值性能主要支撑的加速核。主流编译器在密集的数据计算指令... 国防科技大学自主研制的高性能加速器采用中央处理器(CPU)+通用数字信号处理器(GPDSP)的片上异构融合架构,使用超长指令集(VLIW)+单指令多数据流(SIMD)的向量化结构的GPDSP是峰值性能主要支撑的加速核。主流编译器在密集的数据计算指令排布、为指令静态分配硬件执行单元、GPDSP特有的向量指令等方面不能很好地支持高性能加速器。基于低级虚拟器(LLVM)编译框架,在前寄存器分配调度阶段,结合峰值寄存器压力感知方法(PERP)、蚁群优化(ACO)算法与GPDSP结构特点,优化代价模型,设计支持寄存器压力感知的指令调度模块;在后寄存器分配阶段提出支持静态功能单元分配的指令调度策略,通过冲突检测机制保证功能单元分配的正确性,为指令并行执行提供软件基础;在后端封装一系列丰富且规整的向量指令接口,实现对GPDSP向量指令的支持。实验结果表明,所提出的LLVM编译架构优化方法从功能和性能上实现了对GPDSP的良好支撑,GCC testsuite测试整体性能平均加速比为4.539,SPEC CPU 2017浮点测试整体性能平均加速比为4.49,SPEC CPU 2017整型测试整体性能平均加速比为3.24,使用向量接口的向量程序实现了平均97.1%的性能提升率。 展开更多
关键词 通用数字信号处理器 低级虚拟器 编译器 指令调度 向量指令接口
下载PDF
基于LLVM Pass的复杂嵌套循环自动并行化框架 被引量:1
2
作者 马春燕 吕炳旭 +1 位作者 叶许姣 张雨 《软件学报》 EI CSCD 北大核心 2023年第7期3022-3042,共21页
随着多核处理器的普及应用,针对嵌入式遗留系统中串行代码的自动并行化方法是研究热点.其中,针对具有非完美嵌套结构、非仿射依赖关系特征的复杂嵌套循环的自动并行化方法存在技术挑战.提出了一种基于LLVMPass的复杂嵌套循环的自动并行... 随着多核处理器的普及应用,针对嵌入式遗留系统中串行代码的自动并行化方法是研究热点.其中,针对具有非完美嵌套结构、非仿射依赖关系特征的复杂嵌套循环的自动并行化方法存在技术挑战.提出了一种基于LLVMPass的复杂嵌套循环的自动并行化框架(CNLPF).首先,提出了一种复杂嵌套循环的表示模型,即循环结构树,并将嵌套循环的正则区域自动转换为循环结构树表示;然后,对循环结构树进行数据依赖分析,构建循环内和循环间的依赖关系;最后,基于OpenMP共享内存的编程模型生成并行的循环程序.针对SPEC2006数据集中包含近500个复杂嵌套循环的6个程序案例,分别对其进行复杂嵌套循环占比统计和并行性能加速测试.结果表明,提出的自动并行化框架可以处理LLVMPolly无法优化的复杂嵌套循环,增强了LLVM的并行编译优化能力,且该方法结合Polly的组合优化,比单独采用Polly优化的加速效果提升了9%-43%. 展开更多
关键词 复杂嵌套循环 自动并行化 llvm Pass 依赖分析
下载PDF
频繁序列挖掘帮助的LLVM编译时能耗优化方法
3
作者 阳松苡 倪友聪 +2 位作者 杜欣 贾建华 肖如良 《小型微型计算机系统》 CSCD 北大核心 2023年第12期2832-2843,共12页
面向最小化能耗的LLVM编译时优化研究工作还较为稀缺,而现有的设计空间搜索优化方法仍缺乏有效捕获和使用选项交互信息的手段,还存在解质量不高和收敛速度不快的问题.针对上述问题,文中提出一种频繁序列挖掘帮助的LLVM编译时能耗优化方... 面向最小化能耗的LLVM编译时优化研究工作还较为稀缺,而现有的设计空间搜索优化方法仍缺乏有效捕获和使用选项交互信息的手段,还存在解质量不高和收敛速度不快的问题.针对上述问题,文中提出一种频繁序列挖掘帮助的LLVM编译时能耗优化方法.该方法运用带能耗改进标注的频繁选项序列FOSE表征反复出现在优势解中的选项子序列及其功效,进一步借助不同序列长度的FOSE捕获任意多个选项之间交互并利用前缀树和后缀树进行表示;在此基础上,针对迭代寻优过程设计了一种FOSE挖掘算法,从而形成可为新解生成提供有用、全面、可高效使用和时效好的选项交互信息挖掘方法;最后基于FOSE的前后缀树定义了新解生成机制并给出了新解生成的规则和过程,进而提出一种迭代优化算法FHIA-FSM.与当前最快可获取较好质量解的Georgiou算法以及公认在足够长演化时间后可得到高质量解的GA算法在4个不同领域的7个典型案例下的实验对比显示:在基准停机时间下本文FHIA-FSM较Georgiou和GA的解质量平均相对改进最好可达15.52%和101.81%;在达到基准解质量的收敛速度上,FHIA-FSM较Georgiou和GA平均相对改进最好可达18.00%和25.25%. 展开更多
关键词 llvm 编译优化 迭代编译 能耗优化 频繁序列挖掘
下载PDF
基于Clang/LLVM构建编译实践全局观
4
作者 吴坎 王永康 +1 位作者 刘皓铧 张献伟 《计算机教育》 2023年第3期70-75,共6页
针对目前编译实验教学过程中内容安排不够合理、与实际应用契合不够紧密的问题,提出基于Clang/LLVM面向业界实际的实验教学模式,通过分析目前课程现状及目标,阐述实验方案具体实施方法,最后通过对实验结果的教学反馈,说明该实验设计更... 针对目前编译实验教学过程中内容安排不够合理、与实际应用契合不够紧密的问题,提出基于Clang/LLVM面向业界实际的实验教学模式,通过分析目前课程现状及目标,阐述实验方案具体实施方法,最后通过对实验结果的教学反馈,说明该实验设计更好地平衡了基础性、实践性和综合性,使得学生可以通过实际编译框架,更好地理解编译机制,掌握利用编译解决实际问题的能力,构建起编译实践的全局观。 展开更多
关键词 编译原理 系统实践 实验教学 Clang llvm
下载PDF
基于LLVM架构的NiosⅡ后端快速移植 被引量:3
5
作者 任胜兵 卢念 +1 位作者 张万利 潘震宇 《计算机应用与软件》 CSCD 2011年第12期22-25,50,共5页
编译器后端移植是目前嵌入式系统研究的重要领域,如何快速实现编译器后端移植仍然是嵌入式系统研究的热点。采用新的编译器架构LLVM,移植NiosⅡ处理器来分析LLVM快速后端移植架构。使用LLVM后端移植架构的TableGen描述NiosⅡ体系结构例... 编译器后端移植是目前嵌入式系统研究的重要领域,如何快速实现编译器后端移植仍然是嵌入式系统研究的热点。采用新的编译器架构LLVM,移植NiosⅡ处理器来分析LLVM快速后端移植架构。使用LLVM后端移植架构的TableGen描述NiosⅡ体系结构例如指令、寄存器等,使用完备LLVM C++函数库实现复杂或特殊的操作。TableGen与C++函数库互相配合,最终实现LLVM架构对NiosⅡ后端的支持。实验结果表明与GCC编译器后端移植方法相比,基于LLVM架构的编译器后端移植方法的工作量减少了64.2%~83.9%,大大节省后端移植时间。 展开更多
关键词 编译器 后端快速移植 低级虚拟机(llvm) NiosⅡ处理器
下载PDF
基于LLVM的编译实验课程设计 被引量:3
6
作者 李清安 袁梦霆 +2 位作者 王汉飞 吴黎兵 何炎祥 《计算机教育》 2019年第2期11-14,共4页
针对新工科建设形势下,原有编译实验课程面临广度与深度不足、管理方式有待改进、个性化及技术前沿性不足等方面的挑战,分析国外一流高校编译实验课程设计的特点,提出基于LLVM设计编译实验课程的思路,以应对前述挑战。
关键词 编译 实验课程 llvm
下载PDF
基于Clang+LLVM架构的编译原理课程教学探索 被引量:3
7
作者 刘兵 张辰 +1 位作者 谢红侠 刘明明 《计算机教育》 2020年第1期42-45,49,共5页
根据工程教育认证标准的要求,分析编译原理教学现状,提出一种基于开源编译器的课程教学模式,介绍面向工程教育认证的编译原理课程体系建设过程,并给出相应的面向工程教育认证的评价机制。
关键词 编译原理 工程教育认证 Clang+llvm架构 教学模式
下载PDF
基于LLVM的RISC-V自定义扩展指令支持方法 被引量:3
8
作者 王鹏 陈影 邢明杰 《计算机系统应用》 2021年第11期20-26,共7页
RISC-V指令集架构具有模块化、可扩展等特性.基于RISC-V架构的处理器,可以在整数指令集的基础之上,有选择地支持官方标准指令集扩展,以及非标准的用户自定义指令集扩展.这也意味着,对于每个新增的自定义扩展指令集,用户都需要自己在编... RISC-V指令集架构具有模块化、可扩展等特性.基于RISC-V架构的处理器,可以在整数指令集的基础之上,有选择地支持官方标准指令集扩展,以及非标准的用户自定义指令集扩展.这也意味着,对于每个新增的自定义扩展指令集,用户都需要自己在编译工具链中实现相应支持.通过分析LLVM编译框架,研究RISC-V自定义扩展指令支持的通用方法,并以玄铁C910自定义指令集为例进行实现和验证.为基于LLVM基础架构的RISC-V自定义指令集扩展研究与实现提供借鉴. 展开更多
关键词 llvm RISC-V 玄铁C910
下载PDF
计算机综合实验C语言编译器设计探讨——基于LLVM架构的MIPS后端移植分析 被引量:1
9
作者 王力生 王田 《计算机教育》 2014年第1期72-75,共4页
针对如今计算机专业实验教学过程中存在的验证性实验为主,实验内容以单点技术为主,效果比较差等问题,提出一种以MIPS I指令集子集处理器为目标机的C语言编译器的实现方案,作为实验改革方案的编译原理实验部分。该方案基于LLVM开源项目,... 针对如今计算机专业实验教学过程中存在的验证性实验为主,实验内容以单点技术为主,效果比较差等问题,提出一种以MIPS I指令集子集处理器为目标机的C语言编译器的实现方案,作为实验改革方案的编译原理实验部分。该方案基于LLVM开源项目,与传统的编译原理实验方案相比,使用现代化的编译器构造工具,其内容更加新颖,实用性更强。 展开更多
关键词 教学改革 编译器 MIPS llvm
下载PDF
基于LLVM的多目标高性能动态二进制翻译框架 被引量:3
10
作者 石磊 田娜 康烁 《航空科学技术》 2020年第8期73-78,共6页
动态二进制翻译技术是构造高性能异构虚拟机的关键技术,而代码翻译的质量则是动态二进制翻译性能的关键。本文实现了一种基于LLVM动态二进制翻译框架,利用LLVM优化技术以及多目标编译的特点,实现了可以针对多个目标体系结构的高性能动... 动态二进制翻译技术是构造高性能异构虚拟机的关键技术,而代码翻译的质量则是动态二进制翻译性能的关键。本文实现了一种基于LLVM动态二进制翻译框架,利用LLVM优化技术以及多目标编译的特点,实现了可以针对多个目标体系结构的高性能动态二进制翻译。基于开源Skyeye实现了这种翻译框架,并在两种目标体系结构ARM和PowerPC上验证了框架的可移植性和运行效率,与QEMU在ARM目标平台上做了性能对比,结果表明该模拟器比Qemu性能平均快10%以上。 展开更多
关键词 动态二进制翻译 异构虚拟机 翻译性能 llvm 多目标编译
下载PDF
基于LLVM编译器的节点融合优化方法 被引量:3
11
作者 胡浩 沈莉 +1 位作者 周清雷 巩令钦 《计算机科学》 CSCD 北大核心 2020年第S01期561-566,595,共7页
LLVM是以C++编写的架构编译器的框架系统,支持多后端和交叉编译,用于优化程序的编译时间、链接时间、运行时间和空闲时间。节点融合是一种简单有效的优化方法,其基本思想为将多个节点优化为一个高效的融合节点,减少诸如指令、寄存器、... LLVM是以C++编写的架构编译器的框架系统,支持多后端和交叉编译,用于优化程序的编译时间、链接时间、运行时间和空闲时间。节点融合是一种简单有效的优化方法,其基本思想为将多个节点优化为一个高效的融合节点,减少诸如指令、寄存器、时钟周期和访存等开销,以达到减少程序运行时间,提升访存效率等目的。为了提升LLVM编译器的性能,文中在LLVM编译流程的中间表示阶段和DAG合并阶段、指令选择阶段提出了节点融合优化方法。在国产平台申威处理器下,以CLANG和FLANG为编译器前端,LLVM为编译器后端,基于SPEC CPU2006测试集进行了评估,实验结果表明,节点融合优化有利于提高编译器性能和减少程序运行时间,优化后最大加速比为1.59,平均加速比为1.13。 展开更多
关键词 llvm 节点融合 中间表示 DAG合并 指令选择 国产平台
下载PDF
基于LLVM架构的ARM后端移植 被引量:5
12
作者 董峰 付宇卓 《信息技术》 2007年第7期38-41,共4页
LLVM架构是美国伊利诺斯大学开发的开放源代码编译器架构。介绍了LLVM架构的基本构成,其组成部分的具体功能,详细分析了该架构的后端移植机制,包括寄存器描述、指令集描述、汇编输出等移植机制的各个方面,然后给出实现ARM后端移植的具... LLVM架构是美国伊利诺斯大学开发的开放源代码编译器架构。介绍了LLVM架构的基本构成,其组成部分的具体功能,详细分析了该架构的后端移植机制,包括寄存器描述、指令集描述、汇编输出等移植机制的各个方面,然后给出实现ARM后端移植的具体工作细节,最终实现了LLVM架构对ARM处理器后端的支持。 展开更多
关键词 llvm ARM 编译器 后端移植
下载PDF
基于LLVM的编译锁机制技术研究与实现 被引量:1
13
作者 巩令钦 沈莉 +1 位作者 周清雷 胡浩 《计算机应用与软件》 北大核心 2021年第11期11-17,97,共8页
基于申威处理器,在底层虚拟机(Low Level Virtual Machine, LLVM)编译器后端对锁机制提供编译支持,保证多线程环境下,对共享内存操作的原子性。锁机制研究与实现主要包括实现原子指令语义映射策略保证原子操作的原子性并在锁机制算法中... 基于申威处理器,在底层虚拟机(Low Level Virtual Machine, LLVM)编译器后端对锁机制提供编译支持,保证多线程环境下,对共享内存操作的原子性。锁机制研究与实现主要包括实现原子指令语义映射策略保证原子操作的原子性并在锁机制算法中加入对8位和16位数据类型的数据处理,实现锁机制在申威处理器上对小粒度数据类型的支持。基于并行计算机基准测试集NPB进行测试,在多线程环境下所有程序皆自校验通过。在16个线程下,Fortran语言程序平均加速比为11.91,最大加速比为15.73,C语言程序平均加速比为8.08,最大加速比为13.32。 展开更多
关键词 llvm 锁机制 多线程 原子性 申威处理器
下载PDF
基于LLVM的指令并行调度与实现 被引量:1
14
作者 屈秋雯 梁利平 《微电子学与计算机》 CSCD 北大核心 2013年第11期60-63,共4页
IME-Diamond处理器是一款VLIW结构的多核处理器,具有多个通道,可并行执行多条指令。为了充分利用多通道并行执行的特性,IME-Diamond处理器需要编译器提供并行度信息来实现指令并行。开源的LLVM 编译器架构为编译器的移植和优化提供... IME-Diamond处理器是一款VLIW结构的多核处理器,具有多个通道,可并行执行多条指令。为了充分利用多通道并行执行的特性,IME-Diamond处理器需要编译器提供并行度信息来实现指令并行。开源的LLVM 编译器架构为编译器的移植和优化提供了一个便利的平台。在此平台上可以配置和插入相应的Pass模块对指令进行分析与静态调度,并根据分析结果插入Paralink指令来显式的指示出指令的并行度,指导硬件并行发射。实验结果表明,通过并行调度后,生成代码的性能提升了16%~30%。 展开更多
关键词 llvm 编译器 指令并行 指令调度
下载PDF
基于LLVM的Android Native文件保护方法 被引量:2
15
作者 张一峰 方勇 《通信技术》 2017年第3期533-538,共6页
针对Android平台应用的加固保护方案层出不穷,攻防对抗也在不断升级。目前,Android平台应用由于效率、安全等方面的考虑,关键代码通常会使用C/C++语言开发,这样关键逻辑就存于动态链接库中。但是,被大量使用的加固方案均为保护DEX文件... 针对Android平台应用的加固保护方案层出不穷,攻防对抗也在不断升级。目前,Android平台应用由于效率、安全等方面的考虑,关键代码通常会使用C/C++语言开发,这样关键逻辑就存于动态链接库中。但是,被大量使用的加固方案均为保护DEX文件免遭攻击者逆向分析,缺乏针对Native层动态链接库文件的保护。基于当前的安全现状,提出一种基于LLVM编译器的动态链接库加固方法,以实现反调试、代码混淆替换、插入无效控制流等保护措施,极大地提高了动态链接库抵抗逆向分析的能力。 展开更多
关键词 llvm ANDROID 动态链接库 Native文件保护
下载PDF
基于LLVM的RISC-V向量扩展栈帧布局优化 被引量:1
16
作者 陆旭凡 胡海根 邢明杰 《计算机系统应用》 2021年第11期27-32,共6页
为了能够生成正确、优化的机器指令代码,需要在编译器后端代码的生成阶段,设计和使用合适的程序栈帧布局.由于RISC-V向量扩展架构具有可伸缩性、其向量寄存器的长度在编译时不可知,传统的栈帧布局无法适用.之前LLVM中针对向量扩展实现... 为了能够生成正确、优化的机器指令代码,需要在编译器后端代码的生成阶段,设计和使用合适的程序栈帧布局.由于RISC-V向量扩展架构具有可伸缩性、其向量寄存器的长度在编译时不可知,传统的栈帧布局无法适用.之前LLVM中针对向量扩展实现的栈帧布局虽然能够生成正确的机器指令,但存在访存指令较多,栈帧空间较大,以及预留寄存器较多等问题.我们对原有实现所存在的问题进行分析,在此基础上提出了新的布局方式以及向量对象地址计算方式,并通过巴塞罗那超算中心开发的测试集进行验证.实验表明新的栈帧布局能够有效减少访存指令数和栈空间大小. 展开更多
关键词 llvm RISC-V 向量扩展 栈帧布局
下载PDF
基于LLVM的程序关注点影响分析 被引量:1
17
作者 陈泓旭 《计算机与现代化》 2014年第4期203-207,共5页
在LLVM中间形式上,得到影响某特定程序关注点的程序片段,削减不相关部分。基于Andersen指向分析算法构建准确的调用图,得到程序执行中可能到达给定程序节点的基本块;根据指向分析、调用图及调用点处的修改信息,得到了影响关注点的程序... 在LLVM中间形式上,得到影响某特定程序关注点的程序片段,削减不相关部分。基于Andersen指向分析算法构建准确的调用图,得到程序执行中可能到达给定程序节点的基本块;根据指向分析、调用图及调用点处的修改信息,得到了影响关注点的程序片段。实验结果表明,本方法可高效计算出影响程序关注点的程序子集并得到正确的削减片段。 展开更多
关键词 llvm中间形式 影响分析 可达性分析 程序切片
下载PDF
面向国产平台的LLVM自动向量化移植与优化 被引量:2
18
作者 李嘉楠 韩林 柴赟达 《计算机工程》 CAS CSCD 北大核心 2022年第1期142-148,共7页
作为SIMD扩展部件向量化的重要手段,自动向量化已在LLVM编译器中得到实现,但向量长度以及指令集功能的差异,导致国产平台在自动向量化过程中容易错失向量化机会以及向量化后产生倒加速的问题。为使SIMD得到充分应用,结合国产平台的指令... 作为SIMD扩展部件向量化的重要手段,自动向量化已在LLVM编译器中得到实现,但向量长度以及指令集功能的差异,导致国产平台在自动向量化过程中容易错失向量化机会以及向量化后产生倒加速的问题。为使SIMD得到充分应用,结合国产平台的指令集特征完善指令代价信息以提高收益分析精准度,使其在自动向量化后生成后端支持且简洁高效的向量指令。在此基础上,提出一种改进的控制流向量化方法,通过添加指令代价信息提高自动向量化的适配能力,从而形成一套面向国产平台的LLVM自动向量化系统。实验结果表明,相比自动向量化移植前,通过该方法进行移植优化后,SPEC测试的整体性能提升10.8%,TSVC测试集中的加速比提升16%,精准代价指导下的加速比提升42%,控制流向量化下的加速比提升51%。 展开更多
关键词 自动向量化 向量化收益 移植 llvm编译器 国产平台
下载PDF
基于LLVM的C/C++隐式类型转换安全性检测 被引量:1
19
作者 万明 刘嘉华 +1 位作者 鄂龙慧 朱江 《计算机应用与软件》 北大核心 2022年第4期21-26,45,共7页
带有系统底层特性的高级语言(C、C++等)通常采用的是弱类型系统,允许不同类型变量之间的混合运算。因此,在涉及到赋值等操作时,如果源变量和目的变量类型不一致,则需要进行类型转换,而转换过程稍有疏忽就会引入安全性问题。现有的检测... 带有系统底层特性的高级语言(C、C++等)通常采用的是弱类型系统,允许不同类型变量之间的混合运算。因此,在涉及到赋值等操作时,如果源变量和目的变量类型不一致,则需要进行类型转换,而转换过程稍有疏忽就会引入安全性问题。现有的检测技术大多在程序运行时进行类型转换问题的检测,产生较大额外开销的同时,也会影响程序的执行速度。基于LLVM编译器提出一种针对C/C++隐式类型转换的安全性检测方法。该方法作用于LLVM中间代码,筛选出含有变量声明和引用的语句;对于声明变量的语句,提取其类型信息并按相应的数据结构存储;对于引用变量的语句,匹配定义的类型转换的不安全操作集和转换模式,以检测其中的类型转换操作是否安全。实验结果表明,该方法能够在编译阶段有效地检测出存在安全隐患的类型转换操作。 展开更多
关键词 类型转换 静态检测 安全性 llvm
下载PDF
基于LLVM的栈数据保护
20
作者 沈达宇 黄皓 《软件导刊》 2012年第8期129-132,共4页
传统的栈保护都是对栈中的返回地址等控制数据进行保护,并没有对栈中的数据进行保护。提出了对栈数据保护机制的基本思想是对内存中的数据进行随机化。通过对程序的修改,插装新的指令,使得保存到内存上的数据随机化。这种方式能有效地... 传统的栈保护都是对栈中的返回地址等控制数据进行保护,并没有对栈中的数据进行保护。提出了对栈数据保护机制的基本思想是对内存中的数据进行随机化。通过对程序的修改,插装新的指令,使得保存到内存上的数据随机化。这种方式能有效地阻止非控制数据的破坏,甚至起到一定效果的内存数据隐私保护。基于开源的LLVM编译器系统平台,实现了一个编译优化Pass模块,在获取源文件时经过该Pass模块优化后生成的可执行程序能够免受非控制数据攻击的危害。 展开更多
关键词 软件安全 非控制数据 llvm Pass模块 数据随机化
下载PDF
上一页 1 2 3 下一页 到第
使用帮助 返回顶部