[llvm] r240583 - opt: Add option to strip or add llvm value names
Matthias Braun
matze at braunis.de
Wed Jun 24 13:03:33 PDT 2015
Author: matze
Date: Wed Jun 24 15:03:33 2015
New Revision: 240583
URL: http://llvm.org/viewvc/llvm-project?rev=240583&view=rev
Log:
opt: Add option to strip or add llvm value names
Modified:
llvm/trunk/tools/opt/opt.cpp
Modified: llvm/trunk/tools/opt/opt.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt/opt.cpp?rev=240583&r1=240582&r2=240583&view=diff
==============================================================================
--- llvm/trunk/tools/opt/opt.cpp (original)
+++ llvm/trunk/tools/opt/opt.cpp Wed Jun 24 15:03:33 2015
@@ -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(T
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().
More information about the llvm-commits
mailing list