[发明专利]基于飞腾平台火狐浏览器JIT引擎的整数乘法优化方法在审
申请号: | 201810279057.8 | 申请日: | 2018-03-30 |
公开(公告)号: | CN108509202A | 公开(公告)日: | 2018-09-07 |
发明(设计)人: | 孙科;张铎;何明武;唐晓东;魏立峰;孔金珠;吴庆波 | 申请(专利权)人: | 天津麒麟信息技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 天津诺德知识产权代理事务所(特殊普通合伙) 12213 | 代理人: | 栾志超 |
地址: | 300457 天津市滨海新区*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 整数乘法 优化 引擎 火狐浏览器 代码生成 操作数 读取 代码生成过程 乘法操作 乘法指令 等效指令 数据分析 指令周期 浮点 推断 编译 替换 降级 | ||
1.基于飞腾平台火狐浏览器JIT引擎的整数乘法优化方法,其特征在于:依次包括如下步骤:
S110:开始优化JIT编译过程;
S120:MIR生成;
S130:执行优化趟;
S140:MIR降级;
S150:代码生成,包括:
a.整数乘法代码生成;
b.读取LMulI对象中右操作数,根据右操作数的类型执行对应的操作;
S160:结束。
2.根据权利要求1所述的基于飞腾平台火狐浏览器JIT引擎的整数乘法优化方法,其特征在于:所述读取LMulI对象中右操作数,根据右操作数的类型执行对应的操作,包括判断右操作数是否为常量,
若为常量,则执行步骤S151;
若否,则执行步骤S152;
S151:执行右操作数为常量的代码生成子过程;
S152:执行右操作数为寄存器的代码生成子过程。
3.根据权利要求2所述的基于飞腾平台火狐浏览器JIT引擎的整数乘法优化方法,其特征在于:所述执行右操作数为常量的代码生成子过程,包括如下步骤:
S1511:生成左操作数和0比较的指令;
S1512:判断右操作数是否为0。
4.根据权利要求3所述的基于飞腾平台火狐浏览器JIT引擎的整数乘法优化方法,其特征在于:所述生成左操作数和0比较的指令,包括:
判断MulI中canBeNegativeZero标志是否被设置;
如果MulI中canBeNegativeZero标志被设置,则生成指令检查整数乘法运算结果是否为-0。
5.根据权利要求3所述的基于飞腾平台火狐浏览器JIT引擎的整数乘法优化方法,其特征在于:所述判断右操作数是否为0,包括:
如果右操作数为0,则生成LessThan标志被设置时跳转到Bailout入口的指令;
否则生成Equal标志被设置时跳转到Bailout入口的指令。
6.根据权利要求5所述的基于飞腾平台火狐浏览器JIT引擎的整数乘法优化方法,其特征在于:包括判断右值,根据右值类型执行对应的操作,
当右值为常数0,则生成指令将常数0移动到输出寄存器;
当右值为常数1,则生成指令将左操作数器寄存器的内容移动到输出寄存器;
当右值为常数2,则生成指令将左操作数相加并将结果保存到输出寄存器;
当右值为2的N次幂时,则生成左移指令并将结果保存到输出寄存器;
当右值为其它常数时,则生成移动指令将右操作数加载到草稿寄存器,并生成乘法指令并将结果保存到输出寄存器,判断MulI的canOverflow标志位,如果为真则生成Overflow标志被设置时跳转到Bailout入口的指令。
7.根据权利要求2所述的基于飞腾平台火狐浏览器JIT引擎的整数乘法优化方法,其特征在于:所述执行右操作数为寄存器的代码生成子过程,包括如下步骤:
S1521:生成乘法指令并将结果保存到输出寄存器,判断MulI的canOverflow标志位;
S1522:判断MulI的canBeNegativeZero标志。
8.根据权利要求5所述的基于飞腾平台火狐浏览器JIT引擎的整数乘法优化方法,其特征在于:所述判断MulI的canOverflow标志位,包括,如果为真则生成Overflow标志被设置时跳转到Bailout入口的指令。
9.根据权利要求1所述的基于飞腾平台火狐浏览器JIT引擎的整数乘法优化方法,其特征在于:判断MulI的canBeNegativeZero标志,包括:
如果为真,则生成结果寄存器和0比较的指令,因为整数乘法结果为-0时这里只存在一个操作数为0且另一个操作数小于的0的情况,所以可以生成一条CMN指令测试两个操作数相加是否小于零,并在Signed标志位被设置时跳转到Bailout入口。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津麒麟信息技术有限公司,未经天津麒麟信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810279057.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种代码生成方法和装置
- 下一篇:软件跨云部署方法、计算机设备及存储介质