OSDN Git Service

[PM] Remove weird marking of invalidated analyses as "preserved".
authorChandler Carruth <chandlerc@gmail.com>
Mon, 28 Nov 2016 10:42:21 +0000 (10:42 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Mon, 28 Nov 2016 10:42:21 +0000 (10:42 +0000)
commit0afff634e7550fd6569537fbf0ea33a39bbf8479
tree7e21eac5cf2359be9ae28af59e4609597f99afa8
parent6f0da3f936d586b289d15eac1c72b6a0141aa461
[PM] Remove weird marking of invalidated analyses as "preserved".

This never made a lot of sense. They've been invalidated for one IR unit
but they aren't really preserved in any normal sense. It seemed like it
would be an elegant way of communicating to outer IR units that pass
managers and adaptors had already handled invalidation, but we've since
ended up adding sets that model this more clearly: we're now using
the 'AllAnalysesOn<IRUnitT>' set to handle cases where the trick of
"preserving" invalidated analyses didn't work.

This patch moves to rely on that technique exclusively and removes the
cumbersome API aspect of updating the preserved set when doing
invalidation. This in turn will simplify a *number* of upcoming patches.

This has a side benefit of exposing a number of places where we were
failing to mark the 'AllAnalysesOn<IRUnitT>' set as preserved. This
patch fixes those, and with those fixes shouldn't change any observable
behavior.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288023 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/CGSCCPassManager.h
include/llvm/Analysis/LoopPassManager.h
include/llvm/IR/PassManager.h
lib/Analysis/CGSCCPassManager.cpp