Re-reapply "[IR] Move optional data in llvm::Function into a hungoff uselist"
[oota-llvm.git] / lib / Transforms / IPO / GlobalDCE.cpp
index 1cc657458d6745114553dfc40970a918a6dfb895..9b276ed28e2e0e14604c97a78f5608747b4e492d 100644 (file)
@@ -215,14 +215,8 @@ void GlobalDCE::GlobalIsNeeded(GlobalValue *G) {
     // any globals used will be marked as needed.
     Function *F = cast<Function>(G);
 
     // any globals used will be marked as needed.
     Function *F = cast<Function>(G);
 
-    if (F->hasPrefixData())
-      MarkUsedGlobalsAsNeeded(F->getPrefixData());
-
-    if (F->hasPrologueData())
-      MarkUsedGlobalsAsNeeded(F->getPrologueData());
-
-    if (F->hasPersonalityFn())
-      MarkUsedGlobalsAsNeeded(F->getPersonalityFn());
+    for (Use &U : F->operands())
+      MarkUsedGlobalsAsNeeded(cast<Constant>(U.get()));
 
     for (BasicBlock &BB : *F)
       for (Instruction &I : BB)
 
     for (BasicBlock &BB : *F)
       for (Instruction &I : BB)