【24h】

Efficient multiple and predicate dispatching

机译:高效多重和谓词调度

获取原文

摘要

The speed of message dispatching is an important issue in the overall performance of object-oriented programs. We have developed an algorithm for constructing efficient dispatch functions that combines novel algorithms for efficient single dispatching, multiple dispatching, and predicate dispatching. Our algorithm first reduces methods written in the general predicate dispatching model (which generalizes single dispatching, multiple dispatching, predicate classes and classifiers, and pattern-matching) into ones written using a simpler multimethod dispatching model. Our algorithm then computes a strategy for implementing multiple dispatching in terms of sequences of single dispatches, representing the strategy as a lookup DAG. Finally, our algorithm computes an implementation strategy separately for each of the single dispatches, producing for each dispatch a dispatch tree, which is a binary decision tree blending class identity tests, class range tests, and table lookups. Our algorithm exploits any available static information (from type declarations or class analysis) to prune unreachable paths from the lookup DAG, and uses any available dynamic profile information to minimize the expected time to search the dispatch trees. We measure the effectiveness of our dispatching algorithms on a collection of large Cecil programs, compiled by the Vortex optimizing compiler, showing improvements of up to 30% over already heavily optimized baseline versions.
机译:消息调度的速度是面向对象程序的整体性能的重要问题。我们开发了一种构造有效的调度功能的算法,该算法结合了新颖的算法,以便有效单一调度,多次调度和谓词调度。我们的算法首先减少了在常规谓词调度模型中写入的方法(将单一调度,多次调度,谓词类和分类器概括为使用简单的多普通调度模型写入的单一调度,多次调度,谓词类和分类器和模式匹配)。然后,我们的算法计算了一种在单一调度序列方面实现多次调度的策略,表示策略作为查找表达。最后,我们的算法针对每个调度分别计算实现策略,为每个调度产生调度树,这是二进制决策树混合类标识测试,类范围测试和表查找。我们的算法利用任何可用的静态信息(从类型声明或类分析)来从查找DAG进行修剪无法访问的路径,并使用任何可用的动态配置文件信息来最小化搜索调度树的预期时间。我们衡量了由Vortex优化编译器编制的大型CECIL程序集合的调度算法的有效性,显示出在已经优化的基线版本最高30%的改进。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号