首页> 外文期刊>Software >Branch elimination by condition merging
【24h】

Branch elimination by condition merging

机译:通过条件合并消除分支

获取原文
获取原文并翻译 | 示例
       

摘要

Conditional branches are expensive. Branches require a significant percentage of execution cycles since they occur frequently and cause pipeline flushes when mispredicted. In addition, branches result in forks in the control flow, which can prevent other code-improving transformations from being applied. In this paper we describe profile-based techniques for replacing the execution of a set of two or more branches with a single branch on a conventional scalar processor. These sets of branches can include tests of multiple variables. For instance, the test if (p1 ! = 0 && p2 != 0), which is testing for NULL pointers, can be replaced with if (p1 & p2 != 0). Program profiling is performed to target condition merging along frequently executed paths. The results show that eliminating branches by merging conditions can significantly reduce the number of conditional branches executed in non-numerical applications.
机译:条件分支是昂贵的。分支需要大量执行周期,因为它们经常发生并且在错误预测时会导致管道刷新。另外,分支会导致控制流中的派生,这可能会阻止应用其他代码改进转换。在本文中,我们描述了基于配置文件的技术,该技术将常规标量处理器上的两个或多个分支的执行替换为单个分支。这些分支集可以包括多个变量的测试。例如,测试NULL指针的测试if(p1!= 0 && p2!= 0)可以替换为if(p1&p2!= 0)。执行程序概要分析以使目标条件沿着频繁执行的路径合并。结果表明,通过合并条件消除分支可以显着减少在非数值应用程序中执行的条件分支的数量。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号