[llvm-opt-report] Use -no-demangle to disable demangling
authorHal Finkel <hfinkel@anl.gov>
Fri, 7 Oct 2016 01:30:59 +0000 (01:30 +0000)
committerHal Finkel <hfinkel@anl.gov>
Fri, 7 Oct 2016 01:30:59 +0000 (01:30 +0000)
As this is intended to be a user-facing option, -no-demangle seems much better
than -demangle=0. Add testing for the option.

llvm-svn: 283516

llvm/test/tools/llvm-opt-report/func-x.test
llvm/tools/llvm-opt-report/OptReport.cpp

index 9368a3d..a697a58 100644 (file)
@@ -1,4 +1,5 @@
 RUN: llvm-opt-report -r %p %p/Inputs/qx.yaml | FileCheck -strict-whitespace %s
+RUN: llvm-opt-report -no-demangle -r %p %p/Inputs/qx.yaml | FileCheck -strict-whitespace -check-prefix=CHECK-NODEM %s
 RUN: llvm-opt-report -s -r %p %p/Inputs/qx.yaml | FileCheck -strict-whitespace -check-prefix=CHECK-SUCCINCT %s
 
 ; CHECK: < {{.*[/\]}}q.cpp
@@ -22,6 +23,27 @@ RUN: llvm-opt-report -s -r %p %p/Inputs/qx.yaml | FileCheck -strict-whitespace -
 ; CHECK-NEXT: 13         | }
 ; CHECK-NEXT: 14         | 
 
+; CHECK-NODEM: < {{.*[/\]}}q.cpp
+; CHECK-NODEM-NEXT:  1         | void bar();
+; CHECK-NODEM-NEXT:  2         | void foo(int n) {
+; CHECK-NODEM-NEXT:  {{\[\[}}
+; CHECK-NODEM-NEXT:   > _Z3fooi:
+; CHECK-NODEM-NEXT:  3         |   for (int i = 0; i < n; ++i)
+; CHECK-NODEM-NEXT:   > _Z5quackv, _Z6quack2v:
+; CHECK-NODEM-NEXT:  3  U4     |   for (int i = 0; i < n; ++i)
+; CHECK-NODEM-NEXT:  {{\]\]}}
+; CHECK-NODEM-NEXT:  4         |     bar();
+; CHECK-NODEM-NEXT:  5         | }
+; CHECK-NODEM-NEXT:  6         | 
+; CHECK-NODEM-NEXT:  7         | void quack() {
+; CHECK-NODEM-NEXT:  8 I       |   foo(4);
+; CHECK-NODEM-NEXT:  9         | }
+; CHECK-NODEM-NEXT: 10         | 
+; CHECK-NODEM-NEXT: 11         | void quack2() {
+; CHECK-NODEM-NEXT: 12 I       |   foo(4);
+; CHECK-NODEM-NEXT: 13         | }
+; CHECK-NODEM-NEXT: 14         | 
+
 ; CHECK-SUCCINCT: < {{.*[/\]}}q.cpp
 ; CHECK-SUCCINCT-NEXT:  1     | void bar();
 ; CHECK-SUCCINCT-NEXT:  2     | void foo(int n) {
index e9ab3fa..0e5d7b7 100644 (file)
@@ -59,8 +59,8 @@ static cl::opt<bool>
            cl::init(false), cl::cat(OptReportCategory));
 
 static cl::opt<bool>
-  Demangle("demangle", cl::desc("Demangle function names"), cl::init(true),
-           cl::cat(OptReportCategory));
+  NoDemangle("no-demangle", cl::desc("Don't demangle function names"),
+             cl::init(false), cl::cat(OptReportCategory));
 
 namespace {
 // For each location in the source file, the common per-transformation state
@@ -378,7 +378,7 @@ static bool writeReport(LocationInfoTy &LocationInfo) {
               OS << ", ";
 
             bool Printed = false;
-            if (Demangle) {
+            if (!NoDemangle) {
               int Status = 0;
               char *Demangled =
                 itaniumDemangle(FuncName.c_str(), nullptr, nullptr, &Status);