Reducing branch costs via branch alignment
- 1 November 1994
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 29 (11) , 242-251
- https://doi.org/10.1145/195473.195553
Abstract
Several researchers have proposed algorithms for basic block re - ordering We call these branch alignment algorithms The primary emphasis of these algorithms has been on improving instruction cache locality, and the few studies concerned with branch predic - tion reported small or minimal improvements As wide - issue archi - tectures become increasingly popular the importance of reducing branch costs will increase, and branch alignment is one mechanism which can effectively reduce these costs In this paper, we propose an improved branch alignment algo - rithm that takes into consideration the architectural cost model and the branch prediction architecture when performing the basic block reordering We show that branch alignment algorithms can improve a broad range of static and dynamic branch prediction architectures We also show that a programs performance can be improved by ap - proximately 5% even when using recently proposed, highly accurate branch prediction architectures The programs are compiled by any existing compiler and then transformed via binary transformations When implementing these algorithms on a Alpha AXP 21604 up to a 16% reduction in total execution time is achievedKeywords
This publication has 20 references indexed in Scilit:
- ATOMPublished by Association for Computing Machinery (ACM) ,1994
- Link-time optimization of address calculation on a 64-bit architecturePublished by Association for Computing Machinery (ACM) ,1994
- Branch prediction for freePublished by Association for Computing Machinery (ACM) ,1993
- Branch target buffer design and optimizationIEEE Transactions on Computers, 1993
- Strategies for branch target buffersPublished by Association for Computing Machinery (ACM) ,1991
- The Tera computer systemPublished by Association for Computing Machinery (ACM) ,1990
- Profile guided code positioningPublished by Association for Computing Machinery (ACM) ,1990
- Compile-time program restructuring in multiprogrammed virtual memory systemsIEEE Transactions on Software Engineering, 1988
- Improving locality by critical working setsCommunications of the ACM, 1974
- Optimal Sequential Partitions of GraphsJournal of the ACM, 1971