summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2015-06-24 20:03:33 +0000
committerMatthias Braun <matze@braunis.de>2015-06-24 20:03:33 +0000
commita7f3f03329b99b39bb4052ff26914a811a03208f (patch)
treec6c5f02acc324cd6a8c2b85e882fc243e0f49aab
parentba3ecc3c804b05e725f46018690b58acb697f3b7 (diff)
downloadbcm5719-llvm-a7f3f03329b99b39bb4052ff26914a811a03208f.tar.gz
bcm5719-llvm-a7f3f03329b99b39bb4052ff26914a811a03208f.zip
opt: Add option to strip or add llvm value names
llvm-svn: 240583
-rw-r--r--llvm/tools/opt/opt.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/llvm/tools/opt/opt.cpp b/llvm/tools/opt/opt.cpp
index 55426e7b274..197dc4c7fa9 100644
--- a/llvm/tools/opt/opt.cpp
+++ b/llvm/tools/opt/opt.cpp
@@ -105,6 +105,12 @@ StripDebug("strip-debug",
cl::desc("Strip debugger symbol info from translation unit"));
static cl::opt<bool>
+StripValueNames("strip-value-names", cl::desc("Remove llvm value names"));
+
+static cl::opt<bool>
+NameValues("name-values", cl::desc("Give anonymous llvm values a name"));
+
+static cl::opt<bool>
DisableInline("disable-inlining", cl::desc("Do not run the inliner pass"));
static cl::opt<bool>
@@ -281,6 +287,37 @@ static TargetMachine* GetTargetMachine(Triple TheTriple, StringRef CPUStr,
GetCodeGenOptLevel());
}
+static void removeValueNames(Module &Mod) {
+ for (Function &F : Mod) {
+ for (BasicBlock &BB : F) {
+ BB.setName("");
+ for (Instruction &I : BB)
+ I.setName("");
+ }
+ }
+}
+
+static void nameValuesInFunction(Function &F) {
+ bool FirstBB = true;
+ for (BasicBlock &BB : F) {
+ if (!BB.hasName())
+ BB.setName(FirstBB ? "entry" : "BB");
+ FirstBB = false;
+
+ for (Instruction &I : BB) {
+ if (I.getType()->isVoidTy())
+ continue;
+ if (!I.hasName())
+ I.setName("v");
+ }
+ }
+}
+
+static void nameValues(Module &Mod) {
+ for (Function &F : Mod)
+ nameValuesInFunction(F);
+}
+
#ifdef LINK_POLLY_INTO_TOOLS
namespace polly {
void initializePollyPasses(llvm::PassRegistry &Registry);
@@ -351,6 +388,12 @@ int main(int argc, char **argv) {
if (StripDebug)
StripDebugInfo(*M);
+ if (StripValueNames)
+ removeValueNames(*M);
+
+ if (NameValues)
+ nameValues(*M);
+
// Immediately run the verifier to catch any problems before starting up the
// pass pipelines. Otherwise we can crash on broken code during
// doInitialization().
OpenPOWER on IntegriCloud