Improved loop tiling based on the removal of spurious false dependences

Riyadh Baghdadi, Albert Cohen, Sven Verdoolaege, Konrad Trifunović

Research output: Contribution to journalArticlepeer-review

Abstract

To preserve the validity of loop nest transformations and parallelization, data dependences need to be analyzed. Memory dependences come in two varieties: true dependences or false dependences. While true dependences must be satisfied in order to preserve the correct order of computations, false dependences are induced by the reuse of a single memory location to store multiple values. False dependences reduce the degrees of freedom for loop transformations. In particular, loop tiling is severely limited in the presence of these dependences. While array expansion removes all false dependences, the overhead on memory and the detrimental impact on register-level reuse can be catastrophic. We propose and evaluate a compilation technique to safely ignore a large number of false dependences in order to enable loop nest tiling in the polyhedral model. It is based on the precise characterization of interferences between live range intervals, and it does not incur any scalar or array expansion. Our algorithms have been implemented in the Pluto polyhedral compiler, and evaluated on the PolyBench suite.

Original languageEnglish (US)
Article number52
JournalTransactions on Architecture and Code Optimization
Volume9
Issue number4
DOIs
StatePublished - Jan 2013

Keywords

  • Compiler
  • Expansion
  • False dependences
  • Memory-based dependences
  • Tiling

ASJC Scopus subject areas

  • Software
  • Information Systems
  • Hardware and Architecture

Fingerprint Dive into the research topics of 'Improved loop tiling based on the removal of spurious false dependences'. Together they form a unique fingerprint.

Cite this