[发明专利]更快速短路的复合条件集重新排序在审
申请号: | 201980025128.4 | 申请日: | 2019-03-12 |
公开(公告)号: | CN111971651A | 公开(公告)日: | 2020-11-20 |
发明(设计)人: | A·J·萨布内;E·A·布鲁默 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 黄倩 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 快速 短路 复合 条件 重新 排序 | ||
1.一种计算设备,包括处理器,所述处理器被配置为:
在编译器处接收源代码,其中所述源代码包括:
至少一个复合条件集,具有多个条件;以及
针对所述多个条件中的每个条件的相应代码块,所述相应代码块包括用以评估所述条件的一个或多个指令;
针对所述多个条件的多个排序中的每个排序,确定所述排序满足一个或多个合法性约束;
针对满足所述一个或多个合法性约束的所述多个排序中的每个排序,确定针对该排序的相应估计计算成本;以及
对所述多个条件重新排序,以具有满足所述一个或多个合法性约束的所述多个排序中具有最低估计计算成本的排序。
2.根据权利要求1所述的计算设备,其中所述源代码还包括:
第一分支代码块,包括一个或多个第一分支评估指令,所述一个或多个第一分支评估指令被配置为当所述多个条件为真时被执行;以及
第二分支代码块,包括一个或多个第二分支评估指令,所述一个或多个第二分支评估指令被配置为当所述多个条件中的至少一个条件为假时被执行。
3.根据权利要求2所述的计算设备,其中所述一个或多个合法性约束包括以下约束:所述源代码包括一个第一分支代码块和一个第二分支代码块。
4.根据权利要求1所述的计算设备,其中所述一个或多个合法性约束包括以下约束:每个条件的所述相应代码块包括用以进行到共用目标代码块的指令。
5.根据权利要求4所述的计算设备,其中所述一个或多个合法性约束包括以下约束:所述源代码的在所述多个条件的所述相应代码块的最后的代码块之后并且在所述共用目标代码块之前的一部分具有一个入口点和一个出口点。
6.根据权利要求1所述的计算设备,其中所述一个或多个合法性约束包括以下约束:没有指令调用未定义变量。
7.根据权利要求1所述的计算设备,其中每个代码块是基本块。
8.根据权利要求1所述的计算设备,其中至少一个代码块包括多个基本块。
9.根据权利要求1所述的计算设备,其中所述处理器被配置为至少部分地通过以下来确定针对每个排序的所述相应估计计算成本:
向所述排序中包括的每个指令指派估计成本得分;以及
对被指派给每个指令的相应的所述估计成本得分求和。
10.根据权利要求1所述的计算设备,其中所述复合条件集包括三个或更多条件。
11.一种由计算设备的处理器执行的方法,所述方法包括:
在编译器处接收源代码,其中所述源代码包括:
至少一个复合条件集,具有多个条件;以及
针对所述多个条件中的每个条件的相应代码块,所述相应代码块包括用以评估所述条件的一个或多个指令;
针对所述多个条件的多个排序中的每个排序,确定所述排序满足一个或多个合法性约束;
针对满足所述一个或多个合法性约束的所述多个排序中的每个排序,确定针对该排序的相应估计计算成本;以及
对所述多个条件重新排序,以具有满足所述一个或多个合法性约束的所述多个排序中具有最低估计计算成本的排序。
12.根据权利要求11所述的方法,其中所述源代码还包括:
第一分支代码块,包括一个或多个第一分支评估指令,所述一个或多个第一分支评估指令被配置为当所述多个条件为真时被执行;以及
第二分支代码块,包括一个或多个第二分支评估指令,所述一个或多个第二分支评估指令被配置为当所述多个条件中的至少一个条件为假时被执行。
13.根据权利要求11所述的方法,其中所述一个或多个合法性约束包括以下约束:每个条件的所述相应代码块包括用以进行到共用目标代码块的指令。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201980025128.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:吸水性片、吸水性片的制造方法及吸收性物品
- 下一篇:促进免疫应答