aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/TableGen/CodeGenDAGPatterns.cpp
diff options
context:
space:
mode:
authorGroverkss <groverkss@gmail.com>2021-10-16 12:15:31 +0530
committerGroverkss <groverkss@gmail.com>2021-10-16 12:16:42 +0530
commit52d6c5df85faa7bfeb1887a75e3fbdb22efaaf94 (patch)
treeb9b4538b1df4d3569643132a7f20cf1394264ddc /llvm/utils/TableGen/CodeGenDAGPatterns.cpp
parent9aa6c72b92b6c89cc6d23b693257df9af7de2d15 (diff)
downloadllvm-52d6c5df85faa7bfeb1887a75e3fbdb22efaaf94.zip
llvm-52d6c5df85faa7bfeb1887a75e3fbdb22efaaf94.tar.gz
llvm-52d6c5df85faa7bfeb1887a75e3fbdb22efaaf94.tar.bz2
[MLIR] Generalize Affine dependence analysis using Affine Relations
This patch removes code very specific to affine dependence analysis and refactors it as a FlatAfffineRelation. A FlatAffineRelation represents a set of ordered pairs (domain -> range) where "domain" and "range" are tuples of identifiers. These relations are used to represent an "access relation" for memory access on a memref. An access relation maps elements of an iteration domain to the element(s) of an array domain accessed by that iteration of the associated statement through some array reference. The dependence relation representing the dependence constraints between two memory accesses can be built by composing the access relation of the destination access by the inverse of the access relation of source access. This patch does not change the functionality of the existing dependence analysis in checkMemrefAccessDependence, but refactors it to use FlatAffineRelations to deduplicate code and enable code reuse for future development of features like scheduling, value-based dependence analysis, etc. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D110563
Diffstat (limited to 'llvm/utils/TableGen/CodeGenDAGPatterns.cpp')
0 files changed, 0 insertions, 0 deletions