summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/AliasSetTracker.cpp
diff options
context:
space:
mode:
authorFrancis Visoiu Mistrih <fvisoiumistrih@apple.com>2017-05-15 23:13:35 +0000
committerFrancis Visoiu Mistrih <fvisoiumistrih@apple.com>2017-05-15 23:13:35 +0000
commitebbc7159e9b2bee125e819b8da3452fb6b3d5b53 (patch)
tree3e187be16e1c9b7b87c59ece6db1a0dccf118d37 /llvm/lib/Analysis/AliasSetTracker.cpp
parentcbb1fdf350bcac9b7b8618e431dfe0b5309fbefe (diff)
downloadbcm5719-llvm-ebbc7159e9b2bee125e819b8da3452fb6b3d5b53.tar.gz
bcm5719-llvm-ebbc7159e9b2bee125e819b8da3452fb6b3d5b53.zip
[ShrinkWrapping] Handle restores on no-return paths
Shrink-wrapping uses post-dominators to find a restore point that post-dominates all the uses of CSR / stack. The way dominator trees are modeled in LLVM today is that unreachable blocks are not present in a generic dominator tree, so, an unreachable node is dominated by anything: include/llvm/Support/GenericDomTree.h:467. Since for post-dominators, a no-return block is considered "unreachable", calling findNearestCommonDominator on an unreachable node A and a non-unreachable node B, will return B, which can be false. If we find such node, we bail out since there is no good restore point available. rdar://problem/30186931 llvm-svn: 303130
Diffstat (limited to 'llvm/lib/Analysis/AliasSetTracker.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud