[all-commits] [llvm/llvm-project] 52d6c5: [MLIR] Generalize Affine dependence analysis using...
Kunwar Shaanjeet Singh Grover via All-commits
all-commits at lists.llvm.org
Fri Oct 15 23:51:05 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 52d6c5df85faa7bfeb1887a75e3fbdb22efaaf94
https://github.com/llvm/llvm-project/commit/52d6c5df85faa7bfeb1887a75e3fbdb22efaaf94
Author: Groverkss <groverkss at gmail.com>
Date: 2021-10-16 (Sat, 16 Oct 2021)
Changed paths:
M mlir/include/mlir/Analysis/AffineAnalysis.h
M mlir/include/mlir/Analysis/AffineStructures.h
M mlir/lib/Analysis/AffineAnalysis.cpp
M mlir/lib/Analysis/AffineStructures.cpp
Log Message:
-----------
[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
More information about the All-commits
mailing list