Register coalescing techniques for heterogeneous register architecture with copy sifting

@article{Ahn2009RegisterCT,
  title={Register coalescing techniques for heterogeneous register architecture with copy sifting},
  author={Minwook Ahn and Yunheung Paek},
  journal={ACM Trans. Embed. Comput. Syst.},
  year={2009},
  volume={8},
  pages={16:1-16:37}
}
Optimistic coalescing has been proven as an elegant and effective technique that provides better chances of safely coloring more registers in register allocation than other coalescing techniques. Its algorithm originally assumes homogeneous registers, which are all gathered in the same register file. Although this register architecture is still common in most general-purpose processors, embedded processors often contain heterogeneous registers, which are scattered in physically different… 

Register-allocated paging for big data calculations

Software to support the Monte Carlo method generates large vectors of pseudo-random numbers and uses these as operands in complex mathematical expressions. When such software is run on standard

References

SHOWING 1-10 OF 31 REFERENCES

Iterated register coalescing

This work shows how to interleave coloring reductions with Briggs's coalescing heuristic, leading to an algorithm that is safe but much more aggressive.

A progressive register allocator for irregular architectures

  • D. KoesS. Goldstein
  • Computer Science
    International Symposium on Code Generation and Optimization
  • 2005
This paper presents a progressive register allocator which uses a multi-commodity network flow model to elegantly represent the intricacies of irregular architectures and evaluates the allocator as a substitute for gcc 's local register allocation pass.

Register allocation & spilling via graph coloring

This work has discovered how to extend the graph coloring approach so that it naturally solves the spilling problem, and produces better object code and takes much less compile time.

Register allocation for irregular architectures

This work proposes a fundamentally new approach to global register allocation for irregular architectures that formulates global allocation as a partitioned boolean quadratic optimization problem (PBQP) that allows generic modeling of processors peculiarities.

Register allocation and spilling via graph coloring

This work has discovered how to extend the graph coloring approach so that it naturally solves the spilling problem, and produces better object code and takes much less compile time.

Precise register allocation for irregular architectures

  • Timothy KongK. Wilken
  • Computer Science
    Proceedings. 31st Annual ACM/IEEE International Symposium on Microarchitecture
  • 1998
Experimental results suggest that IP register allocation is well suited for irregular-register architectures, and extensions to the prior work are proposed that precisely model register irregularities including combined source/destination specifiers, memory operands, and variations in the cost of register usage.

Optimistic register coalescing

  • Jinpyo ParkSoo-Mook Moon
  • Computer Science
    Proceedings. 1998 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.98EX192)
  • 1998
This paper proposes a new heuristic called optimistic coalescing which optimistically performs aggressive coalescing, thus fully exploiting the positive impact of coalesce, yet when a coalesced node is to be spilled, it is split back into separate nodes; there as a better chance of coloring one of them which reduces the overall spill cost.

Copy Propagation Optimizations for VLIW DSP Processors with Distributed Register Files

This research work addresses the compiler optimization issues for PAC architecture, which is a 5-way issue DSP processor with distributed register files, and shows how to support an important class of compiler optimization problems, known as copy propagations, for such architecture.

A generalized algorithm for graph-coloring register allocation

This work presents a generalization of graph-coloring register allocation that handles two characteristics commonly found in commercial architectures, and adapts easily to a new target machine, requiring only the sets of names in the registers and a map of the register aliases.

Optimistic register coalescing

This article proposes a new heuristic called optimistic coalescing which optimistically performs aggressive coalescing, thus exploiting the positive impact of coalescing aggressively, but when a coalesced node is to be spilled, it is split back into separate nodes.