Improving virtual function call target prediction via dependence-based pre-computation
Improving virtual function call target prediction via dependence-based pre-computation
复制标题
通过基于依赖的预计算改进虚拟函数调用目标预测
DOI:
--
复制
发表时间:
1999
期刊:
影响因子:
--
通讯作者:
G. Sohi
中科院分区:
文献类型:
--
作者:
A. Roth;Andreas Moshovos;G. Sohi
We introduce dependence-based pre-computation as a complement to history-based target prediction schemes. We present pre-computation in the context of virtual function calls (v-calls), a class of control transfers that is becoming increasingly important and has resisted conventional prediction. Our proposed technique dynamically identifies the sequence of operations that computes a v-call’s target. When the first instruction in such a sequence is encountered, a small execution engine speculatively and aggressively pre-executes the rest. The pre-computed target is stored and subsequently used when a prediction needs to be made. We show that a common v-call instruction sequence can be exploited to implement pre-computation using a previously proposed prefetching mechanism and minimal additional hardware. In a suite of C++ programs, dependence-based pre-computation eliminates 46% of the mispredictions incurred by a simple BTB and 24% of those associated with a path-based two-level predictor.