Changes

Summary

  1. Resolve lit failures in clang after 8ca4b3e's land (details)
  2. Fix lit test failures in clang-ppc* and clang-x64-windows-msvc (details)
  3. [MLIR] Generalize Affine dependence analysis using Affine Relations (details)
Commit 705387c5074bcca36d626882462ebbc2bcc3bed4 by aqjune
Resolve lit failures in clang after 8ca4b3e's land
The file was modifiedclang/test/CodeGen/ppc-mm-malloc-le.c
The file was modifiedclang/test/CodeGen/ppc-mm-malloc.c
The file was modifiedclang/test/Modules/cxx-irgen.cpp
The file was modifiedclang/test/Profile/cxx-lambda.cpp
Commit 9aa6c72b92b6c89cc6d23b693257df9af7de2d15 by aqjune
Fix lit test failures in clang-ppc* and clang-x64-windows-msvc
The file was modifiedclang/test/CodeGen/ppc-mm-malloc-le.c
The file was modifiedclang/test/CodeGenCXX/mangle-abi-tag.cpp
Commit 52d6c5df85faa7bfeb1887a75e3fbdb22efaaf94 by groverkss
[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
The file was modifiedmlir/include/mlir/Analysis/AffineAnalysis.h
The file was modifiedmlir/include/mlir/Analysis/AffineStructures.h
The file was modifiedmlir/lib/Analysis/AffineAnalysis.cpp
The file was modifiedmlir/lib/Analysis/AffineStructures.cpp