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