aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/FuncletLayout.cpp
diff options
context:
space:
mode:
authorDevin Coughlin <dcoughlin@apple.com>2015-10-01 20:09:11 +0000
committerDevin Coughlin <dcoughlin@apple.com>2015-10-01 20:09:11 +0000
commit195b3b0074873946dfcd5514aaa8a996a7d0138e (patch)
treea46fceebc18ff096769d94ef5b9da3f5f594a194 /llvm/lib/CodeGen/FuncletLayout.cpp
parentff1dcc59d99a9341cff7295c407dad93101a9b3c (diff)
downloadllvm-195b3b0074873946dfcd5514aaa8a996a7d0138e.zip
llvm-195b3b0074873946dfcd5514aaa8a996a7d0138e.tar.gz
llvm-195b3b0074873946dfcd5514aaa8a996a7d0138e.tar.bz2
[analyzer] Add TK_EntireMemSpace invalidation trait.
This commit supports Sean Eveson's work on loop widening. It is NFC for now. It adds a new TK_EntireMemSpace invalidation trait that, when applied to a MemSpaceRegion, indicates that the entire memory space should be invalidated. Clients can add this trait before invalidating. For example: RegionAndSymbolInvalidationTraits ITraits; ITraits.setTrait(MRMgr.getStackLocalsRegion(STC), RegionAndSymbolInvalidationTraits::TK_EntireMemSpace); This commit updates the existing logic invalidating global memspace regions for calls to additionally handle arbitrary memspaces. When generating initial clusters during cluster analysis we now add a cluster to the worklist if the memspace for its base is marked with TK_EntireMemSpace. This also moves the logic for invalidating globals from ClusterAnalysis to invalidateRegionsWorker so that it is not shared with removeDeadBindingsWorker. There are no explicit tests with this patch -- but when applied to Sean's patch for loop widening in http://reviews.llvm.org/D12358 and after updating his code to set the trait, the failing tests in that patch now pass. Differential Revision: http://reviews.llvm.org/D12993 llvm-svn: 249063
Diffstat (limited to 'llvm/lib/CodeGen/FuncletLayout.cpp')
0 files changed, 0 insertions, 0 deletions