summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/Thumb2
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/test/CodeGen/Thumb2
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/test/CodeGen/Thumb2')
-rw-r--r--llvm/test/CodeGen/Thumb2/v8_IT_5.ll2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/Thumb2/v8_IT_5.ll b/llvm/test/CodeGen/Thumb2/v8_IT_5.ll
index d8d60413cb0..5e7a40299ed 100644
--- a/llvm/test/CodeGen/Thumb2/v8_IT_5.ll
+++ b/llvm/test/CodeGen/Thumb2/v8_IT_5.ll
@@ -9,7 +9,7 @@
; CHECK-NEXT: b
; CHECK: [[JUMPTARGET]]:{{.*}}%if.else173
; CHECK-NEXT: mov.w
-; CHECK-NEXT: bx lr
+; CHECK-NEXT: pop
; CHECK-NEXT: %if.else145
; CHECK-NEXT: mov.w
OpenPOWER on IntegriCloud