Exploring an Alternative Cost Function for Combinatorial Register-Pressure-Aware Instruction Scheduling
-
Published:2019-03-08
Issue:1
Volume:16
Page:1-30
-
ISSN:1544-3566
-
Container-title:ACM Transactions on Architecture and Code Optimization
-
language:en
-
Short-container-title:ACM Trans. Archit. Code Optim.
Author:
Shobaki Ghassan1,
Kerbow Austin1,
Pulido Christopher1,
Dobson William1
Affiliation:
1. California State University, Sacramento
Abstract
Multiple combinatorial algorithms have been proposed for doing pre-allocation instruction scheduling with the objective of minimizing register pressure or balancing register pressure and instruction-level parallelism. The cost function that is minimized in most of these algorithms is the peak register pressure (or the peak excess register pressure). In this work, we explore an alternative register-pressure cost function, which is the Sum of Live Interval Lengths (SLIL). Unlike the peak cost function, which captures register pressure only at the highest pressure point in the schedule, the proposed SLIL cost function captures register pressure at all points in the schedule. Minimizing register pressure at all points is desirable in larger scheduling regions with multiple high-pressure points. This article describes a Branch-and-Bound (B8B) algorithm for minimizing the SLIL cost function. The algorithm is based on two SLIL-specific dynamic lower bounds as well as the history utilization technique proposed in our previous work. The proposed algorithm is implemented into the LLVM Compiler and evaluated experimentally relative to our previously proposed B8B algorithm for minimizing the peak excess register pressure. The experimental results show that the proposed algorithm for minimizing the SLIL cost function produces substantially less spilling than the previous algorithm that minimizes the peak cost function. Execution-time results on various processors show that the proposed B8B algorithm significantly improves the performance of many CPU2006 benchmarks by up to 49% relative to LLVM's default scheduler. The geometric-mean improvement for FP2006 on Intel Core i7 is 4.22%.
Funder
College of Engineering and Computer Science (ECS) at California State University, Sacramento
Publisher
Association for Computing Machinery (ACM)
Subject
Hardware and Architecture,Information Systems,Software
Reference23 articles.
1. Optimal and Heuristic Global Code Motion for Minimal Spilling
2. T. Cormen C. Leiserson R. Rivest and C. Stein. 2009. Introduction to Algorithms (3rd ed.). The MIT Press. T. Cormen C. Leiserson R. Rivest and C. Stein. 2009. Introduction to Algorithms (3rd ed.). The MIT Press.
3. Register allocation and promotion through combined instruction scheduling and loop unrolling
4. Code scheduling and register allocation in large basic blocks
Cited by
3 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Graph transformations for register-pressure-aware instruction scheduling;Proceedings of the 31st ACM SIGPLAN International Conference on Compiler Construction;2022-03-18
2. Register-Pressure-Aware Instruction Scheduling Using Ant Colony Optimization;ACM Transactions on Architecture and Code Optimization;2022-01-31
3. Optimizing occupancy and ILP on the GPU using a combinatorial approach;Proceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization;2020-02-21