r324127 - Emit label names according to -discard-value-names.

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 2 11:58:34 PST 2018


Author: ericwf
Date: Fri Feb  2 11:58:34 2018
New Revision: 324127

URL: http://llvm.org/viewvc/llvm-project?rev=324127&view=rev
Log:
 Emit label names according to -discard-value-names.

Summary:
Previously, Clang only emitted label names in assert builds.
However there is a CC1 option -discard-value-names that should have been used to control emission instead.
    
This patch removes the NDEBUG preprocessor block and instead allows LLVM to handle removing the names in accordance with the option.


Reviewers: erichkeane, aaron.ballman, majnemer

Reviewed By: aaron.ballman

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D42829

Modified:
    cfe/trunk/lib/CodeGen/CodeGenFunction.h
    cfe/trunk/test/CodeGenCXX/discard-name-values.cpp

Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.h?rev=324127&r1=324126&r2=324127&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CodeGenFunction.h (original)
+++ cfe/trunk/lib/CodeGen/CodeGenFunction.h Fri Feb  2 11:58:34 2018
@@ -1849,11 +1849,7 @@ public:
   llvm::BasicBlock *createBasicBlock(const Twine &name = "",
                                      llvm::Function *parent = nullptr,
                                      llvm::BasicBlock *before = nullptr) {
-#ifdef NDEBUG
-    return llvm::BasicBlock::Create(getLLVMContext(), "", parent, before);
-#else
     return llvm::BasicBlock::Create(getLLVMContext(), name, parent, before);
-#endif
   }
 
   /// getBasicBlockForLabel - Return the LLVM basicblock that the specified

Modified: cfe/trunk/test/CodeGenCXX/discard-name-values.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/discard-name-values.cpp?rev=324127&r1=324126&r2=324127&view=diff
==============================================================================
--- cfe/trunk/test/CodeGenCXX/discard-name-values.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/discard-name-values.cpp Fri Feb  2 11:58:34 2018
@@ -1,10 +1,29 @@
-// RUN: %clang_cc1 -emit-llvm  -triple=armv7-apple-darwin -emit-llvm -std=c++11 %s -o - -O1 | FileCheck %s
-// RUN: %clang_cc1 -emit-llvm  -triple=armv7-apple-darwin -emit-llvm -std=c++11 %s -o - -O1 -discard-value-names | FileCheck %s --check-prefix=DISCARDVALUE
+// RUN: %clang_cc1 -emit-llvm  -triple=armv7-apple-darwin -std=c++11 %s -o - -O1 \
+// RUN:    | FileCheck %s
+// RUN: %clang_cc1 -emit-llvm -triple=armv7-apple-darwin -std=c++11 %s -o - -O1 \
+// RUN:    -discard-value-names | FileCheck %s --check-prefix=DISCARDVALUE
 
-int foo(int bar) {
-  return bar;
-}
+extern "C" void branch();
+
+bool test(bool pred) {
+  // DISCARDVALUE: br i1 %0, label %2, label %3
+  // CHECK: br i1 %pred, label %if.then, label %if.end
+
+  if (pred) {
+    // DISCARDVALUE: ; <label>:2:
+    // DISCARDVALUE-NEXT: tail call void @branch()
+    // DISCARDVALUE-NEXT: br label %3
 
-// CHECK: ret i32 %bar
-// DISCARDVALUE: ret i32 %0
+    // CHECK: if.then:
+    // CHECK-NEXT: tail call void @branch()
+    // CHECK-NEXT: br label %if.end
+    branch();
+  }
 
+  // DISCARDVALUE: ; <label>:3:
+  // DISCARDVALUE-NEXT: ret i1 %0
+
+  // CHECK: if.end:
+  // CHECK-NEXT: ret i1 %pred
+  return pred;
+}




More information about the cfe-commits mailing list