Skip CFI for dead functions.

Differential Revision: https://reviews.llvm.org/D33805

llvm-svn: 304578
diff --git a/llvm/test/Transforms/LowerTypeTests/Inputs/import-unsat.yaml b/llvm/test/Transforms/LowerTypeTests/Inputs/import-unsat.yaml
index b7a1d20..cfac379 100644
--- a/llvm/test/Transforms/LowerTypeTests/Inputs/import-unsat.yaml
+++ b/llvm/test/Transforms/LowerTypeTests/Inputs/import-unsat.yaml
@@ -1,7 +1,8 @@
 ---
 GlobalValueMap:
   42:
-    - TypeTests: [123]
+    - Live: true
+      TypeTests: [123]
 TypeIdMap:
   typeid1:
     TTRes:
diff --git a/llvm/test/Transforms/LowerTypeTests/Inputs/use-typeid1-dead.yaml b/llvm/test/Transforms/LowerTypeTests/Inputs/use-typeid1-dead.yaml
new file mode 100644
index 0000000..7baa02a
--- /dev/null
+++ b/llvm/test/Transforms/LowerTypeTests/Inputs/use-typeid1-dead.yaml
@@ -0,0 +1,7 @@
+---
+GlobalValueMap:
+  42:
+    - Live: false
+      TypeTests: [14276520915468743435] # guid("typeid1")
+WithGlobalValueDeadStripping: true
+...
diff --git a/llvm/test/Transforms/LowerTypeTests/Inputs/use-typeid1-typeid2.yaml b/llvm/test/Transforms/LowerTypeTests/Inputs/use-typeid1-typeid2.yaml
index 031b2e8..f30257c 100644
--- a/llvm/test/Transforms/LowerTypeTests/Inputs/use-typeid1-typeid2.yaml
+++ b/llvm/test/Transforms/LowerTypeTests/Inputs/use-typeid1-typeid2.yaml
@@ -1,5 +1,6 @@
 ---
 GlobalValueMap:
   42:
-    - TypeTests: [14276520915468743435, 15427464259790519041] # guid("typeid1"), guid("typeid2")
+    - Live: true
+      TypeTests: [14276520915468743435, 15427464259790519041] # guid("typeid1"), guid("typeid2")
 ...
diff --git a/llvm/test/Transforms/LowerTypeTests/export-dead.ll b/llvm/test/Transforms/LowerTypeTests/export-dead.ll
new file mode 100644
index 0000000..265402b
--- /dev/null
+++ b/llvm/test/Transforms/LowerTypeTests/export-dead.ll
@@ -0,0 +1,14 @@
+; The only use of "typeid1" is in a dead function. Export nothing.
+
+; RUN: opt -S -lowertypetests -lowertypetests-summary-action=export -lowertypetests-read-summary=%S/Inputs/use-typeid1-dead.yaml -lowertypetests-write-summary=%t < %s | FileCheck %s
+; RUN: FileCheck --check-prefix=SUMMARY %s < %t
+
+@foo = constant i32 42, !type !0
+
+!0 = !{i32 0, !"typeid1"}
+
+; CHECK-NOT: @__typeid_typeid1_global_addr =
+
+; SUMMARY:      TypeIdMap:
+; SUMMARY-NEXT: WithGlobalValueDeadStripping: true
+; SUMMARY-NEXT: ...
diff --git a/llvm/test/Transforms/LowerTypeTests/export-nothing.ll b/llvm/test/Transforms/LowerTypeTests/export-nothing.ll
index 9ab41b5..8ad3315 100644
--- a/llvm/test/Transforms/LowerTypeTests/export-nothing.ll
+++ b/llvm/test/Transforms/LowerTypeTests/export-nothing.ll
@@ -4,4 +4,5 @@
 ; CHECK: ---
 ; CHECK-NEXT: GlobalValueMap:
 ; CHECK-NEXT: TypeIdMap:
+; CHECK-NEXT: WithGlobalValueDeadStripping: false
 ; CHECK-NEXT: ...
diff --git a/llvm/test/Transforms/LowerTypeTests/import-unsat.ll b/llvm/test/Transforms/LowerTypeTests/import-unsat.ll
index 76b2440..6cb9b26 100644
--- a/llvm/test/Transforms/LowerTypeTests/import-unsat.ll
+++ b/llvm/test/Transforms/LowerTypeTests/import-unsat.ll
@@ -4,7 +4,10 @@
 
 ; SUMMARY:      GlobalValueMap:
 ; SUMMARY-NEXT:   42:
-; SUMMARY-NEXT:     - TypeTests: [ 123 ]
+; SUMMARY-NEXT:    - Linkage:             0
+; SUMMARY-NEXT:      NotEligibleToImport: false
+; SUMMARY-NEXT:      Live:                true
+; SUMMARY-NEXT:      TypeTests: [ 123 ]
 ; SUMMARY-NEXT: TypeIdMap:
 ; SUMMARY-NEXT:   typeid1:
 ; SUMMARY-NEXT:     TTRes:
diff --git a/llvm/test/Transforms/WholeProgramDevirt/Inputs/export.yaml b/llvm/test/Transforms/WholeProgramDevirt/Inputs/export.yaml
index 0f6f59d..71cf38b 100644
--- a/llvm/test/Transforms/WholeProgramDevirt/Inputs/export.yaml
+++ b/llvm/test/Transforms/WholeProgramDevirt/Inputs/export.yaml
@@ -1,7 +1,8 @@
 ---
 GlobalValueMap:
   42:
-    - TypeTestAssumeVCalls:
+    - Live: true
+      TypeTestAssumeVCalls:
         - GUID: 14276520915468743435  # typeid1
           Offset: 0
       TypeCheckedLoadVCalls:
diff --git a/llvm/test/Transforms/WholeProgramDevirt/Inputs/import-indir.yaml b/llvm/test/Transforms/WholeProgramDevirt/Inputs/import-indir.yaml
index 1cb3ad3..30159c5 100644
--- a/llvm/test/Transforms/WholeProgramDevirt/Inputs/import-indir.yaml
+++ b/llvm/test/Transforms/WholeProgramDevirt/Inputs/import-indir.yaml
@@ -1,7 +1,8 @@
 ---
 GlobalValueMap:
   42:
-    - TypeTestAssumeVCalls:
+    - Live: true
+      TypeTestAssumeVCalls:
         - GUID: 123
           Offset: 0
         - GUID: 456
diff --git a/llvm/test/Transforms/WholeProgramDevirt/export-nothing.ll b/llvm/test/Transforms/WholeProgramDevirt/export-nothing.ll
index e0814ef..4707eaa 100644
--- a/llvm/test/Transforms/WholeProgramDevirt/export-nothing.ll
+++ b/llvm/test/Transforms/WholeProgramDevirt/export-nothing.ll
@@ -4,4 +4,5 @@
 ; CHECK: ---
 ; CHECK-NEXT: GlobalValueMap:
 ; CHECK-NEXT: TypeIdMap:
+; CHECK-NEXT: WithGlobalValueDeadStripping: false
 ; CHECK-NEXT: ...
diff --git a/llvm/test/Transforms/WholeProgramDevirt/export-single-impl.ll b/llvm/test/Transforms/WholeProgramDevirt/export-single-impl.ll
index f4f3fd0..15de773 100644
--- a/llvm/test/Transforms/WholeProgramDevirt/export-single-impl.ll
+++ b/llvm/test/Transforms/WholeProgramDevirt/export-single-impl.ll
@@ -38,6 +38,7 @@
 ; SUMMARY-NEXT:         Kind:            SingleImpl
 ; SUMMARY-NEXT:         SingleImplName:  'vf4$merged'
 ; SUMMARY-NEXT:         ResByArg:
+; SUMMARY-NEXT: WithGlobalValueDeadStripping: false
 ; SUMMARY-NEXT: ...
 
 ; CHECK: @vt1 = constant void (i8*)* @vf1
diff --git a/llvm/test/Transforms/WholeProgramDevirt/export-uniform-ret-val.ll b/llvm/test/Transforms/WholeProgramDevirt/export-uniform-ret-val.ll
index 1d7030c..11b1c5d 100644
--- a/llvm/test/Transforms/WholeProgramDevirt/export-uniform-ret-val.ll
+++ b/llvm/test/Transforms/WholeProgramDevirt/export-uniform-ret-val.ll
@@ -1,8 +1,7 @@
 ; RUN: opt -wholeprogramdevirt -wholeprogramdevirt-summary-action=export -wholeprogramdevirt-read-summary=%S/Inputs/export.yaml -wholeprogramdevirt-write-summary=%t -S -o - %s | FileCheck %s
 ; RUN: FileCheck --check-prefix=SUMMARY %s < %t
 
-; SUMMARY:     - TypeTests:
-; SUMMARY-NEXT:  TypeTestAssumeVCalls:
+; SUMMARY-NOT: TypeTests:
 
 ; SUMMARY:      TypeIdMap:
 ; SUMMARY-NEXT:   typeid4:
diff --git a/llvm/test/Transforms/WholeProgramDevirt/export-unique-ret-val.ll b/llvm/test/Transforms/WholeProgramDevirt/export-unique-ret-val.ll
index 174a573..0878d01 100644
--- a/llvm/test/Transforms/WholeProgramDevirt/export-unique-ret-val.ll
+++ b/llvm/test/Transforms/WholeProgramDevirt/export-unique-ret-val.ll
@@ -1,8 +1,7 @@
 ; RUN: opt -wholeprogramdevirt -wholeprogramdevirt-summary-action=export -wholeprogramdevirt-read-summary=%S/Inputs/export.yaml -wholeprogramdevirt-write-summary=%t -S -o - %s | FileCheck %s
 ; RUN: FileCheck --check-prefix=SUMMARY %s < %t
 
-; SUMMARY:     - TypeTests:
-; SUMMARY-NEXT:  TypeTestAssumeVCalls:
+; SUMMARY-NOT:  TypeTests:
 
 ; SUMMARY:      TypeIdMap:
 ; SUMMARY-NEXT:   typeid3:
diff --git a/llvm/test/Transforms/WholeProgramDevirt/export-unsuccessful-checked.ll b/llvm/test/Transforms/WholeProgramDevirt/export-unsuccessful-checked.ll
index 0785ade..3132444 100644
--- a/llvm/test/Transforms/WholeProgramDevirt/export-unsuccessful-checked.ll
+++ b/llvm/test/Transforms/WholeProgramDevirt/export-unsuccessful-checked.ll
@@ -1,7 +1,7 @@
 ; RUN: opt -wholeprogramdevirt -wholeprogramdevirt-summary-action=export -wholeprogramdevirt-read-summary=%S/Inputs/export.yaml -wholeprogramdevirt-write-summary=%t -o /dev/null %s
 ; RUN: FileCheck %s < %t
 
-; CHECK:     - TypeTests: [ 15427464259790519041, 17525413373118030901 ]
+; CHECK:       TypeTests: [ 15427464259790519041, 17525413373118030901 ]
 ; CHECK-NEXT:  TypeTestAssumeVCalls:
 
 @vt1a = constant void (i8*)* @vf1a, !type !0
diff --git a/llvm/test/Transforms/WholeProgramDevirt/import-indir.ll b/llvm/test/Transforms/WholeProgramDevirt/import-indir.ll
index 1de9352..73c982b 100644
--- a/llvm/test/Transforms/WholeProgramDevirt/import-indir.ll
+++ b/llvm/test/Transforms/WholeProgramDevirt/import-indir.ll
@@ -4,7 +4,9 @@
 
 ; SUMMARY:     GlobalValueMap:
 ; SUMMARY-NEXT:  42:
-; SUMMARY-NEXT:    - TypeTests:
+; SUMMARY-NEXT:    - Linkage:             0
+; SUMMARY-NEXT:      NotEligibleToImport: false
+; SUMMARY-NEXT:      Live:                true
 ; SUMMARY-NEXT:      TypeTestAssumeVCalls:
 ; SUMMARY-NEXT:        - GUID:            123
 ; SUMMARY-NEXT:          Offset:          0