首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 62 毫秒
1.
处理机的指令级并行能力只有通过编译器才得以发挥。代码生成是编译器后端中直接针对目标处理机的优化阶段的集合,因而它是提高目标处理机指令级并行的重要组成部分。ORC(Open Research CompiLer)是一款针对IA-64体系结构的开放源码编译器,它具有丰富的优化阶段和良好的性能。本文介绍了ORC的代码生成的关键技术,这些技术包括区域构造、谓词相关优化、全局指今调度、参数化的机器描述以及微调度。实测结果表明,这些技术取得了显著的优化结果,ORC相对于Pro64能取得平均23%的加速比。  相似文献   

2.
面向媒体处理器可重定目标编译器的代码生成   总被引:1,自引:1,他引:0       下载免费PDF全文
琚小明  张召  史册 《计算机工程》2009,35(11):13-15,1
在可重定目标编译器的设计与实现中,RTL中间表示具有内部的树结构表示形式和外部的正文表示形式的特性,使RTL适合作为可重定目标编译器中的中间表示。利用RTL的这种双重特性,提出适用于可重定目标编译器的代码生成技术,通过树模式匹配的方法建立中间表示与机器描述中指令模板的映射关系,实现汇编代码的输出。通过MD32Builder集成环境的构建,证明该技术简单易行。  相似文献   

3.
该文在对几种可重定向编译器进行分析的基础上,提出了一种基于类库的可重定向编译器后端设计技术。该技术通过恰当定义机器描述与代码生成之间的接口,抽象不同硬件平台共有的操作与功能,隔离中间表示和不同硬件平台汇编语言代码的差异。根据不同硬件平台特点,利用面向对象技术实现接口,构成重定向支持类库。代码生成器通过对接口的调用,将中间表示转化为相应平台的汇编语言,完成编译器后端的重定向工作。  相似文献   

4.
以简单但具有代表性的配对寄存器为例,分析了编译器中间表示设计中使用配对信息所需包含的要点。结合编译器中数据流分析,指令调度和寄存器分配的需求,进一步提出了一种基于链表结构的中间表示及构造算法。所提出的表示方法同时考虑到编译器的可移植性,以便于在不同编译器中实现。  相似文献   

5.
为验证CoSy编译器的安全性,并确定不安全因素大致出现的位置,提出一种通过控制流图的同构对比判定CoSy编译器是否安全的方法。该方法生成源程序的控制流图以及CoSy中级中间表示的控制流图后,生成由CoSy编译器产生的目标汇编码的控制流图,根据控制流图同构算法,判断控制流图是否同构,由此确定CoSy编译器的不安全因素发生在编译器的前端还是后端。实验结果表明,该方法能有效验证编译器的安全性。  相似文献   

6.
编译器后端是针对特定目标机器的编译器实现,不同的指令集体系结构需要实现不同的编译器后端。面向飞腾处理器中向量处理单元(FT-VPU)的体系结构和指令集,基于GCC编译器实现了编译器后端,使GCC能够正确编译面向FT-VPU的SIMD指令的内嵌函数。从四路双精度SIMD指令的机器描述出发,总结了在GCC后端所做的实现工作。其对基于GCC编译器实现面向特定目标机器的编译器后端有较大的参考价值。  相似文献   

7.
在二进制翻译中引入TCG中间表示技术可以实现多目标平台之间的程序移植,同时可以更加方便地引入新型平台,解决新平台对主流平台的兼容性问题。然而由于原有的中间表示在翻译过程中影响了代码的关联度,生成的后端代码中存在较多冗余指令,影响翻译程序的执行效率。分析了指令优化可行性,针对条件跳转指令进行优化,通过指令预处理对中间表示进行改进,实现中间表示到后端代码生成由一对多翻译模式到多对多翻译模式的转变,采用指令归约技术,针对条件跳转指令的2种模式CMP-JX型与TEST-JX型,分别设计相应的优化翻译算法,并在开源二进制平台QEMU上实现。基于NPB-3.3和SPEC CPU 2006测试集进行了测试,与以前的翻译模式进行对比,优化后的代码膨胀率平均减少了14.62%,翻译程序运行速度提升了17.23%,验证了该优化方法的有效性。  相似文献   

8.
代码优化与指令调度的集成   总被引:1,自引:0,他引:1  
在开发指令级并行性的编译器中,如果代码优化和指令调度各自独立进行,将导致代码优化效果的下降甚至产生副作用,文中针对这一问题,提出了代码优化和指令调度集成的思想,在此思想的基础上,介绍了一个适合于代码优化集成的指令调度算框架;并从优化的有效性、是否可逆和优化机会的产生等方面进行了分析,选出了适合集成入指令调度的传统优化种类;最后给出了这些优化的具体集成方法,该文提出的方法已经在一个指令级并行编译器上进行了实验,实验数据证明,这种优化集成方法能使优化的效果明显改善。  相似文献   

9.
针对编译循环内的查找表分派指令导致的代码重复或额外运行开销,在Dalvik虚拟机的基于Trace的即时编译器中提出了改进的代码生成算法。同已有的代码生成算法相比,该方法在划分基本块阶段获取查找表分派的信息,并将查找表分派指令转换成一系列条件分支指令,通过条件分支指令实现子Trace同主Trace的合并,避免了主子Trace切换时额外的函数调用。实验结果表明,对于循环内含查找表分派的应用程序,该算法能提升其性能。  相似文献   

10.
协作式全局指令调度与寄存器分配   总被引:1,自引:1,他引:0  
指令级并行是现代高性能代理器的重要特征,对于发挥这类处理器所具有的并行处理能力来说,编译器有至关重要的影响。文中讨论指令级并行编译中的核心问题-全局指令调度与 器分配,并以作者为一种新型的显式并行体系结构微处理器的编译系统为背景,介绍了此类编译器后端设计中面临的指令调度与寄存器分配的时序问题,以及为解决这一问题而提出了的一种协作式全局指令调度与寄存器分配方法。  相似文献   

11.
We consider the Mollard construction from the point of view of its efficiency for detecting multiple bit errors. We propose a generalization of the classical extended Mollard code to arbitrary code lengths. We show partial robustness of this construction: such codes have less undetected and miscorrected errors than linear codes. We prove that, for certain code parameters, the generalization of the Mollard construction can ensure better error protection than a generalization of Vasil’ev codes.  相似文献   

12.
代码复用攻击日趋复杂,传统的代码随机化方法已无法提供足够的防护.为此,提出一种基于运行时代码随机化的代码复用攻击防御方法LCR.该方法在目标程序正常运行时,实时监控攻击者企图获取或利用gadgets的行为,当发现监控的行为发生时,立即触发对代码进行函数块级的随机化变换,使攻击者最终获取或利用的gadgets信息失效,从而阻止代码复用攻击的实现.设计实现了LCR原型系统,并对提出的方法进行了测试.结果表明:LCR能够有效防御基于直接或间接内存泄漏等实现的代码复用攻击,且在SPEC CPU2006上的平均开销低于5%.  相似文献   

13.
现有反编译器产生的代码与对应的源代码之间存在差异,找到并理解差异有助于改进并完善反编译器的设计。该文给出一种适用于C语言反编译代码与源代码的比较算法。该算法以语法树匹配方法为基础,定义新的C语言中间代码表示形式并对表达式进行动态匹配,提高了语法树匹配的准确性。实验结果表明,该算法能有效计算出反编译代码与源代码之间的多数差异。  相似文献   

14.
“挂马”     
《多媒体世界》2008,(10):77-77
网页挂马就是在网页的源代码中加入一段恶意代码,利用系统漏洞实现将木马程序自动下载到用户电脑之中。  相似文献   

15.
Rescuing Code     
《Software, IEEE》2007,24(5):26-27
Imagine you've experienced project heat death at least once. The term "heat death" comes from the second law of thermodynamics: entropy within a closed system increases over time without bound until the system collapses. In software, the entropy we experience most is in the design. Most of the code we add increases design entropy. Project heat death occurs when the design rots to the point where starting over is cheaper than continuing. Project heat death seems inevitable, yet when a large-scale project dies, people often stand around, surprised, asking "why us?" To do better next time, you need a sense of what problems to look for, and you need to start solving them before they spiral out of control. The author hopes this department helps in both regards.  相似文献   

16.
Source Code     
Weiser  M. 《Computer》1987,20(11):66-73
  相似文献   

17.
王敏  潘兴禄  邹艳珍  谢冰 《软件学报》2023,34(10):4705-4723
代码审查是现代软件分布式并行开发过程中的重要机制. 在代码评审时, 帮助代码评审者快速查看某一段源代码的演化过程, 可以让评审者快速理解此段代码变更的原因和必要性, 从而有效提升代码评审的效率与质量. 现有工作虽然提供了一些类似的代码提交历史回溯方法及对应工具, 但缺乏从历史数据中进一步提取辅助代码评审相关辅助信息的能力. 为此, 提出一个面向代码评审的细粒度代码变更溯源方法C2Tracker. 给定一段方法(函数)级别的细粒度代码变更, C2Tracker能够自动追溯到历史开发过程中修改该段代码相关的代码提交, 并在此基础上进一步挖掘其中与该段代码频繁共现修改的代码元素以及相关的变更片段, 辅助代码评审者对当前代码变更的理解与决策. 在10个著名开源项目的数据集下进行实验验证. 实验结果表明, C2Tracker在追溯历史提交的准确率上达到97%, 在挖掘频繁共现代码元素任务上的准确率达到95%, 在追溯相关代码变更片段任务上的准确率达到97%; 相比现有评审方式, C2Tracker在具体案例的代码评审效率和质量上均有较大提升, 在绝大多数的代码评审案例中被评审者认为能提供“明显帮助”或“很大帮助”.  相似文献   

18.
针对计算机中常用的字符集ANSI、DBCS、Unicode和UTF-8,介绍了基于Unicode的内码转换的简捷方法,讨论了编码类型错误和HTML字符引用错误所致乱码的原理及其消除方法。  相似文献   

19.
代码克隆检测在剽窃检测、版权侵犯调查、软件演化分析、代码压缩、错误检测,以及寻找bug,发现复用模式等方面有重要作用。现有的代码克隆检测工具算法复杂,或需要消耗大量的计算资源,不适用于规模巨大的代码数据。为了能够在大规模的数据上检测代码克隆,提出了一种新的代码克隆检测算法。该算法结合数据消重中的基于内容可变长度分块(content-defined chunking,CDC)思想和网页查重中的Simhash算法思想,采用了对代码先分块处理再模糊匹配的方法。在一个包含多种开源项目,超过5亿个代码文件,共约10 TB代码内容的数据源上,实现了该算法。通过实验,比较了不同分块长度对代码克隆检测率和所需要时间的影响,验证了新算法可以运用于大规模代码克隆检测,并且能够检测出一些级别3的克隆代码,达到了较高的准确率。  相似文献   

20.
陈涛  陈意云 《计算机工程》2004,30(7):106-107,156
介绍了一种在安全策略语言的指导下,对机器语言进行安全检查的方法。它使用基于编程语言的理论和实现技术,通过分析程序语义和系统调用等特征,对程序进行检查。安全策略语言提供了一种灵活、统一的安全描述手段,希望这种将安全检查的实现机制和检查内容分离的做法能给其他的研究者提供了有用的参考。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号