Compiler techniques to improve dynamic branch prediction for indirect jump and call instructions
-
Published:2012-01
Issue:4
Volume:8
Page:1-20
-
ISSN:1544-3566
-
Container-title:ACM Transactions on Architecture and Code Optimization
-
language:en
-
Short-container-title:ACM Trans. Archit. Code Optim.
Author:
Mccandless Jason1,
Gregg David1
Affiliation:
1. LERO@TCD, Trinity College Dublin, Ireland
Abstract
Indirect jump instructions are used to implement multiway branch statements and virtual function calls in object-oriented languages. Branch behavior can have significant impact on program performance, but fortunately hardware predictors can alleviate much of the risk. Modern processors include indirect branch predictors which use part of the target address to update a global history. We present a code generation technique to maximize the branch history information available to the predictor. We implement our optimization as an assembly language transformation, and evaluate it for SPEC benchmarks and interpreters using simulated and real hardware, showing indirect branch misprediction decreases.
Funder
Irish Research Council for Science, Engineering and Technology
Science Foundation Ireland
Publisher
Association for Computing Machinery (ACM)
Subject
Hardware and Architecture,Information Systems,Software
Reference32 articles.
1. Advanced Micro Devices 2008. Software Optimization Guide for AMD Family 10h Processors. Advanced Micro Devices. Advanced Micro Devices 2008. Software Optimization Guide for AMD Family 10h Processors. Advanced Micro Devices.
2. Reducing branch costs via branch alignment
3. Target prediction for indirect jumps
4. Walk-time address adjustment for improving the accuracy of dynamic branch prediction
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Devirtualization in LLVM;Proceedings Companion of the 2017 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity;2017-10-22
2. Short-circuit dispatch;ACM SIGARCH Computer Architecture News;2016-10-12
3. Short-Circuit Dispatch: Accelerating Virtual Machine Interpreters on Embedded Processors;2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA);2016-06
4. Bungee jumps;Proceedings of the 48th International Symposium on Microarchitecture;2015-12-05