共查询到20条相似文献,搜索用时 62 毫秒
1.
处理机的指令级并行能力只有通过编译器才得以发挥。代码生成是编译器后端中直接针对目标处理机的优化阶段的集合,因而它是提高目标处理机指令级并行的重要组成部分。ORC(Open Research CompiLer)是一款针对IA-64体系结构的开放源码编译器,它具有丰富的优化阶段和良好的性能。本文介绍了ORC的代码生成的关键技术,这些技术包括区域构造、谓词相关优化、全局指今调度、参数化的机器描述以及微调度。实测结果表明,这些技术取得了显著的优化结果,ORC相对于Pro64能取得平均23%的加速比。 相似文献
2.
3.
该文在对几种可重定向编译器进行分析的基础上,提出了一种基于类库的可重定向编译器后端设计技术。该技术通过恰当定义机器描述与代码生成之间的接口,抽象不同硬件平台共有的操作与功能,隔离中间表示和不同硬件平台汇编语言代码的差异。根据不同硬件平台特点,利用面向对象技术实现接口,构成重定向支持类库。代码生成器通过对接口的调用,将中间表示转化为相应平台的汇编语言,完成编译器后端的重定向工作。 相似文献
4.
5.
6.
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.
11.
D. I. Kovalevskaya 《Problems of Information Transmission》2018,54(1):34-47
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.
15.
《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.
17.
代码审查是现代软件分布式并行开发过程中的重要机制. 在代码评审时, 帮助代码评审者快速查看某一段源代码的演化过程, 可以让评审者快速理解此段代码变更的原因和必要性, 从而有效提升代码评审的效率与质量. 现有工作虽然提供了一些类似的代码提交历史回溯方法及对应工具, 但缺乏从历史数据中进一步提取辅助代码评审相关辅助信息的能力. 为此, 提出一个面向代码评审的细粒度代码变更溯源方法C2Tracker. 给定一段方法(函数)级别的细粒度代码变更, C2Tracker能够自动追溯到历史开发过程中修改该段代码相关的代码提交, 并在此基础上进一步挖掘其中与该段代码频繁共现修改的代码元素以及相关的变更片段, 辅助代码评审者对当前代码变更的理解与决策. 在10个著名开源项目的数据集下进行实验验证. 实验结果表明, C2Tracker在追溯历史提交的准确率上达到97%, 在挖掘频繁共现代码元素任务上的准确率达到95%, 在追溯相关代码变更片段任务上的准确率达到97%; 相比现有评审方式, C2Tracker在具体案例的代码评审效率和质量上均有较大提升, 在绝大多数的代码评审案例中被评审者认为能提供“明显帮助”或“很大帮助”. 相似文献
18.
亓莱滨 《数字社区&智能家居》2006,(11)
针对计算机中常用的字符集ANSI、DBCS、Unicode和UTF-8,介绍了基于Unicode的内码转换的简捷方法,讨论了编码类型错误和HTML字符引用错误所致乱码的原理及其消除方法。 相似文献
19.
代码克隆检测在剽窃检测、版权侵犯调查、软件演化分析、代码压缩、错误检测,以及寻找bug,发现复用模式等方面有重要作用。现有的代码克隆检测工具算法复杂,或需要消耗大量的计算资源,不适用于规模巨大的代码数据。为了能够在大规模的数据上检测代码克隆,提出了一种新的代码克隆检测算法。该算法结合数据消重中的基于内容可变长度分块(content-defined chunking,CDC)思想和网页查重中的Simhash算法思想,采用了对代码先分块处理再模糊匹配的方法。在一个包含多种开源项目,超过5亿个代码文件,共约10 TB代码内容的数据源上,实现了该算法。通过实验,比较了不同分块长度对代码克隆检测率和所需要时间的影响,验证了新算法可以运用于大规模代码克隆检测,并且能够检测出一些级别3的克隆代码,达到了较高的准确率。 相似文献
20.
介绍了一种在安全策略语言的指导下,对机器语言进行安全检查的方法。它使用基于编程语言的理论和实现技术,通过分析程序语义和系统调用等特征,对程序进行检查。安全策略语言提供了一种灵活、统一的安全描述手段,希望这种将安全检查的实现机制和检查内容分离的做法能给其他的研究者提供了有用的参考。 相似文献