Switch to WeakVHs in the value mapper, and aggressively prune dead basic

blocks in the function cloner. This removes the last case of trivially
dead code that I've been seeing in the wild getting inlined, analyzed,
re-inlined, optimized, only to be deleted. Nukes a FIXME from the
cleanup tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153572 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chandler Carruth
2012-03-28 08:38:27 +00:00
parent 9fc5c83fb7
commit afff33001a
3 changed files with 24 additions and 14 deletions
-10
View File
@@ -130,16 +130,6 @@ define void @outer2(i32 %z, i1 %b) {
; make it through inlining.
; CHECK: define void @outer2
; CHECK-NOT: call
;
; FIXME: Currently, we aren't smart enough to delete the last dead basic block.
; However, we do make the condition a constant. Check that at least until we can
; start removing the block itself.
; CHECK: br i1 false, label %[[LABEL:[a-z0-9_.]+]],
; CHECK-NOT: call
; CHECK: [[LABEL]]:
; CHECK-NEXT: call void @f(i32 10)
; CHECK-NOT: call
;
; CHECK: ret void
entry: