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@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.am...@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.am...@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.am...@apple.com> > Date: Fri Mar 11 17:32:58 2016 +0000 > > Fix build: use -> with pointers and not . > > Silly typo. > > From: Mehdi Amini <mehdi.am...@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.am...@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.am...@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@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits