[发明专利]一种优化的memset标准库函数汇编代码生成方法有效
申请号: | 201210563969.0 | 申请日: | 2012-12-21 |
公开(公告)号: | CN102981886A | 公开(公告)日: | 2013-03-20 |
发明(设计)人: | 朱浩;应欢;王东辉;洪缨 | 申请(专利权)人: | 中国科学院声学研究所 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 北京亿腾知识产权代理事务所 11309 | 代理人: | 陈霁 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 优化 memset 标准 库函数 汇编 代码 生成 方法 | ||
1.一种优化的memset标准库函数汇编代码生成方法,其特征在于:
根据目标机器的硬件特性,确定待生成的优化的填充执行片段所具有的属性特征及规模;
根据所述待生成的优化的填充执行片段的规模,构造集中跳转表,所述集中跳转表由多条分支跳转语句构成,每条分支跳转语句旨在将执行路径引向相应的优化的填充执行片段;
根据所述集中跳转表,基于目标机器可用的逻辑运算指令,对输入参数中的目标填充地址和填充规模按照所述待生成的优化的填充执行片段的属性特征进行分支判断,建立输入参数集到所述集中跳转表的映射关系;
根据目标机器可用的数据传输指令集、所述待生成的优化的填充执行片段的属性特征,生成满足填充要求的填充模式集合;
根据所述目标机器的硬件特性,对所述填充模式集合进行性能筛选,得到具有最优填充性能的填充模式,由此生成优化的填充执行片段。
2.根据权利要求1所述的方法,其特征在于:所述根据所述待生成的优化的填充执行片段的属性特征,生成满足填充要求的填充模式集合步骤包括:
根据所述待生成的优化的填充执行片段的属性特征,将数据填充规模为n的填充任务分解成头部填充任务、循环填充任务和尾部填充任务;
根据所述头部填充任务、循环填充任务和尾部填充任务,分别对目标机器可用的数据传输指令集分别施以基本填充模式生成算法,得到满足所述头部填充任务、循环填充任务和尾部填充任务的头部填充模式集合、循环填充模式集合、尾部填充模式集合。
3.根据权利要求2所述的方法,其特征在于:所述基本填充模式生成算法通过以下步骤实现:
遍历目标机器可用的数据传输指令集;
判断当前地址是否满足当前数据传输指令相应的地址对齐要求,如果满足,则将当前的数据传输指令按序添加到当前填充模式;否则,筛除当前数据传输指令,遍历下一条数据传输指令;
当所述当前填充模式生成完成后,对所述当前填充模式进行性能评估,如果当前填充模式被滤除,则开始新一轮的填充模式生成;否则,将当前填充模式添加到填充模式集合。
4.根据权利要求3所述的方法,其特征在于:对所述当前填充模式进行性能评估是以当前填充模式中的元素个数为衡量标准,对当前填充模式进行筛选。
5.根据权利要求1所述的方法,其特征在于:所述根据所述目标机器的硬件特性,对所述填充模式集合进行性能筛选,得到具有最优填充性能的填充模式步骤包括:
根据目标机器的硬件特性自定义文件中的指令执行代价信息,计算所述填充模式集合中各个填充模式的执行代价总和,以指令执行代价为衡量标准,通过对所述填充模式集合进行筛选,得到执行代价最小的填充模式。
6.根据权利要求1所述的方法,其特征在于:在所述构造集中跳转表步骤之前还包括:
根据输入参数中的特定单字节填充数据,通过目标机器支持的移位、逻辑或、加法和乘法中的一种或多种操作,将特定单字节填充数据的位数扩展至目标机器的数据寄存器的最大位数。
7.根据权利要求1所述的方法,其特征在于:所述待生成的优化的填充执行片段所具有的属性特征包括目标填充地址的对齐模式和填充规模。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院声学研究所,未经中国科学院声学研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210563969.0/1.html,转载请声明来源钻瓜专利网。