[ScopInfo] Integrate ScalarDefUseChain into polly::Scop. NFC.
commit568c9231019f4f42a5163903bcbadbe3f136176f
authorMichael Kruse <llvm@meinersbur.de>
Wed, 19 Jul 2017 17:11:25 +0000 (19 17:11 +0000)
committerMichael Kruse <llvm@meinersbur.de>
Wed, 19 Jul 2017 17:11:25 +0000 (19 17:11 +0000)
treea3c3020ae54d63a95a5c294eebc2baf0cfa79d6d
parentd5272702adf1af70bb4c44e132a9063878a4f453
[ScopInfo] Integrate ScalarDefUseChain into polly::Scop. NFC.

Before this patch, ScalarDefUseChain was a tool used by DeLICM to find
all reads and writes of scalar accesses. It iterated once over all
accesses and stores the accesses into maps.

By integrating it into the Scop class, we can keep the maps up-to-date
without the need for recomputing them. It will be needed for more than
DeLICM in the future, such as SCoP simplification, code movement between
virtual statements, and array expansion (GSoC project).

Compared to ScalarUseDefChain, we save two maps by finding the ScopStmt
a Def/PHIRead must reside in, and use its already existing lookup
function to find the MemoryAccess.

Differential Revision: https://reviews.llvm.org/D35631

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@308495 91177308-0d34-0410-b5e6-96231b3b80d8
include/polly/ScopInfo.h
lib/Analysis/ScopInfo.cpp
lib/Transform/DeLICM.cpp