summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGBuilder.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/CodeGen/CGBuilder.h')
-rw-r--r--clang/lib/CodeGen/CGBuilder.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CGBuilder.h b/clang/lib/CodeGen/CGBuilder.h
index 027435d7c59..baba30d5bf6 100644
--- a/clang/lib/CodeGen/CGBuilder.h
+++ b/clang/lib/CodeGen/CGBuilder.h
@@ -23,7 +23,9 @@ class CodeGenFunction;
/// \brief This is an IRBuilder insertion helper that forwards to
/// CodeGenFunction::InsertHelper, which adds necessary metadata to
/// instructions.
-class CGBuilderInserter : protected llvm::IRBuilderDefaultInserter {
+template <bool PreserveNames>
+class CGBuilderInserter
+ : protected llvm::IRBuilderDefaultInserter<PreserveNames> {
public:
CGBuilderInserter() = default;
explicit CGBuilderInserter(CodeGenFunction *CGF) : CGF(CGF) {}
@@ -37,10 +39,17 @@ private:
CodeGenFunction *CGF = nullptr;
};
-typedef CGBuilderInserter CGBuilderInserterTy;
+// Don't preserve names on values in an optimized build.
+#ifdef NDEBUG
+#define PreserveNames false
+#else
+#define PreserveNames true
+#endif
+
+typedef CGBuilderInserter<PreserveNames> CGBuilderInserterTy;
-typedef llvm::IRBuilder<llvm::ConstantFolder, CGBuilderInserterTy>
- CGBuilderBaseTy;
+typedef llvm::IRBuilder<PreserveNames, llvm::ConstantFolder,
+ CGBuilderInserterTy> CGBuilderBaseTy;
class CGBuilderTy : public CGBuilderBaseTy {
/// Storing a reference to the type cache here makes it a lot easier
@@ -296,6 +305,8 @@ public:
}
};
+#undef PreserveNames
+
} // end namespace CodeGen
} // end namespace clang
OpenPOWER on IntegriCloud