[ScopInfo/CodeGen] ExitPHI reads are implicit.
commitf9e97d47b5ed79a7470582cb71a3446c7b06633b
authorMichael Kruse <llvm@meinersbur.de>
Wed, 12 Oct 2016 16:31:09 +0000 (12 16:31 +0000)
committerMichael Kruse <llvm@meinersbur.de>
Wed, 12 Oct 2016 16:31:09 +0000 (12 16:31 +0000)
tree4b427abf31a9e74ed2f9ffe0b39ab8a3a48c9c7f
parent1a9049bf36caf0588727837424625f27991450b0
[ScopInfo/CodeGen] ExitPHI reads are implicit.

Under some conditions MK_Value read accessed where converted to MK_ExitPHI read
accessed. This is unexpected because MK_ExitPHI read accesses are implicit after
the scop execution. This behaviour was introduced in r265261, which fixed a
failed assertion/crash in CodeGen.

Instead, we fix this failure in CodeGen itself. createExitPHINodeMerges(),
despite its name, also handles accesses of kind MK_Value, only to skip them
because they access values that are usually not PHI nodes in the SCoP region's
exit block. Except in the situation observed in r265261.

Do not convert value accessed to ExitPHI accesses and do not handle
value accesses like ExitPHI accessed in CodeGen anymore.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@284023 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/ScopBuilder.cpp
lib/CodeGen/BlockGenerators.cpp
test/ScopInfo/exit-phi-1.ll
test/ScopInfo/exit-phi-2.ll [new file with mode: 0644]