Effective compiler support for predicated execution using the hyperblock
MICRO 25 Proceedings of the 25th annual international symposium on Microarchitecture
The superblock: an effective technique for VLIW and superscalar compilation
The Journal of Supercomputing - Special issue on instruction-level parallelism
Improvements to graph coloring register allocation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture
Region-based compilation: introduction, motivation, and initial experience
International Journal of Parallel Programming - Special issue on instruction-level parallel processing—part I
MICRO 30 Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture
Edge profiling versus path profiling: the showdown
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Register allocation by priority-based coloring
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Register allocation & spilling via graph coloring
SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction
Region-based register allocation for epic architectures
Region-based register allocation for epic architectures
Editorial message: special track on the programming languages and object technologies
Proceedings of the 2002 ACM symposium on Applied computing
Hi-index | 0.00 |
In a region-based compilation framework, the compiler builds regions to provide the best compilation unit for scheduling and optimization. The compiler uses execution frequency information gained from profiling to place frequently executed blocks in the same region. This paper investigates the use of profiling in a region-based compilation framework and measures its impact on the register allocation phase. The profiling information can be used by the register allocator to assign values to physical registers based on the execution frequency of the regions. Register allocation can be performed on the most frequently executed regions first so that any spilling that occurs causes memory accesses in less frequently executed regions. The experimental study indicates that profile assisted region formation and register allocation can result in code that executes faster than the code that was compiled without using profiling information and the amount of spill code executed can be reduced significantly.