Enhance GCC loop optimizations in multicore context

Multicore and multiprocessor based solutions are nowadays on an ascending path; the software tool-chain should keep the pace and design solutions that lead to the best use of the hardware. Cache memory is one hardware component, which evolved in the multicore context. Even so, the current cache designs have limitations that can be transformed into optimization opportunities on the compiler side. This paper proposes a solution to improve the cache usage by performing complex loop optimizations in the compiler, enhancing data locality and parallelism.

[1]  David A. Patterson,et al.  Computer Architecture, Fifth Edition: A Quantitative Approach , 2011 .

[2]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[3]  Alain Darte,et al.  The Data Parallel Programming Model: Foundations, HPF Realization, and Scientific Applications , 1996 .

[4]  Lieven Eeckhout,et al.  Sniper: Exploring the level of abstraction for scalable and accurate parallel multi-core simulation , 2011, 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[5]  Stijn Eyerman,et al.  Interval simulation: Raising the level of abstraction in architectural simulation , 2010, HPCA - 16 2010 The Sixteenth International Symposium on High-Performance Computer Architecture.

[6]  Stijn Eyerman,et al.  An Evaluation of High-Level Mechanistic Core Models , 2014, ACM Trans. Archit. Code Optim..

[7]  Paul Feautrier,et al.  Automatic Parallelization in the Polytope Model , 1996, The Data Parallel Programming Model.

[8]  Daniel Berlin High-Level Loop Optimizations for GCC , 2004 .

[9]  Albert Cohen,et al.  GRAPHITE Two Years After First Lessons Learned From Real-World Polyhedral Compilation , 2010 .

[10]  Nicolas Vasilache,et al.  GRAPHITE : Polyhedral Analyses and Optimizations for GCC , 2006 .

[11]  David F. Bacon,et al.  Compiler transformations for high-performance computing , 1994, CSUR.