<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">This was actuallu committed by accident as I learned there were already options for these features that I missed. For some reason there was never a mail about the revert commit on this list.</div><div class=""><br class=""></div><div class="">- Matthias</div><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 24, 2015, at 7:36 PM, Sean Silva <<a href="mailto:chisophugis@gmail.com" class="">chisophugis@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Please update docs/CommandGuide/opt.rst<div class=""><br class=""></div><div class="">IIRC correctly in the past Rafael spoke up against me adding features to opt (or was it llvm-link?) that weren't needed for testing. CC'ing him in case he has an opinion.</div><div class=""><br class=""></div><div class="">-- Sean Silva</div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Wed, Jun 24, 2015 at 1:03 PM, Matthias Braun <span dir="ltr" class=""><<a href="mailto:matze@braunis.de" target="_blank" class="">matze@braunis.de</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: matze<br class="">
Date: Wed Jun 24 15:03:33 2015<br class="">
New Revision: 240583<br class="">
<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D240583-26view-3Drev&d=AwMFAg&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=e54yghFmdqYet2xTUr2q0NSNr0ac7l6V0HFwggHi-uU&s=LSlFTGSJmEI3-WSOcjPzT0Ok6pg9NboHGc6daWmZYpo&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=240583&view=rev</a><br class="">
Log:<br class="">
opt: Add option to strip or add llvm value names<br class="">
<br class="">
Modified:<br class="">
    llvm/trunk/tools/opt/opt.cpp<br class="">
<br class="">
Modified: llvm/trunk/tools/opt/opt.cpp<br class="">
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_tools_opt_opt.cpp-3Frev-3D240583-26r1-3D240582-26r2-3D240583-26view-3Ddiff&d=AwMFAg&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=e54yghFmdqYet2xTUr2q0NSNr0ac7l6V0HFwggHi-uU&s=KrEZTBJ3VHtvLkoUTRnWCxjxKKHGnG8bmYeHo6pzLM4&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt/opt.cpp?rev=240583&r1=240582&r2=240583&view=diff</a><br class="">
==============================================================================<br class="">
--- llvm/trunk/tools/opt/opt.cpp (original)<br class="">
+++ llvm/trunk/tools/opt/opt.cpp Wed Jun 24 15:03:33 2015<br class="">
@@ -105,6 +105,12 @@ StripDebug("strip-debug",<br class="">
            cl::desc("Strip debugger symbol info from translation unit"));<br class="">
<br class="">
 static cl::opt<bool><br class="">
+StripValueNames("strip-value-names", cl::desc("Remove llvm value names"));<br class="">
+<br class="">
+static cl::opt<bool><br class="">
+NameValues("name-values", cl::desc("Give anonymous llvm values a name"));<br class="">
+<br class="">
+static cl::opt<bool><br class="">
 DisableInline("disable-inlining", cl::desc("Do not run the inliner pass"));<br class="">
<br class="">
 static cl::opt<bool><br class="">
@@ -281,6 +287,37 @@ static TargetMachine* GetTargetMachine(T<br class="">
                                         GetCodeGenOptLevel());<br class="">
 }<br class="">
<br class="">
+static void removeValueNames(Module &Mod) {<br class="">
+  for (Function &F : Mod) {<br class="">
+    for (BasicBlock &BB : F) {<br class="">
+      BB.setName("");<br class="">
+      for (Instruction &I : BB)<br class="">
+        I.setName("");<br class="">
+    }<br class="">
+  }<br class="">
+}<br class="">
+<br class="">
+static void nameValuesInFunction(Function &F) {<br class="">
+  bool FirstBB = true;<br class="">
+  for (BasicBlock &BB : F) {<br class="">
+    if (!BB.hasName())<br class="">
+      BB.setName(FirstBB ? "entry" : "BB");<br class="">
+    FirstBB = false;<br class="">
+<br class="">
+    for (Instruction &I : BB) {<br class="">
+      if (I.getType()->isVoidTy())<br class="">
+        continue;<br class="">
+      if (!I.hasName())<br class="">
+        I.setName("v");<br class="">
+    }<br class="">
+  }<br class="">
+}<br class="">
+<br class="">
+static void nameValues(Module &Mod) {<br class="">
+  for (Function &F : Mod)<br class="">
+    nameValuesInFunction(F);<br class="">
+}<br class="">
+<br class="">
 #ifdef LINK_POLLY_INTO_TOOLS<br class="">
 namespace polly {<br class="">
 void initializePollyPasses(llvm::PassRegistry &Registry);<br class="">
@@ -351,6 +388,12 @@ int main(int argc, char **argv) {<br class="">
   if (StripDebug)<br class="">
     StripDebugInfo(*M);<br class="">
<br class="">
+  if (StripValueNames)<br class="">
+    removeValueNames(*M);<br class="">
+<br class="">
+  if (NameValues)<br class="">
+    nameValues(*M);<br class="">
+<br class="">
   // Immediately run the verifier to catch any problems before starting up the<br class="">
   // pass pipelines.  Otherwise we can crash on broken code during<br class="">
   // doInitialization().<br class="">
<br class="">
<br class="">
_______________________________________________<br class="">
llvm-commits mailing list<br class="">
<a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a><br class="">
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br class="">
</blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></body></html>