<div dir="ltr">Hi Mehdi,<div><br></div><div>Just letting you know that I committed a bit of a workaround for -fsanitize-memory-track-origins after this, the backend instrumentation pass was depending on the name of the alloca as a way of getting the name of the variable. I figured though that reverting was probably a bit overkill here so I added the workaround in r263412 and am letting Evgeniy and Kostya know :)</div><div><br></div><div>-eric</div><div><br><br><div class="gmail_quote"><div dir="ltr">On Sun, Mar 13, 2016 at 2:10 PM Mehdi Amini via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: mehdi_amini<br>
Date: Sun Mar 13 16:05:23 2016<br>
New Revision: 263394<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=263394&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=263394&view=rev</a><br>
Log:<br>
Remove compile time PreserveName in favor of a runtime cc1 -discard-value-names option<br>
<br>
Summary:<br>
This flag is enabled by default in the driver when NDEBUG is set. It<br>
is forwarded on the LLVMContext to discard all value names (but<br>
GlobalValue) for performance purpose.<br>
<br>
This an improved version of D18024<br>
<br>
Reviewers: echristo, chandlerc<br>
<br>
Subscribers: cfe-commits<br>
<br>
Differential Revision: <a href="http://reviews.llvm.org/D18127" rel="noreferrer" target="_blank">http://reviews.llvm.org/D18127</a><br>
<br>
From: Mehdi Amini <<a href="mailto:mehdi.amini@apple.com" target="_blank">mehdi.amini@apple.com</a>><br>
<br>
Added:<br>
    cfe/trunk/test/CodeGenCXX/discard-name-values.cpp<br>
Modified:<br>
    cfe/trunk/include/clang/Driver/CC1Options.td<br>
    cfe/trunk/include/clang/Frontend/CodeGenOptions.def<br>
    cfe/trunk/lib/CodeGen/CGBuilder.h<br>
    cfe/trunk/lib/CodeGen/CGCall.cpp<br>
    cfe/trunk/lib/CodeGen/CGExpr.cpp<br>
    cfe/trunk/lib/CodeGen/CodeGenFunction.cpp<br>
    cfe/trunk/lib/CodeGen/ModuleBuilder.cpp<br>
    cfe/trunk/lib/Driver/Tools.cpp<br>
    cfe/trunk/lib/Frontend/CompilerInvocation.cpp<br>
    cfe/trunk/test/CodeGen/mips-byval-arg.c<br>
    cfe/trunk/test/CodeGen/mips-vector-arg.c<br>
    cfe/trunk/test/CodeGen/mips-zero-sized-struct.c<br>
    cfe/trunk/test/CodeGen/mips64-class-return.cpp<br>
    cfe/trunk/test/CodeGen/mips64-padding-arg.c<br>
    cfe/trunk/test/CodeGenCXX/debug-info-class.cpp<br>
    cfe/trunk/test/CodeGenCXX/stack-reuse.cpp<br>
<br>
Modified: cfe/trunk/include/clang/Driver/CC1Options.td<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/CC1Options.td?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/CC1Options.td?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/Driver/CC1Options.td (original)<br>
+++ cfe/trunk/include/clang/Driver/CC1Options.td Sun Mar 13 16:05:23 2016<br>
@@ -367,6 +367,8 @@ def code_completion_brief_comments : Fla<br>
   HelpText<"Include brief documentation comments in code-completion results.">;<br>
 def disable_free : Flag<["-"], "disable-free">,<br>
   HelpText<"Disable freeing of memory on exit">;<br>
+def discard_value_names : Flag<["-"], "discard-value-names">,<br>
+  HelpText<"Discard value names in LLVM IR">;<br>
 def load : Separate<["-"], "load">, MetaVarName<"<dsopath>">,<br>
   HelpText<"Load the named plugin (dynamic shared object)">;<br>
 def plugin : Separate<["-"], "plugin">, MetaVarName<"<name>">,<br>
<br>
Modified: cfe/trunk/include/clang/Frontend/CodeGenOptions.def<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/CodeGenOptions.def?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/CodeGenOptions.def?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/include/clang/Frontend/CodeGenOptions.def (original)<br>
+++ cfe/trunk/include/clang/Frontend/CodeGenOptions.def Sun Mar 13 16:05:23 2016<br>
@@ -43,6 +43,7 @@ CODEGENOPT(DataSections      , 1, 0) ///<br>
 CODEGENOPT(UniqueSectionNames, 1, 1) ///< Set for -funique-section-names.<br>
 CODEGENOPT(DisableFPElim     , 1, 0) ///< Set when -fomit-frame-pointer is enabled.<br>
 CODEGENOPT(DisableFree       , 1, 0) ///< Don't free memory.<br>
+CODEGENOPT(DiscardValueNames , 1, 0) ///< Discard Value Names from the IR (LLVMContext flag)<br>
 CODEGENOPT(DisableGCov       , 1, 0) ///< Don't run the GCov pass, for testing.<br>
 CODEGENOPT(DisableLLVMOpts   , 1, 0) ///< Don't run any optimizations, for use in<br>
                                      ///< getting .bc files that correspond to the<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CGBuilder.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuilder.h?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuilder.h?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CGBuilder.h (original)<br>
+++ cfe/trunk/lib/CodeGen/CGBuilder.h Sun Mar 13 16:05:23 2016<br>
@@ -23,9 +23,7 @@ class CodeGenFunction;<br>
 /// \brief This is an IRBuilder insertion helper that forwards to<br>
 /// CodeGenFunction::InsertHelper, which adds necessary metadata to<br>
 /// instructions.<br>
-template <bool PreserveNames><br>
-class CGBuilderInserter<br>
-    : protected llvm::IRBuilderDefaultInserter<PreserveNames> {<br>
+class CGBuilderInserter : protected llvm::IRBuilderDefaultInserter {<br>
 public:<br>
   CGBuilderInserter() = default;<br>
   explicit CGBuilderInserter(CodeGenFunction *CGF) : CGF(CGF) {}<br>
@@ -39,17 +37,10 @@ private:<br>
   CodeGenFunction *CGF = nullptr;<br>
 };<br>
<br>
-// Don't preserve names on values in an optimized build.<br>
-#ifdef NDEBUG<br>
-#define PreserveNames false<br>
-#else<br>
-#define PreserveNames true<br>
-#endif<br>
+typedef CGBuilderInserter CGBuilderInserterTy;<br>
<br>
-typedef CGBuilderInserter<PreserveNames> CGBuilderInserterTy;<br>
-<br>
-typedef llvm::IRBuilder<PreserveNames, llvm::ConstantFolder,<br>
-                        CGBuilderInserterTy> CGBuilderBaseTy;<br>
+typedef llvm::IRBuilder<llvm::ConstantFolder, CGBuilderInserterTy><br>
+    CGBuilderBaseTy;<br>
<br>
 class CGBuilderTy : public CGBuilderBaseTy {<br>
   /// Storing a reference to the type cache here makes it a lot easier<br>
@@ -305,8 +296,6 @@ public:<br>
   }<br>
 };<br>
<br>
-#undef PreserveNames<br>
-<br>
 }  // end namespace CodeGen<br>
 }  // end namespace clang<br>
<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CGCall.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCall.cpp?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCall.cpp?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CGCall.cpp (original)<br>
+++ cfe/trunk/lib/CodeGen/CGCall.cpp Sun Mar 13 16:05:23 2016<br>
@@ -3840,7 +3840,7 @@ RValue CodeGenFunction::EmitCall(const C<br>
   }<br>
<br>
   llvm::Instruction *CI = CS.getInstruction();<br>
-  if (Builder.isNamePreserving() && !CI->getType()->isVoidTy())<br>
+  if (!CI->getType()->isVoidTy())<br>
     CI->setName("call");<br>
<br>
   // Emit any writebacks immediately.  Arguably this should happen<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CGExpr.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExpr.cpp?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExpr.cpp?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CGExpr.cpp (original)<br>
+++ cfe/trunk/lib/CodeGen/CGExpr.cpp Sun Mar 13 16:05:23 2016<br>
@@ -66,8 +66,6 @@ Address CodeGenFunction::CreateTempAlloc<br>
 /// block.<br>
 llvm::AllocaInst *CodeGenFunction::CreateTempAlloca(llvm::Type *Ty,<br>
                                                     const Twine &Name) {<br>
-  if (!Builder.isNamePreserving())<br>
-    return new llvm::AllocaInst(Ty, nullptr, "", AllocaInsertPt);<br>
   return new llvm::AllocaInst(Ty, nullptr, Name, AllocaInsertPt);<br>
 }<br>
<br>
<br>
Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.cpp?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.cpp?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/CodeGenFunction.cpp (original)<br>
+++ cfe/trunk/lib/CodeGen/CodeGenFunction.cpp Sun Mar 13 16:05:23 2016<br>
@@ -747,9 +747,7 @@ void CodeGenFunction::StartFunction(Glob<br>
   // later.  Don't create this with the builder, because we don't want it<br>
   // folded.<br>
   llvm::Value *Undef = llvm::UndefValue::get(Int32Ty);<br>
-  AllocaInsertPt = new llvm::BitCastInst(Undef, Int32Ty, "", EntryBB);<br>
-  if (Builder.isNamePreserving())<br>
-    AllocaInsertPt->setName("allocapt");<br>
+  AllocaInsertPt = new llvm::BitCastInst(Undef, Int32Ty, "allocapt", EntryBB);<br>
<br>
   ReturnBlock = getJumpDestInCurrentScope("return");<br>
<br>
@@ -1862,26 +1860,14 @@ void CodeGenFunction::InsertHelper(llvm:<br>
     CGM.getSanitizerMetadata()->disableSanitizerForInstruction(I);<br>
 }<br>
<br>
-template <bool PreserveNames><br>
-void CGBuilderInserter<PreserveNames>::InsertHelper(<br>
+void CGBuilderInserter::InsertHelper(<br>
     llvm::Instruction *I, const llvm::Twine &Name, llvm::BasicBlock *BB,<br>
     llvm::BasicBlock::iterator InsertPt) const {<br>
-  llvm::IRBuilderDefaultInserter<PreserveNames>::InsertHelper(I, Name, BB,<br>
-                                                              InsertPt);<br>
+  llvm::IRBuilderDefaultInserter::InsertHelper(I, Name, BB, InsertPt);<br>
   if (CGF)<br>
     CGF->InsertHelper(I, Name, BB, InsertPt);<br>
 }<br>
<br>
-#ifdef NDEBUG<br>
-#define PreserveNames false<br>
-#else<br>
-#define PreserveNames true<br>
-#endif<br>
-template void CGBuilderInserter<PreserveNames>::InsertHelper(<br>
-    llvm::Instruction *I, const llvm::Twine &Name, llvm::BasicBlock *BB,<br>
-    llvm::BasicBlock::iterator InsertPt) const;<br>
-#undef PreserveNames<br>
-<br>
 static bool hasRequiredFeatures(const SmallVectorImpl<StringRef> &ReqFeatures,<br>
                                 CodeGenModule &CGM, const FunctionDecl *FD,<br>
                                 std::string &FirstMissing) {<br>
<br>
Modified: cfe/trunk/lib/CodeGen/ModuleBuilder.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/ModuleBuilder.cpp?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/ModuleBuilder.cpp?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/CodeGen/ModuleBuilder.cpp (original)<br>
+++ cfe/trunk/lib/CodeGen/ModuleBuilder.cpp Sun Mar 13 16:05:23 2016<br>
@@ -64,8 +64,9 @@ namespace {<br>
                       CoverageSourceInfo *CoverageInfo = nullptr)<br>
         : Diags(diags), Ctx(nullptr), HeaderSearchOpts(HSO),<br>
           PreprocessorOpts(PPO), CodeGenOpts(CGO), HandlingTopLevelDecls(0),<br>
-          CoverageInfo(CoverageInfo),<br>
-          M(new llvm::Module(ModuleName, C)) {}<br>
+          CoverageInfo(CoverageInfo), M(new llvm::Module(ModuleName, C)) {<br>
+      C.setDiscardValueNames(CGO.DiscardValueNames);<br>
+    }<br>
<br>
     ~CodeGeneratorImpl() override {<br>
       // There should normally not be any leftover inline method definitions.<br>
<br>
Modified: cfe/trunk/lib/Driver/Tools.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Driver/Tools.cpp (original)<br>
+++ cfe/trunk/lib/Driver/Tools.cpp Sun Mar 13 16:05:23 2016<br>
@@ -3712,6 +3712,8 @@ void Clang::ConstructJob(Compilation &C,<br>
 // Disable the verification pass in -asserts builds.<br>
 #ifdef NDEBUG<br>
   CmdArgs.push_back("-disable-llvm-verifier");<br>
+  // Discard LLVM value names in -asserts builds.<br>
+  CmdArgs.push_back("-discard-value-names");<br>
 #endif<br>
<br>
   // Set the main file name, so that debug info works even with<br>
<br>
Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)<br>
+++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Sun Mar 13 16:05:23 2016<br>
@@ -541,6 +541,7 @@ static bool ParseCodeGenArgs(CodeGenOpti<br>
   Opts.DisableFPElim =<br>
       (Args.hasArg(OPT_mdisable_fp_elim) || Args.hasArg(OPT_pg));<br>
   Opts.DisableFree = Args.hasArg(OPT_disable_free);<br>
+  Opts.DiscardValueNames = Args.hasArg(OPT_discard_value_names);<br>
   Opts.DisableTailCalls = Args.hasArg(OPT_mdisable_tail_calls);<br>
   Opts.FloatABI = Args.getLastArgValue(OPT_mfloat_abi);<br>
   if (Arg *A = Args.getLastArg(OPT_meabi)) {<br>
<br>
Modified: cfe/trunk/test/CodeGen/mips-byval-arg.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/mips-byval-arg.c?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/mips-byval-arg.c?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/mips-byval-arg.c (original)<br>
+++ cfe/trunk/test/CodeGen/mips-byval-arg.c Sun Mar 13 16:05:23 2016<br>
@@ -1,5 +1,5 @@<br>
-// RUN: %clang -target mipsel-unknown-linux -O3 -S -o - -emit-llvm %s | FileCheck %s -check-prefix=O32<br>
-// RUN: %clang -target mips64el-unknown-linux -O3 -S -mabi=n64 -o - -emit-llvm %s | FileCheck %s -check-prefix=N64<br>
+// RUN: %clang_cc1 -triple mipsel-unknown-linux -O3 -S -o - -emit-llvm %s | FileCheck %s -check-prefix=O32<br>
+// RUN: %clang_cc1 -triple mips64el-unknown-linux -O3 -S -target-abi n64 -o - -emit-llvm %s | FileCheck %s -check-prefix=N64<br>
<br>
 typedef struct {<br>
   float f[3];<br>
<br>
Modified: cfe/trunk/test/CodeGen/mips-vector-arg.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/mips-vector-arg.c?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/mips-vector-arg.c?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/mips-vector-arg.c (original)<br>
+++ cfe/trunk/test/CodeGen/mips-vector-arg.c Sun Mar 13 16:05:23 2016<br>
@@ -1,5 +1,5 @@<br>
-// RUN: %clang -target mipsel-unknown-linux -O3 -S -o - -emit-llvm %s | FileCheck %s -check-prefix=O32<br>
-// RUN: %clang -target mips64el-unknown-linux -O3 -S -mabi=n64 -o - -emit-llvm %s | FileCheck %s -check-prefix=N64<br>
+// RUN: %clang_cc1 -triple mipsel-unknown-linux -O3 -S -o - -emit-llvm %s | FileCheck %s -check-prefix=O32<br>
+// RUN: %clang_cc1 -triple mips64el-unknown-linux -O3 -S -target-abi n64 -o - -emit-llvm %s | FileCheck %s -check-prefix=N64<br>
<br>
 // check that<br>
 // 1. vector arguments are passed in integer registers<br>
<br>
Modified: cfe/trunk/test/CodeGen/mips-zero-sized-struct.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/mips-zero-sized-struct.c?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/mips-zero-sized-struct.c?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/mips-zero-sized-struct.c (original)<br>
+++ cfe/trunk/test/CodeGen/mips-zero-sized-struct.c Sun Mar 13 16:05:23 2016<br>
@@ -1,9 +1,9 @@<br>
-// RUN: %clang -target mips-unknown-linux-gnu -S -emit-llvm -o - %s | FileCheck -check-prefix=O32 %s<br>
-// RUN: %clang -target mipsel-unknown-linux-gnu -S -emit-llvm -o - %s | FileCheck -check-prefix=O32 %s<br>
-// RUN: %clang -target mips64-unknown-linux-gnu -S -emit-llvm -o - %s -mabi=n32 | FileCheck -check-prefix=N32 %s<br>
-// RUN: %clang -target mips64el-unknown-linux-gnu -S -emit-llvm -o - %s -mabi=n32 | FileCheck -check-prefix=N32 %s<br>
-// RUN: %clang -target mips64-unknown-linux-gnu -S -emit-llvm -o - %s | FileCheck -check-prefix=N64 %s<br>
-// RUN: %clang -target mips64el-unknown-linux-gnu -S -emit-llvm -o - %s | FileCheck -check-prefix=N64 %s<br>
+// RUN: %clang_cc1 -triple mips-unknown-linux-gnu -S -emit-llvm -o - %s | FileCheck -check-prefix=O32 %s<br>
+// RUN: %clang_cc1 -triple mipsel-unknown-linux-gnu -S -emit-llvm -o - %s | FileCheck -check-prefix=O32 %s<br>
+// RUN: %clang_cc1 -triple mips64-unknown-linux-gnu -S -emit-llvm -o - %s  -target-abi n32 | FileCheck -check-prefix=N32 %s<br>
+// RUN: %clang_cc1 -triple mips64el-unknown-linux-gnu -S -emit-llvm -o - %s  -target-abi n32 | FileCheck -check-prefix=N32 %s<br>
+// RUN: %clang_cc1 -triple mips64-unknown-linux-gnu -S -emit-llvm -o - %s | FileCheck -check-prefix=N64 %s<br>
+// RUN: %clang_cc1 -triple mips64el-unknown-linux-gnu -S -emit-llvm -o - %s | FileCheck -check-prefix=N64 %s<br>
<br>
 // O32: define void @fn28(%struct.T2* noalias sret %agg.result, i8 signext %arg0)<br>
 // N32: define void @fn28(i8 signext %arg0)<br>
<br>
Modified: cfe/trunk/test/CodeGen/mips64-class-return.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/mips64-class-return.cpp?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/mips64-class-return.cpp?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/mips64-class-return.cpp (original)<br>
+++ cfe/trunk/test/CodeGen/mips64-class-return.cpp Sun Mar 13 16:05:23 2016<br>
@@ -1,4 +1,4 @@<br>
-// RUN: %clang -target mips64el-unknown-linux -O3 -S -mabi=n64 -o - -emit-llvm %s | FileCheck %s<br>
+// RUN: %clang_cc1 -triple mips64el-unknown-linux -O3 -S -target-abi n64 -o - -emit-llvm %s | FileCheck %s<br>
<br>
 class B0 {<br>
   double d;<br>
<br>
Modified: cfe/trunk/test/CodeGen/mips64-padding-arg.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/mips64-padding-arg.c?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/mips64-padding-arg.c?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGen/mips64-padding-arg.c (original)<br>
+++ cfe/trunk/test/CodeGen/mips64-padding-arg.c Sun Mar 13 16:05:23 2016<br>
@@ -1,6 +1,6 @@<br>
-// RUN: %clang -target mipsel-unknown-linux -O3 -S -o - -emit-llvm %s | FileCheck %s -check-prefix=O32<br>
-// RUN: %clang -target mips64el-unknown-linux -O3 -S -mabi=n64 -o - -emit-llvm %s | FileCheck %s -check-prefix=N64<br>
-// RUN: %clang -target mipsel-unknown-linux -mfp64 -O3 -S -o - -emit-llvm %s | FileCheck %s -check-prefix=O32<br>
+// RUN: %clang_cc1 -triple mipsel-unknown-linux -O3 -S -o - -emit-llvm %s | FileCheck %s -check-prefix=O32<br>
+// RUN: %clang_cc1 -triple mips64el-unknown-linux -O3 -S -target-abi n64 -o - -emit-llvm %s | FileCheck %s -check-prefix=N64<br>
+// RUN: %clang_cc1 -triple mipsel-unknown-linux -target-feature "+fp64" -O3 -S -o - -emit-llvm %s | FileCheck %s -check-prefix=O32<br>
<br>
 typedef struct {<br>
   double d;<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/debug-info-class.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-class.cpp?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-class.cpp?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/debug-info-class.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/debug-info-class.cpp Sun Mar 13 16:05:23 2016<br>
@@ -83,9 +83,9 @@ int main(int argc, char **argv) {<br>
   return 0;<br>
 }<br>
<br>
-// RUN: %clang -target x86_64-unknown_unknown -emit-llvm -g -S %s -o - | FileCheck %s<br>
-// RUN: %clang -target i686-cygwin -emit-llvm -g -S %s -o - | FileCheck %s<br>
-// RUN: %clang -target armv7l-unknown-linux-gnueabihf -emit-llvm -g -S %s -o - | FileCheck %s<br>
+// RUN: %clang_cc1 -triple x86_64-unknown_unknown -emit-llvm -debug-info-kind=limited -fexceptions %s -o - | FileCheck %s<br>
+// RUN: %clang_cc1 -triple i686-cygwin -emit-llvm -debug-info-kind=limited -fexceptions %s -o - | FileCheck %s<br>
+// RUN: %clang_cc1 -triple armv7l-unknown-linux-gnueabihf -emit-llvm -debug-info-kind=limited -fexceptions %s -o - | FileCheck %s<br>
<br>
 // CHECK: invoke {{.+}} @_ZN1BD1Ev(%class.B* %b)<br>
 // CHECK-NEXT: unwind label %{{.+}}, !dbg ![[EXCEPTLOC:.*]]<br>
<br>
Added: cfe/trunk/test/CodeGenCXX/discard-name-values.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/discard-name-values.cpp?rev=263394&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/discard-name-values.cpp?rev=263394&view=auto</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/discard-name-values.cpp (added)<br>
+++ cfe/trunk/test/CodeGenCXX/discard-name-values.cpp Sun Mar 13 16:05:23 2016<br>
@@ -0,0 +1,10 @@<br>
+// RUN: %clang_cc1 -emit-llvm  -triple=armv7-apple-darwin -emit-llvm -std=c++11 %s -o - -O1 | FileCheck %s<br>
+// 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<br>
+<br>
+int foo(int bar) {<br>
+  return bar;<br>
+}<br>
+<br>
+// CHECK: ret i32 %bar<br>
+// DISCARDVALUE: ret i32 %0<br>
+<br>
<br>
Modified: cfe/trunk/test/CodeGenCXX/stack-reuse.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/stack-reuse.cpp?rev=263394&r1=263393&r2=263394&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/stack-reuse.cpp?rev=263394&r1=263393&r2=263394&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/test/CodeGenCXX/stack-reuse.cpp (original)<br>
+++ cfe/trunk/test/CodeGenCXX/stack-reuse.cpp Sun Mar 13 16:05:23 2016<br>
@@ -1,4 +1,4 @@<br>
-// RUN: %clang -target armv7l-unknown-linux-gnueabihf -S %s -o - -emit-llvm -O1 -disable-llvm-optzns | FileCheck %s<br>
+// RUN: %clang_cc1 -triple armv7-unknown-linux-gnueabihf %s -o - -emit-llvm -O1 | FileCheck %s<br>
<br>
 // Stack should be reused when possible, no need to allocate two separate slots<br>
 // if they have disjoint lifetime.<br>
@@ -21,7 +21,7 @@ struct Combiner {<br>
   S_large a, b;<br>
<br>
   Combiner(S_large);<br>
-  Combiner f();<br>
+  Combiner f();<br>
 };<br>
<br>
 extern S_small foo_small();<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div></div></div>