diff options
author | Tobias Grosser <tobias@grosser.es> | 2017-02-09 23:12:22 +0000 |
---|---|---|
committer | Tobias Grosser <tobias@grosser.es> | 2017-02-09 23:12:22 +0000 |
commit | 889830b1c56d2b98929c07c6baea00d0c62025e6 (patch) | |
tree | 5af33ec717f2f0c435eb1cba4e8ac72958156b4c /polly/include | |
parent | cea1e4e79a76734bacbb76ab99ba267aca7e7499 (diff) | |
download | bcm5719-llvm-889830b1c56d2b98929c07c6baea00d0c62025e6.tar.gz bcm5719-llvm-889830b1c56d2b98929c07c6baea00d0c62025e6.zip |
[ScopInfo] Use ScopArrayInfo instead of base address
When building alias groups, we sort different ScopArrays into unrelated groups.
Historically we identified arrays through their base pointer, as no
ScopArrayInfo class was yet available. This change changes the alias group
construction to reference arrays through their ScopArrayInfo object.
This change removes unnecessary uses of MemoryAddress::getBaseAddr() in
preparation for https://reviews.llvm.org/D28518.
llvm-svn: 294649
Diffstat (limited to 'polly/include')
-rw-r--r-- | polly/include/polly/ScopInfo.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/polly/include/polly/ScopInfo.h b/polly/include/polly/ScopInfo.h index 1ee17c2696f..2bcacb0487a 100644 --- a/polly/include/polly/ScopInfo.h +++ b/polly/include/polly/ScopInfo.h @@ -2290,13 +2290,13 @@ public: /// for all memory accesses inside the Scop. For each alias set we then map /// the aliasing pointers back to the memory accesses we know, thus obtain /// groups of memory accesses which might alias. We also collect the set of - /// base pointers through which memory is written. + /// arrays through which memory is written. /// /// @param AA A reference to the alias analysis. /// - /// @returns A pair consistent of a vector of alias groups and a set of values - /// that are used as base pointers for write accesses. - std::tuple<AliasGroupVectorTy, DenseSet<Value *>> + /// @returns A pair consistent of a vector of alias groups and a set of arrays + /// through which memory is written. + std::tuple<AliasGroupVectorTy, DenseSet<const ScopArrayInfo *>> buildAliasGroupsForAccesses(AliasAnalysis &AA); /// Split alias groups by iteration domains. @@ -2311,12 +2311,12 @@ public: /// Build a given alias group and its access data. /// /// @param AliasGroup The alias group to build. - /// @param HasWriteAccess A set of base pointer values for through which - /// memory is not only read, but also written. + /// @param HasWriteAccess A set of arrays through which memory is not only + /// read, but also written. /// /// @returns True if __no__ error occurred, false otherwise. bool buildAliasGroup(Scop::AliasGroupTy &AliasGroup, - DenseSet<Value *> HasWriteAccess); + DenseSet<const ScopArrayInfo *> HasWriteAccess); /// Return all alias groups for this SCoP. const MinMaxVectorPairVectorTy &getAliasGroups() const { |