期刊文献+
共找到13篇文章
< 1 >
每页显示 20 50 100
GCC编译器中循环数组预取优化的实现及效果 被引量:5
1
作者 董钰山 李春江 徐颖 《计算机工程与应用》 CSCD 北大核心 2016年第6期19-25,共7页
数据预取技术是为缓解微处理器与DRAM之间速度差异而出现的隐藏访存延迟的方法。GCC作为广泛使用的开源编译器,在tree-ssa上对循环级数组实现了预取优化。在深入分析GCC4.9循环级数组预取的基本实现机制,以及剖析基于预取收益和分析时... 数据预取技术是为缓解微处理器与DRAM之间速度差异而出现的隐藏访存延迟的方法。GCC作为广泛使用的开源编译器,在tree-ssa上对循环级数组实现了预取优化。在深入分析GCC4.9循环级数组预取的基本实现机制,以及剖析基于预取收益和分析时间的三种不予预取的代价模型的基础上,得出影响循环数组预取效果的几个因素,并针对典型测试用例测试了GCC编译器循环数组预取的效果。此项工作对于改进和提高GCC现有循环级数组的预取优化有指导意义。 展开更多
关键词 gnu编译器集合(gcc) 数组预取 循环 代价模型
下载PDF
一个重建GCC抽象语法树的方法 被引量:7
2
作者 刘文伟 刘坚 《计算机工程与应用》 CSCD 北大核心 2004年第18期125-128,共4页
抽象语法树(AST)作为程序的一种中间表示形式,在程序分析等诸多领域有广泛的应用。传统的建立AST的方法是通过词法和语法分析的方法。该文提出了一种利用GCC前端结果建立AST的方法,这种方法将GCC编译源程序产生的AST文件,经过一定的格... 抽象语法树(AST)作为程序的一种中间表示形式,在程序分析等诸多领域有广泛的应用。传统的建立AST的方法是通过词法和语法分析的方法。该文提出了一种利用GCC前端结果建立AST的方法,这种方法将GCC编译源程序产生的AST文件,经过一定的格式转换变为XML文档,然后使用XML文档解析器读取该文档,重新建立AST。 展开更多
关键词 gnu编译器集合(gcc) 抽象语法树(AST) 可扩展标记语言(XML)
下载PDF
基于GCC的抽象语法树对C++源程序结构的分析 被引量:8
3
作者 王相懂 张毅坤 《计算机工程与应用》 CSCD 北大核心 2006年第23期97-99,105,共4页
源程序静态信息的提取是实现对源程序静态分析的基础,提取的静态信息的完整性、信息的规范性是静态分析的关键点。文章基于GCC编译器产生的AST(AbstractSyntaxTree)中间文件,给出了一种从AST文件中提取源程序的静态信息的方法,以XML(Ext... 源程序静态信息的提取是实现对源程序静态分析的基础,提取的静态信息的完整性、信息的规范性是静态分析的关键点。文章基于GCC编译器产生的AST(AbstractSyntaxTree)中间文件,给出了一种从AST文件中提取源程序的静态信息的方法,以XML(ExtensibleMarkupLanguage)标准格式输出,最后树形化地显示出源程序的结构关系。 展开更多
关键词 gcc AST XML 信息提取 静态分析
下载PDF
基于GCC的VLIW编译系统研究 被引量:1
4
作者 朱凯佳 尹宝林 《计算机工程与应用》 CSCD 北大核心 2001年第12期125-128,共4页
VLIW机器在单个机器周期中同时发射并执行多个的并行操作,从而获得较高的指令级并行度,这些操作之间的依赖分析和调度工作则被完全交给相应的编译器执行,因此VLIW的并行性能能否充分发挥取决于VLIW体系结构相关编译器的质量。GNU开发... VLIW机器在单个机器周期中同时发射并执行多个的并行操作,从而获得较高的指令级并行度,这些操作之间的依赖分析和调度工作则被完全交给相应的编译器执行,因此VLIW的并行性能能否充分发挥取决于VLIW体系结构相关编译器的质量。GNU开发的GCC是被最广泛使用的编译系统之一,它具有多语言、多平台支持的能力和开放的结构,能够运用各种成熟的常规编译优化技术生成高效的代码。文章分析了VLIW及GCC的结构特点,提出了一种基于GCC的VLIW编译系统设计方案,利用GCC进行RTL中间代码一级的体系结构无关优化和少量体系结构相关优化,在汇编代码一级针对VLIW结构进行体系结构相关的优化,从而充分利用GCC的成熟编译技术快速开发高效的VLIW多语言编译系统。 展开更多
关键词 VLIW gcc 编译系统 优化
下载PDF
GCC编译器中的堆栈保护技术概述 被引量:5
5
作者 曹耀彬 王亚刚 《信息技术》 2017年第7期23-25,共3页
以堆栈溢出为代表的缓冲区溢出已经成为最为普遍的安全漏洞之一。自从1988年缓冲区漏洞被发现以来,虽然经过几十年的努力,科研人员提出了各种防护方法,但是在操作系统或者软件当中总有新的溢出漏洞或者其变种被发现。为了尽可能避免堆... 以堆栈溢出为代表的缓冲区溢出已经成为最为普遍的安全漏洞之一。自从1988年缓冲区漏洞被发现以来,虽然经过几十年的努力,科研人员提出了各种防护方法,但是在操作系统或者软件当中总有新的溢出漏洞或者其变种被发现。为了尽可能避免堆栈溢出漏洞被攻击者利用,一直以来,众多的编译器工作者在GCC编译器中尝试了多种方法来保护内存中的堆栈区域。 展开更多
关键词 gnu编译器集合(gcc) 堆栈 缓冲区溢出 攻击 保护技术
下载PDF
简化GNU编译器套件抽象语法树的算法研究 被引量:2
6
作者 高峰 吴海涛 《上海师范大学学报(自然科学版)》 2018年第4期479-482,共4页
提出了一种消除抽象语法树文本中冗余的方法,借助Knuth-Morris-Pratt(KMP)算法,设计核心算法,对抽象语法树进行简化,并选出几个经典的代码片段进行实验,对算法的性能做了相应验证.实验结果表明,算法在消除冗余方面的简化率达到90%以上.
关键词 抽象语法树 gnu编译器套件(gcc) Knuth-Morris-Pratt(KMP)算法 重复代码
下载PDF
GCC非满载SLP向量化
7
作者 刘浩浩 韩林 崔平非 《计算机系统应用》 2022年第9期265-271,共7页
随着向量长度的不断增长, SIMD扩展部件得以处理更为庞大的数据级并行,但程序的并行阈值也随之提高.对于现有的自动向量化编译器,如果在分析阶段不能从串行代码中发掘出足够的数据级并行以完全填充向量寄存器,则不会进入相应的向量代码... 随着向量长度的不断增长, SIMD扩展部件得以处理更为庞大的数据级并行,但程序的并行阈值也随之提高.对于现有的自动向量化编译器,如果在分析阶段不能从串行代码中发掘出足够的数据级并行以完全填充向量寄存器,则不会进入相应的向量代码变换阶段,从而无法向量化.较长的向量长度使得某些并行性不足的程序失去了向量化的机会,造成了性能下降.为了更加充分的利用SIMD部件,介绍了一种面向基本块的非满载向量化方法ISLP.基于开源GCC编译器,从并行性检测、代码生成和代价模型3个方面详细阐述了ISLP的设计与实现.在标准测试集上的实验结果表明,该方法可以有效地对超字级并行性不足的程序进行向量化处理,提高程序执行效率.选取的测试用例在向量化后的平均加速比达到1.14,性能较常规SLP方法提升11.8%. 展开更多
关键词 gcc SIMD扩展 非满载向量化 超字级并行性 代码生成 SLP
下载PDF
基于申威GCC编译器的间接预取算法
8
作者 余龙龙 韩林 《计算机系统应用》 2022年第8期203-211,共9页
对间接存储器的访问延迟往往会影响应用程序的执行性能,一种有效的解决方案是使用预取技术.国产申威平台中支持常规访问模式的软件预取和硬件预取机制,但是其GCC编译器中缺少为间接存储器访问模式自动插入预取的方法.为了解决这个问题,... 对间接存储器的访问延迟往往会影响应用程序的执行性能,一种有效的解决方案是使用预取技术.国产申威平台中支持常规访问模式的软件预取和硬件预取机制,但是其GCC编译器中缺少为间接存储器访问模式自动插入预取的方法.为了解决这个问题,基于申威GCC开发了一个完整间接预取优化遍,它利用深度优先搜索算法查找引用循环归纳变量的间接内存引用并为之生成合适的软件预取.在一组内存受限的基准测试中,自动预取遍对SW1621处理器的平均加速比达到1.16倍. 展开更多
关键词 存储器访问 申威处理器 gcc 软件预取 不规则访存
下载PDF
多语言源程序函数调用关系图的生成方法 被引量:3
9
作者 王亚刚 徐成华 《西安邮电大学学报》 2013年第6期75-79,共5页
为了实现源码分析工具对多语言的支持,克服目前构建分析工具重用率低和实现复杂的弊端,提出一种多语言源程序函数调用关系图的生成方法。利用GNU编译器集合(GCC)的插件在GCC中间表示层Call-graph上提取函数调用关系,并将调用关系转换成... 为了实现源码分析工具对多语言的支持,克服目前构建分析工具重用率低和实现复杂的弊端,提出一种多语言源程序函数调用关系图的生成方法。利用GNU编译器集合(GCC)的插件在GCC中间表示层Call-graph上提取函数调用关系,并将调用关系转换成图形描述语言,然后利用Graphviz画出函数调用关系图。所提方法与前端语言无关,可支持多种语言源程序函数关系的提取,且无需改动GCC编译器内部结构。实验结果表明,同Egypt方法相比,新方法在处理时间和存储代价方面都有明显的降低。 展开更多
关键词 编译器 源码分析 函数调用 插件
下载PDF
一种媒体处理器的高级语言及其编译系统
10
作者 张丹 赵银亮 +4 位作者 王海 李增智 宋红 曹德宏 刘波 《微电子学与计算机》 CSCD 北大核心 2004年第12期20-23,27,共5页
媒体处理器通常采用汇编语言编程以满足代码大小、性能和能耗方面的要求。本文提出了媒体处理器高级语言的设计原则,并针对Leadtek公司的媒体处理器设计,实现了VP6-C语言及其编译系统。VP6-C语言用于编写多媒体处理中的核心程序,为程序... 媒体处理器通常采用汇编语言编程以满足代码大小、性能和能耗方面的要求。本文提出了媒体处理器高级语言的设计原则,并针对Leadtek公司的媒体处理器设计,实现了VP6-C语言及其编译系统。VP6-C语言用于编写多媒体处理中的核心程序,为程序员提供一种C风格的、自然的编程方式。试验结果表明编译生成的目标代码有较高的质量。 展开更多
关键词 VP6-C VLIW SIMD gcc 媒体处理器
下载PDF
动态二进制翻译的库函数包装自动化 被引量:1
11
作者 梁英超 尚云海 李春强 《计算机应用与软件》 CSCD 2015年第6期14-16,共3页
库函数包装是在动态二进制翻译过程中将源二进制程序的库函数调用直接转嫁到目标机上的库函数调用,以此提高动态二进制翻译系统的性能。针对目前动主流的库函数手动包装技术,提出一种基于 GCC 的动态二进制翻译中库函数的自动包装技... 库函数包装是在动态二进制翻译过程中将源二进制程序的库函数调用直接转嫁到目标机上的库函数调用,以此提高动态二进制翻译系统的性能。针对目前动主流的库函数手动包装技术,提出一种基于 GCC 的动态二进制翻译中库函数的自动包装技术,无需对库函数分别进行人工包装,节省了大量的工作,同时也降低了包装过程中出错的可能性。实验结果表明,通过库函数自动包装技术,动态二进制翻译器 qemu 的性能有了3%~5%的提升。 展开更多
关键词 动态二进制翻译 gcc 库函数 包装自动化 QEMU
下载PDF
基于值剖视的编译优化
12
作者 孔凡金 黄春 《计算机工程》 CAS CSCD 北大核心 2011年第6期58-60,64,共4页
介绍在GCC编译器中利用值剖视识别收集变量的不变特征信息并指导代码优化工作的方法。NPB基准测试程序的测试结果表明,GCC基于值剖视的优化引入的开销小,与边剖视一起使用时能获得较好的优化效果,在不同程序间显示出一定的优化针对性和... 介绍在GCC编译器中利用值剖视识别收集变量的不变特征信息并指导代码优化工作的方法。NPB基准测试程序的测试结果表明,GCC基于值剖视的优化引入的开销小,与边剖视一起使用时能获得较好的优化效果,在不同程序间显示出一定的优化针对性和局限性,值剖视信息的类型与数量、优化种类等存在较大的改进空间。 展开更多
关键词 基于剖视的优化 值剖视 gcc编译器
下载PDF
编译执行在可编程逻辑控制器上的实现 被引量:1
13
作者 赵涌 赵雪飞 +1 位作者 张红芳 刘成俊 《自动化与仪表》 北大核心 2011年第12期52-55,共4页
传统的可编程逻辑控制器(PLC)采用解释执行方式执行梯形图,执行效率低下。对此该文提出以编译执行方式代替解释执行方式来提高执行效率。但通常的编译执行方式实现难度巨大,因此本文提出利用GNU编译器集(GCC)实现编译执行的解决方法。... 传统的可编程逻辑控制器(PLC)采用解释执行方式执行梯形图,执行效率低下。对此该文提出以编译执行方式代替解释执行方式来提高执行效率。但通常的编译执行方式实现难度巨大,因此本文提出利用GNU编译器集(GCC)实现编译执行的解决方法。即先将梯形图转换为C语言程序,然后通过GCC的开放平台得到编译执行所需的各工具,并运用这些工具编译C语言程序从而实现PLC的编译执行方式。测试表明编译执行的PLC执行效率大幅提升。 展开更多
关键词 可编程逻辑控制器 编译执行 gnu编译器集 执行效率
下载PDF
上一页 1 下一页 到第
使用帮助 返回顶部