r263320 - Temporarily revert these patches:

Eric Christopher via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 11 18:24:59 PST 2016


To be clear these were due to test failures under Release (no Asserts)
coming from clang. Mehdi already has a fix in mind.

The bot I mention in followup to the original patch has the test failures.

-eric

On Fri, Mar 11, 2016 at 5:52 PM Eric Christopher via cfe-commits <
cfe-commits at lists.llvm.org> wrote:

> Author: echristo
> Date: Fri Mar 11 19:47:11 2016
> New Revision: 263320
>
> URL: http://llvm.org/viewvc/llvm-project?rev=263320&view=rev
> Log:
> Temporarily revert these patches:
>
> commit 60d9845f6a037122d9be9a6d92d4de617ef45b04
> Author: Mehdi Amini <mehdi.amini at apple.com>
> Date:   Fri Mar 11 18:48:02 2016 +0000
>
>     Fix clang crash: when CodeGenAction is initialized without a
>     context, use the member and not the parameter
>
>     From: Mehdi Amini <mehdi.amini at apple.com>
>
>     git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@263273
>     91177308-0d34-0410-b5e6-96231b3b80d8
>
> commit af7ce3bf04a75ad5124b457b805df26006bd215b
> Author: Mehdi Amini <mehdi.amini at apple.com>
> Date:   Fri Mar 11 17:32:58 2016 +0000
>
>     Fix build: use -> with pointers and not .
>
>     Silly typo.
>
>     From: Mehdi Amini <mehdi.amini at apple.com>
>
>     git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@263267
>     91177308-0d34-0410-b5e6-96231b3b80d8
>
> commit d0eea119192814954e7368c77d0dc5a9eeec1fbb
> Author: Mehdi Amini <mehdi.amini at apple.com>
> Date:   Fri Mar 11 17:15:44 2016 +0000
>
>     Remove compile time PreserveName switch based on NDEBUG
>
>     Summary:
>     Following r263086, we are now relying on a flag on the Context to
>     discard Value names in release builds.
>
>     Reviewers: chandlerc
>
>     Subscribers: cfe-commits
>
>     Differential Revision: http://reviews.llvm.org/D18024
>
>     From: Mehdi Amini <mehdi.amini at apple.com>
>
>     git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@263257
>     91177308-0d34-0410-b5e6-96231b3b80d8
>
> until we can fix the Release builds.
>
> This reverts commits 263257, 263267, 263273
>
> Modified:
>     cfe/trunk/lib/CodeGen/CGBuilder.h
>     cfe/trunk/lib/CodeGen/CGCall.cpp
>     cfe/trunk/lib/CodeGen/CGExpr.cpp
>     cfe/trunk/lib/CodeGen/CodeGenAction.cpp
>     cfe/trunk/lib/CodeGen/CodeGenFunction.cpp
>
> Modified: cfe/trunk/lib/CodeGen/CGBuilder.h
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuilder.h?rev=263320&r1=263319&r2=263320&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGBuilder.h (original)
> +++ cfe/trunk/lib/CodeGen/CGBuilder.h Fri Mar 11 19:47:11 2016
> @@ -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 llvm::IRBuilder<llvm::ConstantFolder, CGBuilderInserterTy>
> -    CGBuilderBaseTy;
> +typedef CGBuilderInserter<PreserveNames> CGBuilderInserterTy;
> +
> +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
>
>
> Modified: cfe/trunk/lib/CodeGen/CGCall.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCall.cpp?rev=263320&r1=263319&r2=263320&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGCall.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGCall.cpp Fri Mar 11 19:47:11 2016
> @@ -3840,7 +3840,7 @@ RValue CodeGenFunction::EmitCall(const C
>    }
>
>    llvm::Instruction *CI = CS.getInstruction();
> -  if (!CI->getType()->isVoidTy())
> +  if (Builder.isNamePreserving() && !CI->getType()->isVoidTy())
>      CI->setName("call");
>
>    // Emit any writebacks immediately.  Arguably this should happen
>
> Modified: cfe/trunk/lib/CodeGen/CGExpr.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExpr.cpp?rev=263320&r1=263319&r2=263320&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CGExpr.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CGExpr.cpp Fri Mar 11 19:47:11 2016
> @@ -66,6 +66,8 @@ Address CodeGenFunction::CreateTempAlloc
>  /// block.
>  llvm::AllocaInst *CodeGenFunction::CreateTempAlloca(llvm::Type *Ty,
>                                                      const Twine &Name) {
> +  if (!Builder.isNamePreserving())
> +    return new llvm::AllocaInst(Ty, nullptr, "", AllocaInsertPt);
>    return new llvm::AllocaInst(Ty, nullptr, Name, AllocaInsertPt);
>  }
>
>
> Modified: cfe/trunk/lib/CodeGen/CodeGenAction.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenAction.cpp?rev=263320&r1=263319&r2=263320&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CodeGenAction.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CodeGenAction.cpp Fri Mar 11 19:47:11 2016
> @@ -656,13 +656,7 @@ void BackendConsumer::DiagnosticHandlerI
>
>  CodeGenAction::CodeGenAction(unsigned _Act, LLVMContext *_VMContext)
>      : Act(_Act), VMContext(_VMContext ? _VMContext : new LLVMContext),
> -      OwnsVMContext(!_VMContext) {
> -#ifdef NDEBUG
> -  // FIXME: change this to be controlled by a cc1 flag that the driver
> passes,
> -  // on the model of --disable-free
> -  VMContext->setDiscardValueNames(true);
> -#endif
> -}
> +      OwnsVMContext(!_VMContext) {}
>
>  CodeGenAction::~CodeGenAction() {
>    TheModule.reset();
>
> Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.cpp?rev=263320&r1=263319&r2=263320&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CodeGenFunction.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CodeGenFunction.cpp Fri Mar 11 19:47:11 2016
> @@ -747,7 +747,9 @@ void CodeGenFunction::StartFunction(Glob
>    // later.  Don't create this with the builder, because we don't want it
>    // folded.
>    llvm::Value *Undef = llvm::UndefValue::get(Int32Ty);
> -  AllocaInsertPt = new llvm::BitCastInst(Undef, Int32Ty, "allocapt",
> EntryBB);
> +  AllocaInsertPt = new llvm::BitCastInst(Undef, Int32Ty, "", EntryBB);
> +  if (Builder.isNamePreserving())
> +    AllocaInsertPt->setName("allocapt");
>
>    ReturnBlock = getJumpDestInCurrentScope("return");
>
> @@ -1860,14 +1862,26 @@ void CodeGenFunction::InsertHelper(llvm:
>      CGM.getSanitizerMetadata()->disableSanitizerForInstruction(I);
>  }
>
> -void CGBuilderInserter::InsertHelper(
> +template <bool PreserveNames>
> +void CGBuilderInserter<PreserveNames>::InsertHelper(
>      llvm::Instruction *I, const llvm::Twine &Name, llvm::BasicBlock *BB,
>      llvm::BasicBlock::iterator InsertPt) const {
> -  llvm::IRBuilderDefaultInserter::InsertHelper(I, Name, BB, InsertPt);
> +  llvm::IRBuilderDefaultInserter<PreserveNames>::InsertHelper(I, Name, BB,
> +                                                              InsertPt);
>    if (CGF)
>      CGF->InsertHelper(I, Name, BB, InsertPt);
>  }
>
> +#ifdef NDEBUG
> +#define PreserveNames false
> +#else
> +#define PreserveNames true
> +#endif
> +template void CGBuilderInserter<PreserveNames>::InsertHelper(
> +    llvm::Instruction *I, const llvm::Twine &Name, llvm::BasicBlock *BB,
> +    llvm::BasicBlock::iterator InsertPt) const;
> +#undef PreserveNames
> +
>  static bool hasRequiredFeatures(const SmallVectorImpl<StringRef>
> &ReqFeatures,
>                                  CodeGenModule &CGM, const FunctionDecl
> *FD,
>                                  std::string &FirstMissing) {
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160312/16403dd4/attachment.html>


More information about the cfe-commits mailing list