发明名称 一种优化的memset标准库函数汇编代码生成方法
摘要 本发明公开了一种优化的memset标准库函数汇编代码生成方法,包括:根据目标机器的硬件特性,确定待生成的优化的填充执行片段所具有的属性特征及规模;根据待生成的优化的填充执行片段的规模,构造集中跳转表;根据集中跳转表,对输入参数中的目标填充地址和填充规模进行分支判断,建立输入参数集到集中跳转表的映射关系;根据目标机器可用的数据传输指令集、待生成的优化的填充执行片段的属性特征,生成满足填充要求的填充模式集合;根据目标机器的硬件特性,对填充模式集合进行性能筛选,得到具有最优填充性能的填充模式,由此生成优化的填充执行片段。本发明实现了优化地数据填充,提高了memset标准库函数的数据填充性能,可移植性好。
申请公布号 CN102981886B 申请公布日期 2015.10.28
申请号 CN201210563969.0 申请日期 2012.12.21
申请人 中国科学院声学研究所 发明人 应欢;朱浩;王东辉;洪缨
分类号 G06F9/45(2006.01)I 主分类号 G06F9/45(2006.01)I
代理机构 北京亿腾知识产权代理事务所 11309 代理人 陈霁
主权项 一种优化的memset标准库函数汇编代码生成方法,其特征在于:根据目标机器的硬件特性,确定待生成的优化的填充执行片段所具有的属性特征及规模;根据所述待生成的优化的填充执行片段的规模,构造集中跳转表,所述集中跳转表由多条分支跳转语句构成,每条分支跳转语句旨在将执行路径引向相应的优化的填充执行片段;根据所述集中跳转表,基于目标机器可用的逻辑运算指令,对输入参数中的目标填充地址和填充规模按照所述待生成的优化的填充执行片段的属性特征进行分支判断,建立输入参数集到所述集中跳转表的映射关系;根据目标机器可用的数据传输指令集、所述待生成的优化的填充执行片段的属性特征,生成满足填充要求的填充模式集合;根据所述目标机器的硬件特性,对所述填充模式集合进行性能筛选,得到具有最优填充性能的填充模式,由此生成优化的填充执行片段;所述根据所述待生成的优化的填充执行片段的属性特征,生成满足填充要求的填充模式集合步骤包括:根据所述待生成的优化的填充执行片段的属性特征,将数据填充规模为n的填充任务分解成头部填充任务、循环填充任务和尾部填充任务;根据所述头部填充任务、循环填充任务和尾部填充任务,分别对目标机器可用的数据传输指令集分别施以基本填充模式生成算法,得到满足所述头部填充任务、循环填充任务和尾部填充任务的头部填充模式集合、循环填充模式集合、尾部填充模式集合;所述基本填充模式生成算法通过以下步骤实现:遍历目标机器可用的数据传输指令集;判断当前地址是否满足当前数据传输指令相应的地址对齐要求,如果满足,则将当前的数据传输指令按序添加到当前填充模式;否则,筛除当前数据传输指令,遍历下一条数据传输指令;当所述当前填充模式生成完成后,对所述当前填充模式进行性能评估,如果当前填充模式被滤除,则开始新一轮的填充模式生成;否则,将当前填充模式添加到填充模式集合。
地址 100190 北京市海淀区北四环西路21号