[ScopBuilder] Pass ScopStmts around instead of BasicBlocks. NFC.
commitcb07f462e8f30ed809670c483d6addacdf72af1a
authorMichael Kruse <llvm@meinersbur.de>
Fri, 23 Jun 2017 17:55:36 +0000 (23 17:55 +0000)
committerMichael Kruse <llvm@meinersbur.de>
Fri, 23 Jun 2017 17:55:36 +0000 (23 17:55 +0000)
tree372819ba9620e3aaec6b2b5f1819c98607100cb3
parent10951b8081071e4c0f32d18267e0ea82ab5591b5
[ScopBuilder] Pass ScopStmts around instead of BasicBlocks. NFC.

During the construction of MemoryAccesses in ScopBuilder, BasicBlocks
were used in function parameters, assuming that the ScopStmt an be
directly derived from it. This won't be true anymore once we split
BasicBlocks into multiple ScopStmt. As a preparation for such a change
in the future, we instead pass the ScopStmt and avoid the use of
getStmtFor().

There are two occasions where a kind of mapping from BasicBlock to
ScopStmt is still required.

1. Get the statement representing the incoming block of a `PHINode`
   using `getLastStmtOf`.

2. One statement is required to write a scalar to be readable by those
   which need it. This is most often the statement which contains its
   definition, which we get using `getStmtFor(Instruction*)`.

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

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