summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp
diff options
context:
space:
mode:
authorDiego Trevino Ferrer <diegof30@gmail.com>2019-08-15 19:08:15 +0000
committerDiego Trevino Ferrer <diegof30@gmail.com>2019-08-15 19:08:15 +0000
commitef4ad1a8b63801253279f37fdf75716206f29f17 (patch)
treeb0bd1923c58b0c2bc6aadd93ace9bef4de5d6170 /llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp
parent1f2b727298de19a4e6de3fe28886628cec996b9b (diff)
downloadbcm5719-llvm-ef4ad1a8b63801253279f37fdf75716206f29f17.tar.gz
bcm5719-llvm-ef4ad1a8b63801253279f37fdf75716206f29f17.zip
Revert [Bugpoint redesign] Added Pass to Remove Global Variables
This reverts r368918 because it was unstable! It broke these builds: * http://lab.llvm.org:8011/builders/lld-x86_64-ubuntu-fast/builds/4649 * http://lab.llvm.org:8011/builders/clang-ppc64be-linux-lnt/builds/29966 * http://lab.llvm.org:8011/builders/clang-ppc64be-linux-lnt/builds/29964 But surprisingly this passed: * http://lab.llvm.org:8011/builders/clang-ppc64be-linux-lnt/builds/29965 llvm-svn: 369039
Diffstat (limited to 'llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp')
-rw-r--r--llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp71
1 files changed, 0 insertions, 71 deletions
diff --git a/llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp b/llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp
deleted file mode 100644
index efe30c4ac3c..00000000000
--- a/llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-//===- ReduceGlobalVars.cpp - Specialized Delta Pass ----------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a function which calls the Generic Delta pass in order
-// to reduce initialized Global Variables in the provided Module.
-//
-//===----------------------------------------------------------------------===//
-
-#include "ReduceGlobalVars.h"
-
-/// Removes all the Initialized GVs that aren't inside the desired Chunks.
-static void extractGVsFromModule(std::vector<Chunk> ChunksToKeep,
- Module *Program) {
- // Get GVs inside desired chunks
- std::set<GlobalVariable *> GVsToKeep;
- unsigned I = 0, GVCount = 0;
- for (auto &GV : Program->globals())
- if (GV.hasInitializer() && I < ChunksToKeep.size()) {
- if (ChunksToKeep[I].contains(++GVCount))
- GVsToKeep.insert(&GV);
- if (GVCount == ChunksToKeep[I].end)
- ++I;
- }
-
- // Delete out-of-chunk GVs and their uses
- std::vector<GlobalVariable *> ToRemove;
- std::vector<Instruction *> InstToRemove;
- for (auto &GV : Program->globals())
- if (GV.hasInitializer() && !GVsToKeep.count(&GV)) {
- for (auto U : GV.users())
- if (auto *Inst = dyn_cast<Instruction>(U))
- InstToRemove.push_back(Inst);
-
- GV.replaceAllUsesWith(UndefValue::get(GV.getType()));
- ToRemove.push_back(&GV);
- }
-
- // Delete Instruction uses of unwanted GVs
- for (auto *Inst : InstToRemove) {
- Inst->replaceAllUsesWith(UndefValue::get(Inst->getType()));
- Inst->eraseFromParent();
- }
-
- for (auto *GV : ToRemove)
- GV->eraseFromParent();
-}
-
-/// Counts the amount of initialized GVs and displays their
-/// respective name & index
-static int countGVs(Module *Program) {
- // TODO: Silence index with --quiet flag
- outs() << "----------------------------\n";
- outs() << "GlobalVariable Index Reference:\n";
- int GVCount = 0;
- for (auto &GV : Program->globals())
- if (GV.hasInitializer())
- outs() << "\t" << ++GVCount << ": " << GV.getName() << "\n";
- outs() << "----------------------------\n";
- return GVCount;
-}
-
-void llvm::reduceGlobalsDeltaPass(TestRunner &Test) {
- outs() << "*** Reducing GVs...\n";
- unsigned GVCount = countGVs(Test.getProgram());
- runDeltaPass(Test, GVCount, extractGVsFromModule);
-}
OpenPOWER on IntegriCloud