Checking_Correctness_of_Code_Generator_Architecture_Specificatio
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
《检查代码生成器架构规范的正确性》这篇文章探讨了一个关键问题,即如何验证编译器中的代码生成器使用的架构规格的准确性。随着现代指令集架构的复杂性增加,编译器,如GCC,需要不断更新代码生成器所依赖的架构规格。然而,现有的测试方法往往只进行端到端测试,而忽略了对编译器内部组件的单独验证。本文的目标是提出一种方法,专门用于检测代码生成器的正确性。 文章的核心贡献在于提出了一个针对GCC的RTL(寄存器传输级)解释器,以及一种有效的、与架构无关的测试用例生成策略。问题定义为:假设代码生成器将IR(中间语言)指令I映射到目标架构的汇编指令A,I的语义是否与A相同?为了比较汇编指令和IR指令的语义一致性,文章引入了一系列定义,包括汇编状态、IR状态、处理器状态对应关系、IR的正确性和代码生成器测试,这些定义有助于构建比较模型。 ArCheck是文中提出的方法,它包含三个主要步骤:规则提取、起始状态生成和测试执行及结果比较。规则提取阶段,通过对代码生成器的黑盒测试,收集IR和汇编指令的配对。起始状态生成则利用IR的白盒分析,通过约束传播和约束求解器确定初始状态的可能值范围。测试执行和结果比较阶段,根据起始状态执行RTL和汇编指令,比较其后的IR状态和汇编状态是否一致。 在评估阶段,文章选取了GCC-4.5.1的x86代码生成器,针对通用目的和SSE x86指令进行了测试。通过与随机测试策略的对比,证明了文中提出的测试用例生成策略的效率。此外,该方法还揭示了GCC代码生成器中的一些潜在错误,进一步证明了这种方法的有效性。 本文为确保编译器代码生成器的正确性提供了一种系统性的解决方案,这对于维护编译器的质量和确保软件的可靠性至关重要。通过构建特定的测试框架和策略,能够更好地检测和修复代码生成器中的问题,这对于优化编译器性能、提高软件开发效率以及确保软件在不同架构上的正确运行具有深远的意义。
- 粉丝: 2212
- 资源: 19万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 资料阅读器(先下载解压) 5.0.zip
- 人、垃圾、非垃圾检测18-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 440379878861684smart-parking.zip
- 金智维RPA server安装包
- 二维码图形检测6-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord数据集合集.rar
- Matlab绘制绚丽烟花动画迎新年
- 厚壁圆筒弹性应力计算,过盈干涉量计算
- 实验八:实验程序202210409116武若豪.zip
- 网络实践11111111111111
- GO编写图片上传代码.txt