ASPLOS I Proceedings of the first international symposium on Architectural support for programming languages and operating systems
Implementing a graph-colouring algorithm in Parlog
ACM SIGPLAN Notices
Demystifying on-the-fly spill code
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
A high-performance droplet router for digital microfluidic biochips
Proceedings of the 2008 international symposium on Physical design
Register allocation for software pipelined multidimensional loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 19th ACM Great Lakes symposium on VLSI
SARA: StreAm register allocation
CODES+ISSS '09 Proceedings of the 7th IEEE/ACM international conference on Hardware/software codesign and system synthesis
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
An efficient hierarchical parallel genetic algorithm for graph coloring problem
Proceedings of the 13th annual conference on Genetic and evolutionary computation
ACM Transactions on Embedded Computing Systems (TECS)
A wide-ranging computational comparison of high-performance graph colouring algorithms
Computers and Operations Research
Design and analysis of adaptive processor
ACM Transactions on Reconfigurable Technology and Systems (TRETS)
Throughput-oriented kernel porting onto FPGAs
Proceedings of the 50th Annual Design Automation Conference
A hierarchical parallel genetic approach for the graph coloring problem
Applied Intelligence
Hi-index | 0.00 |
In a previous paper we reported the successful use of graph coloring techniques for doing global register allocation in an experimental PL/I optimizing compiler. When the compiler cannot color the register conflict graph with a number of colors equal to the number of available machine registers, it must add code to spill and reload registers to and from storage. Previously the compiler produced spill code whose quality sometimes left much to be desired, and the ad hoc techniques used took considerable amounts of compile time. We have now discovered how to extend the graph coloring approach so that it naturally solves the spilling problem. Spill decisions are now made on the basis of the register conflict graph and cost estimates of the value of keeping the result of a computation in a register rather than in storage. This new approach produces better object code and takes much less compile time.