diff options
| author | Tobias Grosser <tobias@grosser.es> | 2015-07-28 14:53:44 +0000 |
|---|---|---|
| committer | Tobias Grosser <tobias@grosser.es> | 2015-07-28 14:53:44 +0000 |
| commit | 922452285a55a4ede44f6cd4ffa745ee4ecb9ccb (patch) | |
| tree | 96de25f991b60d8074be43bda3a068cded4bb367 /polly/lib/Analysis/TempScopInfo.cpp | |
| parent | 280ee917d7932cce018fbcb18da708595103db50 (diff) | |
| download | bcm5719-llvm-922452285a55a4ede44f6cd4ffa745ee4ecb9ccb.tar.gz bcm5719-llvm-922452285a55a4ede44f6cd4ffa745ee4ecb9ccb.zip | |
Keep track of ScopArrayInfo objects that model PHI node storage
Summary:
When translating PHI nodes into memory dependences during code generation we
require two kinds of memory. 'Normal memory' as for all scalar dependences and
'PHI node memory' to store the incoming values of the PHI node. With this
patch we now mark and track these two kinds of memories, which we previously
incorrectly marked as a single memory object.
Being aware of PHI node storage makes code generation easier, as we do not need
to guess what kind of storage a scalar reference requires. This simplifies the
code nicely.
Reviewers: jdoerfert
Subscribers: pollydev, llvm-commits
Differential Revision: http://reviews.llvm.org/D11554
llvm-svn: 243420
Diffstat (limited to 'polly/lib/Analysis/TempScopInfo.cpp')
| -rw-r--r-- | polly/lib/Analysis/TempScopInfo.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/polly/lib/Analysis/TempScopInfo.cpp b/polly/lib/Analysis/TempScopInfo.cpp index 18eff7eff25..b476b68c53a 100644 --- a/polly/lib/Analysis/TempScopInfo.cpp +++ b/polly/lib/Analysis/TempScopInfo.cpp @@ -141,12 +141,14 @@ void TempScopInfo::buildPHIAccesses(PHINode *PHI, Region &R, Written = true; - IRAccess ScalarAccess(IRAccess::MUST_WRITE, PHI, ZeroOffset, 1, true); + IRAccess ScalarAccess(IRAccess::MUST_WRITE, PHI, ZeroOffset, 1, true, + /* IsPHI */ true); AccFuncMap[OpBB].push_back(std::make_pair(ScalarAccess, OpI)); } if (Written) { - IRAccess ScalarAccess(IRAccess::READ, PHI, ZeroOffset, 1, true); + IRAccess ScalarAccess(IRAccess::READ, PHI, ZeroOffset, 1, true, + /* IsPHI */ true); Functions.push_back(std::make_pair(ScalarAccess, PHI)); } } |

