[llvm] r222334 - Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool>

Michael Ilseman milseman at apple.com
Wed Nov 19 13:19:43 PST 2014


> On Nov 18, 2014, at 11:49 PM, David Blaikie <dblaikie at gmail.com> wrote:
> 
> Author: dblaikie
> Date: Wed Nov 19 01:49:26 2014
> New Revision: 222334
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=222334&view=rev
> Log:
> Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool>
> 
> This is to be consistent with StringSet and ultimately with the standard
> library's associative container insert function.
> 
> This lead to updating SmallSet::insert to return pair<iterator, bool>,
> and then to update SmallPtrSet::insert to return pair<iterator, bool>,
> and then to update all the existing users of those functions...
> 
> Modified:
>    llvm/trunk/include/llvm/ADT/PostOrderIterator.h
>    llvm/trunk/include/llvm/ADT/SetVector.h
>    llvm/trunk/include/llvm/ADT/SmallPtrSet.h
>    llvm/trunk/include/llvm/ADT/SmallSet.h
>    llvm/trunk/include/llvm/Analysis/DominanceFrontierImpl.h
>    llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpressions.h
>    llvm/trunk/include/llvm/CodeGen/MachineDominators.h
>    llvm/trunk/include/llvm/Support/GenericDomTreeConstruction.h
>    llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp
>    llvm/trunk/lib/Analysis/CFG.cpp
>    llvm/trunk/lib/Analysis/CaptureTracking.cpp
>    llvm/trunk/lib/Analysis/CodeMetrics.cpp
>    llvm/trunk/lib/Analysis/ConstantFolding.cpp
>    llvm/trunk/lib/Analysis/IPA/InlineCost.cpp
>    llvm/trunk/lib/Analysis/IVUsers.cpp
>    llvm/trunk/lib/Analysis/InstructionSimplify.cpp
>    llvm/trunk/lib/Analysis/LazyCallGraph.cpp
>    llvm/trunk/lib/Analysis/Lint.cpp
>    llvm/trunk/lib/Analysis/MemoryBuiltins.cpp
>    llvm/trunk/lib/Analysis/MemoryDependenceAnalysis.cpp
>    llvm/trunk/lib/Analysis/PtrUseVisitor.cpp
>    llvm/trunk/lib/Analysis/ScalarEvolution.cpp
>    llvm/trunk/lib/Analysis/ScalarEvolutionExpander.cpp
>    llvm/trunk/lib/Analysis/StratifiedSets.h
>    llvm/trunk/lib/Analysis/ValueTracking.cpp
>    llvm/trunk/lib/AsmParser/LLParser.cpp
>    llvm/trunk/lib/CodeGen/AggressiveAntiDepBreaker.cpp
>    llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
>    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
>    llvm/trunk/lib/CodeGen/BranchFolding.cpp
>    llvm/trunk/lib/CodeGen/CalcSpillWeights.cpp
>    llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp
>    llvm/trunk/lib/CodeGen/EarlyIfConversion.cpp
>    llvm/trunk/lib/CodeGen/InlineSpiller.cpp
>    llvm/trunk/lib/CodeGen/LiveInterval.cpp
>    llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp
>    llvm/trunk/lib/CodeGen/MachineBasicBlock.cpp
>    llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp
>    llvm/trunk/lib/CodeGen/MachineInstrBundle.cpp
>    llvm/trunk/lib/CodeGen/MachineLICM.cpp
>    llvm/trunk/lib/CodeGen/MachineSink.cpp
>    llvm/trunk/lib/CodeGen/MachineTraceMetrics.cpp
>    llvm/trunk/lib/CodeGen/OptimizePHIs.cpp
>    llvm/trunk/lib/CodeGen/PHIElimination.cpp
>    llvm/trunk/lib/CodeGen/RegAllocFast.cpp
>    llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp
>    llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp
>    llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
>    llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp
>    llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
>    llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
>    llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
>    llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
>    llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
>    llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
>    llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
>    llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
>    llvm/trunk/lib/CodeGen/SjLjEHPrepare.cpp
>    llvm/trunk/lib/CodeGen/StackProtector.cpp
>    llvm/trunk/lib/CodeGen/TwoAddressInstructionPass.cpp
>    llvm/trunk/lib/IR/Constants.cpp
>    llvm/trunk/lib/IR/DIBuilder.cpp
>    llvm/trunk/lib/IR/DebugInfo.cpp
>    llvm/trunk/lib/IR/Type.cpp
>    llvm/trunk/lib/IR/Value.cpp
>    llvm/trunk/lib/IR/Verifier.cpp
>    llvm/trunk/lib/Linker/LinkModules.cpp
>    llvm/trunk/lib/Support/CommandLine.cpp
>    llvm/trunk/lib/Support/SmallPtrSet.cpp
>    llvm/trunk/lib/Target/AArch64/AArch64PromoteConstant.cpp
>    llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
>    llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp
>    llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp
>    llvm/trunk/lib/Target/X86/X86FloatingPoint.cpp
>    llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp
>    llvm/trunk/lib/Transforms/IPO/FunctionAttrs.cpp
>    llvm/trunk/lib/Transforms/IPO/GlobalDCE.cpp
>    llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp
>    llvm/trunk/lib/Transforms/IPO/Inliner.cpp
>    llvm/trunk/lib/Transforms/IPO/MergeFunctions.cpp
>    llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp
>    llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp
>    llvm/trunk/lib/Transforms/Instrumentation/AddressSanitizer.cpp
>    llvm/trunk/lib/Transforms/ObjCARC/DependencyAnalysis.cpp
>    llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
>    llvm/trunk/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp
>    llvm/trunk/lib/Transforms/Scalar/ADCE.cpp
>    llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp
>    llvm/trunk/lib/Transforms/Scalar/JumpThreading.cpp
>    llvm/trunk/lib/Transforms/Scalar/LoopInstSimplify.cpp
>    llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp
>    llvm/trunk/lib/Transforms/Scalar/Reassociate.cpp
>    llvm/trunk/lib/Transforms/Scalar/SCCP.cpp
>    llvm/trunk/lib/Transforms/Scalar/SROA.cpp
>    llvm/trunk/lib/Transforms/Scalar/SampleProfile.cpp
>    llvm/trunk/lib/Transforms/Scalar/ScalarReplAggregates.cpp
>    llvm/trunk/lib/Transforms/Scalar/TailRecursionElimination.cpp
>    llvm/trunk/lib/Transforms/Utils/GlobalStatus.cpp
>    llvm/trunk/lib/Transforms/Utils/Local.cpp
>    llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp
>    llvm/trunk/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
>    llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp
>    llvm/trunk/lib/Transforms/Utils/SimplifyIndVar.cpp
>    llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp
>    llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
>    llvm/trunk/utils/TableGen/CodeGenSchedule.cpp
>    llvm/trunk/utils/TableGen/SubtargetEmitter.cpp
> 
> Modified: llvm/trunk/include/llvm/ADT/PostOrderIterator.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/PostOrderIterator.h?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/ADT/PostOrderIterator.h (original)
> +++ llvm/trunk/include/llvm/ADT/PostOrderIterator.h Wed Nov 19 01:49:26 2014
> @@ -57,7 +57,7 @@ public:
>   // Return true if edge destination should be visited.
>   template<typename NodeType>
>   bool insertEdge(NodeType *From, NodeType *To) {
> -    return Visited.insert(To);
> +    return Visited.insert(To).second;
>   }
> 
>   // Called after all children of BB have been visited.
> 

There is another insertEdge() definition in the template specialization right below that struct (for External ownership). Apparently Clang/LLVM builds fine with the bug. If we don’t have any uses of that specialization, should “External" be removed, or do we want to just update it without a test/user? Maybe a unit test can reference the specialization?

I’m asking because I don’t know the community’s preference, but if someone were to have a po_iterator with external storage, then this will not compile.


> Modified: llvm/trunk/include/llvm/ADT/SetVector.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/SetVector.h?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/ADT/SetVector.h (original)
> +++ llvm/trunk/include/llvm/ADT/SetVector.h Wed Nov 19 01:49:26 2014
> @@ -100,7 +100,7 @@ public:
>   /// \brief Insert a new element into the SetVector.
>   /// \returns true iff the element was inserted into the SetVector.
>   bool insert(const value_type &X) {
> -    bool result = set_.insert(X);
> +    bool result = set_.insert(X).second;
>     if (result)
>       vector_.push_back(X);
>     return result;
> @@ -110,7 +110,7 @@ public:
>   template<typename It>
>   void insert(It Start, It End) {
>     for (; Start != End; ++Start)
> -      if (set_.insert(*Start))
> +      if (set_.insert(*Start).second)
>         vector_.push_back(*Start);
>   }
> 
> 
> Modified: llvm/trunk/include/llvm/ADT/SmallPtrSet.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/SmallPtrSet.h?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/ADT/SmallPtrSet.h (original)
> +++ llvm/trunk/include/llvm/ADT/SmallPtrSet.h Wed Nov 19 01:49:26 2014
> @@ -100,7 +100,7 @@ protected:
>   /// insert_imp - This returns true if the pointer was new to the set, false if
>   /// it was already in the set.  This is hidden from the client so that the
>   /// derived class can check that the right type of pointer is passed in.
> -  bool insert_imp(const void * Ptr);
> +  std::pair<const void *const *, bool> insert_imp(const void *Ptr);
> 
>   /// erase_imp - If the set contains the specified pointer, remove it and
>   /// return true, otherwise return false.  This is hidden from the client so
> @@ -253,10 +253,14 @@ protected:
>       : SmallPtrSetImplBase(SmallStorage, SmallSize) {}
> 
> public:
> +  typedef SmallPtrSetIterator<PtrType> iterator;
> +  typedef SmallPtrSetIterator<PtrType> const_iterator;
> +
>   /// insert - This returns true if the pointer was new to the set, false if it
>   /// was already in the set.
> -  bool insert(PtrType Ptr) {
> -    return insert_imp(PtrTraits::getAsVoidPointer(Ptr));
> +  std::pair<iterator, bool> insert(PtrType Ptr) {
> +    auto p = insert_imp(PtrTraits::getAsVoidPointer(Ptr));
> +    return std::make_pair(iterator(p.first, CurArray + CurArraySize), p.second);
>   }
> 
>   /// erase - If the set contains the specified pointer, remove it and return
> @@ -276,8 +280,6 @@ public:
>       insert(*I);
>   }
> 
> -  typedef SmallPtrSetIterator<PtrType> iterator;
> -  typedef SmallPtrSetIterator<PtrType> const_iterator;
>   inline iterator begin() const {
>     return iterator(CurArray, CurArray+CurArraySize);
>   }
> 
> Modified: llvm/trunk/include/llvm/ADT/SmallSet.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/SmallSet.h?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/ADT/SmallSet.h (original)
> +++ llvm/trunk/include/llvm/ADT/SmallSet.h Wed Nov 19 01:49:26 2014
> @@ -14,6 +14,7 @@
> #ifndef LLVM_ADT_SMALLSET_H
> #define LLVM_ADT_SMALLSET_H
> 
> +#include "llvm/ADT/None.h"
> #include "llvm/ADT/SmallPtrSet.h"
> #include "llvm/ADT/SmallVector.h"
> #include <set>
> @@ -60,16 +61,21 @@ public:
> 
>   /// insert - Insert an element into the set if it isn't already there.
>   /// Returns true if the element is inserted (it was not in the set before).
> -  bool insert(const T &V) {
> +  /// The first value of the returned pair is unused and provided for
> +  /// partial compatibility with the standard library self-associative container
> +  /// concept.
> +  // FIXME: Add iterators that abstract over the small and large form, and then
> +  // return those here.
> +  std::pair<NoneType, bool> insert(const T &V) {
>     if (!isSmall())
> -      return Set.insert(V).second;
> +      return std::make_pair(None, Set.insert(V).second);
> 
>     VIterator I = vfind(V);
>     if (I != Vector.end())    // Don't reinsert if it already exists.
> -      return false;
> +      return std::make_pair(None, false);
>     if (Vector.size() < N) {
>       Vector.push_back(V);
> -      return true;
> +      return std::make_pair(None, true);
>     }
> 
>     // Otherwise, grow from vector to set.
> @@ -78,7 +84,7 @@ public:
>       Vector.pop_back();
>     }
>     Set.insert(V);
> -    return true;
> +    return std::make_pair(None, true);
>   }
> 
>   template <typename IterT>
> 
> Modified: llvm/trunk/include/llvm/Analysis/DominanceFrontierImpl.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/DominanceFrontierImpl.h?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Analysis/DominanceFrontierImpl.h (original)
> +++ llvm/trunk/include/llvm/Analysis/DominanceFrontierImpl.h Wed Nov 19 01:49:26 2014
> @@ -172,7 +172,7 @@ ForwardDominanceFrontierBase<BlockT>::ca
>     DomSetType &S = this->Frontiers[currentBB];
> 
>     // Visit each block only once.
> -    if (visited.insert(currentBB)) {
> +    if (visited.insert(currentBB).second) {
>       // Loop over CFG successors to calculate DFlocal[currentNode]
>       for (auto SI = BlockTraits::child_begin(currentBB),
>                 SE = BlockTraits::child_end(currentBB);
> 
> Modified: llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpressions.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpressions.h?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpressions.h (original)
> +++ llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpressions.h Wed Nov 19 01:49:26 2014
> @@ -577,7 +577,7 @@ namespace llvm {
>     SmallPtrSet<const SCEV *, 8> Visited;
> 
>     void push(const SCEV *S) {
> -      if (Visited.insert(S) && Visitor.follow(S))
> +      if (Visited.insert(S).second && Visitor.follow(S))
>         Worklist.push_back(S);
>     }
>   public:
> 
> Modified: llvm/trunk/include/llvm/CodeGen/MachineDominators.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineDominators.h?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/MachineDominators.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/MachineDominators.h Wed Nov 19 01:49:26 2014
> @@ -303,7 +303,7 @@ public:
>   void recordSplitCriticalEdge(MachineBasicBlock *FromBB,
>                               MachineBasicBlock *ToBB,
>                               MachineBasicBlock *NewBB) {
> -    bool Inserted = NewBBs.insert(NewBB);
> +    bool Inserted = NewBBs.insert(NewBB).second;
>     (void)Inserted;
>     assert(Inserted &&
>            "A basic block inserted via edge splitting cannot appear twice");
> 
> Modified: llvm/trunk/include/llvm/Support/GenericDomTreeConstruction.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/GenericDomTreeConstruction.h?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Support/GenericDomTreeConstruction.h (original)
> +++ llvm/trunk/include/llvm/Support/GenericDomTreeConstruction.h Wed Nov 19 01:49:26 2014
> @@ -125,7 +125,7 @@ Eval(DominatorTreeBase<typename GraphT::
>     typename GraphT::NodeType* VAncestor = DT.Vertex[VInfo.Parent];
> 
>     // Process Ancestor first
> -    if (Visited.insert(VAncestor) && VInfo.Parent >= LastLinked) {
> +    if (Visited.insert(VAncestor).second && VInfo.Parent >= LastLinked) {
>       Work.push_back(VAncestor);
>       continue;
>     } 
> 
> Modified: llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp (original)
> +++ llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp Wed Nov 19 01:49:26 2014
> @@ -614,7 +614,7 @@ BasicAliasAnalysis::pointsToConstantMemo
>   Worklist.push_back(Loc.Ptr);
>   do {
>     const Value *V = GetUnderlyingObject(Worklist.pop_back_val(), DL);
> -    if (!Visited.insert(V)) {
> +    if (!Visited.insert(V).second) {
>       Visited.clear();
>       return AliasAnalysis::pointsToConstantMemory(Loc, OrLocal);
>     }
> @@ -1235,7 +1235,7 @@ BasicAliasAnalysis::aliasPHI(const PHINo
>       // sides are PHI nodes. In which case, this is O(m x n) time where 'm'
>       // and 'n' are the number of PHI sources.
>       return MayAlias;
> -    if (UniqueSrc.insert(PV1))
> +    if (UniqueSrc.insert(PV1).second)
>       V1Srcs.push_back(PV1);
>   }
> 
> 
> Modified: llvm/trunk/lib/Analysis/CFG.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/CFG.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/CFG.cpp (original)
> +++ llvm/trunk/lib/Analysis/CFG.cpp Wed Nov 19 01:49:26 2014
> @@ -45,7 +45,7 @@ void llvm::FindFunctionBackedges(const F
>     bool FoundNew = false;
>     while (I != succ_end(ParentBB)) {
>       BB = *I++;
> -      if (Visited.insert(BB)) {
> +      if (Visited.insert(BB).second) {
>         FoundNew = true;
>         break;
>       }
> @@ -141,7 +141,7 @@ static bool isPotentiallyReachableInner(
>   SmallSet<const BasicBlock*, 64> Visited;
>   do {
>     BasicBlock *BB = Worklist.pop_back_val();
> -    if (!Visited.insert(BB))
> +    if (!Visited.insert(BB).second)
>       continue;
>     if (BB == StopBB)
>       return true;
> 
> Modified: llvm/trunk/lib/Analysis/CaptureTracking.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/CaptureTracking.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/CaptureTracking.cpp (original)
> +++ llvm/trunk/lib/Analysis/CaptureTracking.cpp Wed Nov 19 01:49:26 2014
> @@ -239,7 +239,7 @@ void llvm::PointerMayBeCaptured(const Va
>         if (Count++ >= Threshold)
>           return Tracker->tooManyUses();
> 
> -        if (Visited.insert(&UU))
> +        if (Visited.insert(&UU).second)
>           if (Tracker->shouldExplore(&UU))
>             Worklist.push_back(&UU);
>       }
> 
> Modified: llvm/trunk/lib/Analysis/CodeMetrics.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/CodeMetrics.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/CodeMetrics.cpp (original)
> +++ llvm/trunk/lib/Analysis/CodeMetrics.cpp Wed Nov 19 01:49:26 2014
> @@ -40,7 +40,7 @@ static void completeEphemeralValues(Smal
>     const Value *V = WorkSet.front();
>     WorkSet.erase(WorkSet.begin());
> 
> -    if (!Visited.insert(V))
> +    if (!Visited.insert(V).second)
>       continue;
> 
>     // If all uses of this value are ephemeral, then so is this value.
> 
> Modified: llvm/trunk/lib/Analysis/ConstantFolding.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ConstantFolding.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/ConstantFolding.cpp (original)
> +++ llvm/trunk/lib/Analysis/ConstantFolding.cpp Wed Nov 19 01:49:26 2014
> @@ -981,7 +981,7 @@ ConstantFoldConstantExpressionImpl(const
>     // Recursively fold the ConstantExpr's operands. If we have already folded
>     // a ConstantExpr, we don't have to process it again.
>     if (ConstantExpr *NewCE = dyn_cast<ConstantExpr>(NewC)) {
> -      if (FoldedOps.insert(NewCE))
> +      if (FoldedOps.insert(NewCE).second)
>         NewC = ConstantFoldConstantExpressionImpl(NewCE, TD, TLI, FoldedOps);
>     }
>     Ops.push_back(NewC);
> 
> Modified: llvm/trunk/lib/Analysis/IPA/InlineCost.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/IPA/InlineCost.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/IPA/InlineCost.cpp (original)
> +++ llvm/trunk/lib/Analysis/IPA/InlineCost.cpp Wed Nov 19 01:49:26 2014
> @@ -977,7 +977,7 @@ ConstantInt *CallAnalyzer::stripAndCompu
>       break;
>     }
>     assert(V->getType()->isPointerTy() && "Unexpected operand type!");
> -  } while (Visited.insert(V));
> +  } while (Visited.insert(V).second);
> 
>   Type *IntPtrTy = DL->getIntPtrType(V->getContext());
>   return cast<ConstantInt>(ConstantInt::get(IntPtrTy, Offset));
> 
> Modified: llvm/trunk/lib/Analysis/IVUsers.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/IVUsers.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/IVUsers.cpp (original)
> +++ llvm/trunk/lib/Analysis/IVUsers.cpp Wed Nov 19 01:49:26 2014
> @@ -115,7 +115,7 @@ bool IVUsers::AddUsersImpl(Instruction *
>                            SmallPtrSetImpl<Loop*> &SimpleLoopNests) {
>   // Add this IV user to the Processed set before returning false to ensure that
>   // all IV users are members of the set. See IVUsers::isIVUserOrOperand.
> -  if (!Processed.insert(I))
> +  if (!Processed.insert(I).second)
>     return true;    // Instruction already handled.
> 
>   if (!SE->isSCEVable(I->getType()))
> @@ -145,7 +145,7 @@ bool IVUsers::AddUsersImpl(Instruction *
>   SmallPtrSet<Instruction *, 4> UniqueUsers;
>   for (Use &U : I->uses()) {
>     Instruction *User = cast<Instruction>(U.getUser());
> -    if (!UniqueUsers.insert(User))
> +    if (!UniqueUsers.insert(User).second)
>       continue;
> 
>     // Do not infinitely recurse on PHI nodes.
> 
> Modified: llvm/trunk/lib/Analysis/InstructionSimplify.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/InstructionSimplify.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/InstructionSimplify.cpp (original)
> +++ llvm/trunk/lib/Analysis/InstructionSimplify.cpp Wed Nov 19 01:49:26 2014
> @@ -631,7 +631,7 @@ static Constant *stripAndComputeConstant
>     }
>     assert(V->getType()->getScalarType()->isPointerTy() &&
>            "Unexpected operand type!");
> -  } while (Visited.insert(V));
> +  } while (Visited.insert(V).second);
> 
>   Constant *OffsetIntPtr = ConstantInt::get(IntPtrTy, Offset);
>   if (V->getType()->isVectorTy())
> 
> Modified: llvm/trunk/lib/Analysis/LazyCallGraph.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/LazyCallGraph.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/LazyCallGraph.cpp (original)
> +++ llvm/trunk/lib/Analysis/LazyCallGraph.cpp Wed Nov 19 01:49:26 2014
> @@ -48,7 +48,7 @@ static void findCallees(
>     }
> 
>     for (Value *Op : C->operand_values())
> -      if (Visited.insert(cast<Constant>(Op)))
> +      if (Visited.insert(cast<Constant>(Op)).second)
>         Worklist.push_back(cast<Constant>(Op));
>   }
> }
> @@ -66,7 +66,7 @@ LazyCallGraph::Node::Node(LazyCallGraph
>     for (Instruction &I : BB)
>       for (Value *Op : I.operand_values())
>         if (Constant *C = dyn_cast<Constant>(Op))
> -          if (Visited.insert(C))
> +          if (Visited.insert(C).second)
>             Worklist.push_back(C);
> 
>   // We've collected all the constant (and thus potentially function or
> @@ -113,7 +113,7 @@ LazyCallGraph::LazyCallGraph(Module &M)
>   SmallPtrSet<Constant *, 16> Visited;
>   for (GlobalVariable &GV : M.globals())
>     if (GV.hasInitializer())
> -      if (Visited.insert(GV.getInitializer()))
> +      if (Visited.insert(GV.getInitializer()).second)
>         Worklist.push_back(GV.getInitializer());
> 
>   DEBUG(dbgs() << "  Adding functions referenced by global initializers to the "
> @@ -688,7 +688,7 @@ static void printNodes(raw_ostream &OS,
>                        SmallPtrSetImpl<LazyCallGraph::Node *> &Printed) {
>   // Recurse depth first through the nodes.
>   for (LazyCallGraph::Node &ChildN : N)
> -    if (Printed.insert(&ChildN))
> +    if (Printed.insert(&ChildN).second)
>       printNodes(OS, ChildN, Printed);
> 
>   OS << "  Call edges in function: " << N.getFunction().getName() << "\n";
> @@ -717,7 +717,7 @@ PreservedAnalyses LazyCallGraphPrinterPa
> 
>   SmallPtrSet<LazyCallGraph::Node *, 16> Printed;
>   for (LazyCallGraph::Node &N : G)
> -    if (Printed.insert(&N))
> +    if (Printed.insert(&N).second)
>       printNodes(OS, N, Printed);
> 
>   for (LazyCallGraph::SCC &SCC : G.postorder_sccs())
> 
> Modified: llvm/trunk/lib/Analysis/Lint.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/Lint.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/Lint.cpp (original)
> +++ llvm/trunk/lib/Analysis/Lint.cpp Wed Nov 19 01:49:26 2014
> @@ -631,7 +631,7 @@ Value *Lint::findValue(Value *V, bool Of
> Value *Lint::findValueImpl(Value *V, bool OffsetOk,
>                            SmallPtrSetImpl<Value *> &Visited) const {
>   // Detect self-referential values.
> -  if (!Visited.insert(V))
> +  if (!Visited.insert(V).second)
>     return UndefValue::get(V->getType());
> 
>   // TODO: Look through sext or zext cast, when the result is known to
> @@ -645,7 +645,8 @@ Value *Lint::findValueImpl(Value *V, boo
>     BasicBlock *BB = L->getParent();
>     SmallPtrSet<BasicBlock *, 4> VisitedBlocks;
>     for (;;) {
> -      if (!VisitedBlocks.insert(BB)) break;
> +      if (!VisitedBlocks.insert(BB).second)
> +        break;
>       if (Value *U = FindAvailableLoadedValue(L->getPointerOperand(),
>                                               BB, BBI, 6, AA))
>         return findValueImpl(U, OffsetOk, Visited);
> 
> Modified: llvm/trunk/lib/Analysis/MemoryBuiltins.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/MemoryBuiltins.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/MemoryBuiltins.cpp (original)
> +++ llvm/trunk/lib/Analysis/MemoryBuiltins.cpp Wed Nov 19 01:49:26 2014
> @@ -416,7 +416,7 @@ SizeOffsetType ObjectSizeOffsetVisitor::
>   if (Instruction *I = dyn_cast<Instruction>(V)) {
>     // If we have already seen this instruction, bail out. Cycles can happen in
>     // unreachable code after constant propagation.
> -    if (!SeenInsts.insert(I))
> +    if (!SeenInsts.insert(I).second)
>       return unknown();
> 
>     if (GEPOperator *GEP = dyn_cast<GEPOperator>(V))
> @@ -652,7 +652,7 @@ SizeOffsetEvalType ObjectSizeOffsetEvalu
>   // Record the pointers that were handled in this run, so that they can be
>   // cleaned later if something fails. We also use this set to break cycles that
>   // can occur in dead code.
> -  if (!SeenVals.insert(V)) {
> +  if (!SeenVals.insert(V).second) {
>     Result = unknown();
>   } else if (GEPOperator *GEP = dyn_cast<GEPOperator>(V)) {
>     Result = visitGEPOperator(*GEP);
> 
> Modified: llvm/trunk/lib/Analysis/MemoryDependenceAnalysis.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/MemoryDependenceAnalysis.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/MemoryDependenceAnalysis.cpp (original)
> +++ llvm/trunk/lib/Analysis/MemoryDependenceAnalysis.cpp Wed Nov 19 01:49:26 2014
> @@ -776,7 +776,7 @@ MemoryDependenceAnalysis::getNonLocalCal
>     DirtyBlocks.pop_back();
> 
>     // Already processed this block?
> -    if (!Visited.insert(DirtyBB))
> +    if (!Visited.insert(DirtyBB).second)
>       continue;
> 
>     // Do a binary search to see if we already have an entry for this block in
> 
> Modified: llvm/trunk/lib/Analysis/PtrUseVisitor.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/PtrUseVisitor.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/PtrUseVisitor.cpp (original)
> +++ llvm/trunk/lib/Analysis/PtrUseVisitor.cpp Wed Nov 19 01:49:26 2014
> @@ -17,7 +17,7 @@ using namespace llvm;
> 
> void detail::PtrUseVisitorBase::enqueueUsers(Instruction &I) {
>   for (Use &U : I.uses()) {
> -    if (VisitedUses.insert(&U)) {
> +    if (VisitedUses.insert(&U).second) {
>       UseToVisit NewU = {
>         UseToVisit::UseAndIsOffsetKnownPair(&U, IsOffsetKnown),
>         Offset
> 
> Modified: llvm/trunk/lib/Analysis/ScalarEvolution.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ScalarEvolution.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/ScalarEvolution.cpp (original)
> +++ llvm/trunk/lib/Analysis/ScalarEvolution.cpp Wed Nov 19 01:49:26 2014
> @@ -3395,7 +3395,8 @@ ScalarEvolution::ForgetSymbolicName(Inst
>   Visited.insert(PN);
>   while (!Worklist.empty()) {
>     Instruction *I = Worklist.pop_back_val();
> -    if (!Visited.insert(I)) continue;
> +    if (!Visited.insert(I).second)
> +      continue;
> 
>     ValueExprMapType::iterator It =
>       ValueExprMap.find_as(static_cast<Value *>(I));
> @@ -4593,7 +4594,8 @@ ScalarEvolution::getBackedgeTakenInfo(co
>     SmallPtrSet<Instruction *, 8> Visited;
>     while (!Worklist.empty()) {
>       Instruction *I = Worklist.pop_back_val();
> -      if (!Visited.insert(I)) continue;
> +      if (!Visited.insert(I).second)
> +        continue;
> 
>       ValueExprMapType::iterator It =
>         ValueExprMap.find_as(static_cast<Value *>(I));
> @@ -4645,7 +4647,8 @@ void ScalarEvolution::forgetLoop(const L
>   SmallPtrSet<Instruction *, 8> Visited;
>   while (!Worklist.empty()) {
>     Instruction *I = Worklist.pop_back_val();
> -    if (!Visited.insert(I)) continue;
> +    if (!Visited.insert(I).second)
> +      continue;
> 
>     ValueExprMapType::iterator It =
>       ValueExprMap.find_as(static_cast<Value *>(I));
> @@ -4679,7 +4682,8 @@ void ScalarEvolution::forgetValue(Value
>   SmallPtrSet<Instruction *, 8> Visited;
>   while (!Worklist.empty()) {
>     I = Worklist.pop_back_val();
> -    if (!Visited.insert(I)) continue;
> +    if (!Visited.insert(I).second)
> +      continue;
> 
>     ValueExprMapType::iterator It =
>       ValueExprMap.find_as(static_cast<Value *>(I));
> @@ -7792,7 +7796,7 @@ void ScalarEvolution::SCEVCallbackVH::al
>     // that until everything else is done.
>     if (U == Old)
>       continue;
> -    if (!Visited.insert(U))
> +    if (!Visited.insert(U).second)
>       continue;
>     if (PHINode *PN = dyn_cast<PHINode>(U))
>       SE->ConstantEvolutionLoopExitValue.erase(PN);
> 
> Modified: llvm/trunk/lib/Analysis/ScalarEvolutionExpander.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ScalarEvolutionExpander.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/ScalarEvolutionExpander.cpp (original)
> +++ llvm/trunk/lib/Analysis/ScalarEvolutionExpander.cpp Wed Nov 19 01:49:26 2014
> @@ -1443,7 +1443,7 @@ Value *SCEVExpander::visitAddRecExpr(con
>     Constant *One = ConstantInt::get(Ty, 1);
>     for (pred_iterator HPI = HPB; HPI != HPE; ++HPI) {
>       BasicBlock *HP = *HPI;
> -      if (!PredSeen.insert(HP)) {
> +      if (!PredSeen.insert(HP).second) {
>         // There must be an incoming value for each predecessor, even the
>         // duplicates!
>         CanonicalIV->addIncoming(CanonicalIV->getIncomingValueForBlock(HP), HP);
> 
> Modified: llvm/trunk/lib/Analysis/StratifiedSets.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/StratifiedSets.h?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/StratifiedSets.h (original)
> +++ llvm/trunk/lib/Analysis/StratifiedSets.h Wed Nov 19 01:49:26 2014
> @@ -363,7 +363,7 @@ template <typename T> class StratifiedSe
>     SmallSet<StratifiedIndex, 16> Visited;
>     for (unsigned I = 0, E = Links.size(); I < E; ++I) {
>       auto CurrentIndex = getHighestParentAbove(I);
> -      if (!Visited.insert(CurrentIndex)) {
> +      if (!Visited.insert(CurrentIndex).second) {
>         continue;
>       }
> 
> 
> Modified: llvm/trunk/lib/Analysis/ValueTracking.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ValueTracking.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/ValueTracking.cpp (original)
> +++ llvm/trunk/lib/Analysis/ValueTracking.cpp Wed Nov 19 01:49:26 2014
> @@ -331,7 +331,7 @@ static bool isEphemeralValueOf(Instructi
> 
>   while (!WorkSet.empty()) {
>     const Value *V = WorkSet.pop_back_val();
> -    if (!Visited.insert(V))
> +    if (!Visited.insert(V).second)
>       continue;
> 
>     // If all uses of this value are ephemeral, then so is this value.
> @@ -2405,7 +2405,7 @@ static uint64_t GetStringLengthH(Value *
>   // If this is a PHI node, there are two cases: either we have already seen it
>   // or we haven't.
>   if (PHINode *PN = dyn_cast<PHINode>(V)) {
> -    if (!PHIs.insert(PN))
> +    if (!PHIs.insert(PN).second)
>       return ~0ULL;  // already in the set.
> 
>     // If it was new, see if all the input strings are the same length.
> @@ -2499,7 +2499,7 @@ llvm::GetUnderlyingObjects(Value *V,
>     Value *P = Worklist.pop_back_val();
>     P = GetUnderlyingObject(P, TD, MaxLookup);
> 
> -    if (!Visited.insert(P))
> +    if (!Visited.insert(P).second)
>       continue;
> 
>     if (SelectInst *SI = dyn_cast<SelectInst>(P)) {
> 
> Modified: llvm/trunk/lib/AsmParser/LLParser.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/LLParser.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/AsmParser/LLParser.cpp (original)
> +++ llvm/trunk/lib/AsmParser/LLParser.cpp Wed Nov 19 01:49:26 2014
> @@ -3735,7 +3735,7 @@ bool LLParser::ParseSwitch(Instruction *
>         ParseTypeAndBasicBlock(DestBB, PFS))
>       return true;
> 
> -    if (!SeenCases.insert(Constant))
> +    if (!SeenCases.insert(Constant).second)
>       return Error(CondLoc, "duplicate case value in switch");
>     if (!isa<ConstantInt>(Constant))
>       return Error(CondLoc, "case value is not a constant integer");
> 
> Modified: llvm/trunk/lib/CodeGen/AggressiveAntiDepBreaker.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AggressiveAntiDepBreaker.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AggressiveAntiDepBreaker.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AggressiveAntiDepBreaker.cpp Wed Nov 19 01:49:26 2014
> @@ -256,7 +256,7 @@ static void AntiDepEdges(const SUnit *SU
>   for (SUnit::const_pred_iterator P = SU->Preds.begin(), PE = SU->Preds.end();
>        P != PE; ++P) {
>     if ((P->getKind() == SDep::Anti) || (P->getKind() == SDep::Output)) {
> -      if (RegSet.insert(P->getReg()))
> +      if (RegSet.insert(P->getReg()).second)
>         Edges.push_back(&*P);
>     }
>   }
> 
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Wed Nov 19 01:49:26 2014
> @@ -1167,7 +1167,8 @@ void AsmPrinter::EmitJumpTableInfo() {
>       const MCExpr *Base = TLI->getPICJumpTableRelocBaseExpr(MF,JTI,OutContext);
>       for (unsigned ii = 0, ee = JTBBs.size(); ii != ee; ++ii) {
>         const MachineBasicBlock *MBB = JTBBs[ii];
> -        if (!EmittedSets.insert(MBB)) continue;
> +        if (!EmittedSets.insert(MBB).second)
> +          continue;
> 
>         // .set LJTSet, LBB32-base
>         const MCExpr *LHS =
> 
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Wed Nov 19 01:49:26 2014
> @@ -990,7 +990,7 @@ DwarfDebug::collectVariableInfo(DwarfCom
>   for (unsigned i = 0, e = Variables.getNumElements(); i != e; ++i) {
>     DIVariable DV(Variables.getElement(i));
>     assert(DV.isVariable());
> -    if (!Processed.insert(DV))
> +    if (!Processed.insert(DV).second)
>       continue;
>     if (LexicalScope *Scope = LScopes.findLexicalScope(DV.getContext())) {
>       ensureAbstractVariableIsCreatedIfScoped(DV, Scope->getScopeNode());
> @@ -1287,7 +1287,7 @@ void DwarfDebug::endFunction(const Machi
>     for (unsigned i = 0, e = Variables.getNumElements(); i != e; ++i) {
>       DIVariable DV(Variables.getElement(i));
>       assert(DV && DV.isVariable());
> -      if (!ProcessedVars.insert(DV))
> +      if (!ProcessedVars.insert(DV).second)
>         continue;
>       ensureAbstractVariableIsCreated(DV, DV.getContext());
>       assert(LScopes.getAbstractScopesList().size() == NumAbstractScopes
> 
> Modified: llvm/trunk/lib/CodeGen/BranchFolding.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/BranchFolding.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/BranchFolding.cpp (original)
> +++ llvm/trunk/lib/CodeGen/BranchFolding.cpp Wed Nov 19 01:49:26 2014
> @@ -916,7 +916,7 @@ bool BranchFolder::TailMergeBlocks(Machi
>         continue;
> 
>       // Visit each predecessor only once.
> -      if (!UniquePreds.insert(PBB))
> +      if (!UniquePreds.insert(PBB).second)
>         continue;
> 
>       // Skip blocks which may jump to a landing pad. Can't tail merge these.
> 
> Modified: llvm/trunk/lib/CodeGen/CalcSpillWeights.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/CalcSpillWeights.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/CalcSpillWeights.cpp (original)
> +++ llvm/trunk/lib/CodeGen/CalcSpillWeights.cpp Wed Nov 19 01:49:26 2014
> @@ -120,7 +120,7 @@ VirtRegAuxInfo::calculateSpillWeightAndH
>     numInstr++;
>     if (mi->isIdentityCopy() || mi->isImplicitDef() || mi->isDebugValue())
>       continue;
> -    if (!visited.insert(mi))
> +    if (!visited.insert(mi).second)
>       continue;
> 
>     float weight = 1.0f;
> 
> Modified: llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp (original)
> +++ llvm/trunk/lib/CodeGen/CodeGenPrepare.cpp Wed Nov 19 01:49:26 2014
> @@ -1001,7 +1001,7 @@ bool CodeGenPrepare::DupRetToEnableTailC
>   } else {
>     SmallPtrSet<BasicBlock*, 4> VisitedBBs;
>     for (pred_iterator PI = pred_begin(BB), PE = pred_end(BB); PI != PE; ++PI) {
> -      if (!VisitedBBs.insert(*PI))
> +      if (!VisitedBBs.insert(*PI).second)
>         continue;
> 
>       BasicBlock::InstListType &InstList = (*PI)->getInstList();
> @@ -2401,7 +2401,7 @@ static bool FindAllMemoryUses(Instructio
>                               SmallPtrSetImpl<Instruction*> &ConsideredInsts,
>                               const TargetLowering &TLI) {
>   // If we already considered this instruction, we're done.
> -  if (!ConsideredInsts.insert(I))
> +  if (!ConsideredInsts.insert(I).second)
>     return false;
> 
>   // If this is an obviously unfoldable instruction, bail out.
> @@ -2615,7 +2615,7 @@ bool CodeGenPrepare::OptimizeMemoryInst(
>     worklist.pop_back();
> 
>     // Break use-def graph loops.
> -    if (!Visited.insert(V)) {
> +    if (!Visited.insert(V).second) {
>       Consensus = nullptr;
>       break;
>     }
> 
> Modified: llvm/trunk/lib/CodeGen/EarlyIfConversion.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/EarlyIfConversion.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/EarlyIfConversion.cpp (original)
> +++ llvm/trunk/lib/CodeGen/EarlyIfConversion.cpp Wed Nov 19 01:49:26 2014
> @@ -245,7 +245,7 @@ bool SSAIfConv::canSpeculateInstrs(Machi
>       MachineInstr *DefMI = MRI->getVRegDef(Reg);
>       if (!DefMI || DefMI->getParent() != Head)
>         continue;
> -      if (InsertAfter.insert(DefMI))
> +      if (InsertAfter.insert(DefMI).second)
>         DEBUG(dbgs() << "BB#" << MBB->getNumber() << " depends on " << *DefMI);
>       if (DefMI->isTerminator()) {
>         DEBUG(dbgs() << "Can't insert instructions below terminator.\n");
> 
> Modified: llvm/trunk/lib/CodeGen/InlineSpiller.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/InlineSpiller.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/InlineSpiller.cpp (original)
> +++ llvm/trunk/lib/CodeGen/InlineSpiller.cpp Wed Nov 19 01:49:26 2014
> @@ -823,7 +823,7 @@ void InlineSpiller::markValueUsed(LiveIn
>   WorkList.push_back(std::make_pair(LI, VNI));
>   do {
>     std::tie(LI, VNI) = WorkList.pop_back_val();
> -    if (!UsedValues.insert(VNI))
> +    if (!UsedValues.insert(VNI).second)
>       continue;
> 
>     if (VNI->isPHIDef()) {
> 
> Modified: llvm/trunk/lib/CodeGen/LiveInterval.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveInterval.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/LiveInterval.cpp (original)
> +++ llvm/trunk/lib/CodeGen/LiveInterval.cpp Wed Nov 19 01:49:26 2014
> @@ -206,7 +206,7 @@ void LiveRange::RenumberValues() {
>   valnos.clear();
>   for (const_iterator I = begin(), E = end(); I != E; ++I) {
>     VNInfo *VNI = I->valno;
> -    if (!Seen.insert(VNI))
> +    if (!Seen.insert(VNI).second)
>       continue;
>     assert(!VNI->isUnused() && "Unused valno used by live segment");
>     VNI->id = (unsigned)valnos.size();
> 
> Modified: llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp (original)
> +++ llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp Wed Nov 19 01:49:26 2014
> @@ -379,12 +379,13 @@ bool LiveIntervals::shrinkToUses(LiveInt
>       (void)ExtVNI;
>       assert(ExtVNI == VNI && "Unexpected existing value number");
>       // Is this a PHIDef we haven't seen before?
> -      if (!VNI->isPHIDef() || VNI->def != BlockStart || !UsedPHIs.insert(VNI))
> +      if (!VNI->isPHIDef() || VNI->def != BlockStart ||
> +          !UsedPHIs.insert(VNI).second)
>         continue;
>       // The PHI is live, make sure the predecessors are live-out.
>       for (MachineBasicBlock::const_pred_iterator PI = MBB->pred_begin(),
>            PE = MBB->pred_end(); PI != PE; ++PI) {
> -        if (!LiveOut.insert(*PI))
> +        if (!LiveOut.insert(*PI).second)
>           continue;
>         SlotIndex Stop = getMBBEndIdx(*PI);
>         // A predecessor is not required to have a live-out value for a PHI.
> @@ -401,7 +402,7 @@ bool LiveIntervals::shrinkToUses(LiveInt
>     // Make sure VNI is live-out from the predecessors.
>     for (MachineBasicBlock::const_pred_iterator PI = MBB->pred_begin(),
>          PE = MBB->pred_end(); PI != PE; ++PI) {
> -      if (!LiveOut.insert(*PI))
> +      if (!LiveOut.insert(*PI).second)
>         continue;
>       SlotIndex Stop = getMBBEndIdx(*PI);
>       assert(li->getVNInfoBefore(Stop) == VNI &&
> @@ -784,7 +785,7 @@ private:
>   /// Update a single live range, assuming an instruction has been moved from
>   /// OldIdx to NewIdx.
>   void updateRange(LiveRange &LR, unsigned Reg) {
> -    if (!Updated.insert(&LR))
> +    if (!Updated.insert(&LR).second)
>       return;
>     DEBUG({
>       dbgs() << "     ";
> 
> Modified: llvm/trunk/lib/CodeGen/MachineBasicBlock.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineBasicBlock.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/MachineBasicBlock.cpp (original)
> +++ llvm/trunk/lib/CodeGen/MachineBasicBlock.cpp Wed Nov 19 01:49:26 2014
> @@ -1066,7 +1066,7 @@ bool MachineBasicBlock::CorrectExtraCFGE
>   MachineBasicBlock::succ_iterator SI = succ_begin();
>   while (SI != succ_end()) {
>     const MachineBasicBlock *MBB = *SI;
> -    if (!SeenMBBs.insert(MBB) ||
> +    if (!SeenMBBs.insert(MBB).second ||
>         (MBB != DestA && MBB != DestB && !MBB->isLandingPad())) {
>       // This is a superfluous edge, remove it.
>       SI = removeSuccessor(SI);
> 
> Modified: llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp (original)
> +++ llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp Wed Nov 19 01:49:26 2014
> @@ -813,7 +813,7 @@ void MachineBlockPlacement::buildLoopCha
>                                    BE = L.block_end();
>        BI != BE; ++BI) {
>     BlockChain &Chain = *BlockToChain[*BI];
> -    if (!UpdatedPreds.insert(&Chain))
> +    if (!UpdatedPreds.insert(&Chain).second)
>       continue;
> 
>     assert(Chain.LoopPredecessors == 0);
> @@ -914,7 +914,7 @@ void MachineBlockPlacement::buildCFGChai
>   for (MachineFunction::iterator FI = F.begin(), FE = F.end(); FI != FE; ++FI) {
>     MachineBasicBlock *BB = &*FI;
>     BlockChain &Chain = *BlockToChain[BB];
> -    if (!UpdatedPreds.insert(&Chain))
> +    if (!UpdatedPreds.insert(&Chain).second)
>       continue;
> 
>     assert(Chain.LoopPredecessors == 0);
> 
> Modified: llvm/trunk/lib/CodeGen/MachineInstrBundle.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineInstrBundle.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/MachineInstrBundle.cpp (original)
> +++ llvm/trunk/lib/CodeGen/MachineInstrBundle.cpp Wed Nov 19 01:49:26 2014
> @@ -141,7 +141,7 @@ void llvm::finalizeBundle(MachineBasicBl
>           // Internal def is now killed.
>           KilledDefSet.insert(Reg);
>       } else {
> -        if (ExternUseSet.insert(Reg)) {
> +        if (ExternUseSet.insert(Reg).second) {
>           ExternUses.push_back(Reg);
>           if (MO.isUndef())
>             UndefUseSet.insert(Reg);
> @@ -158,7 +158,7 @@ void llvm::finalizeBundle(MachineBasicBl
>       if (!Reg)
>         continue;
> 
> -      if (LocalDefSet.insert(Reg)) {
> +      if (LocalDefSet.insert(Reg).second) {
>         LocalDefs.push_back(Reg);
>         if (MO.isDead()) {
>           DeadDefSet.insert(Reg);
> @@ -174,7 +174,7 @@ void llvm::finalizeBundle(MachineBasicBl
>       if (!MO.isDead()) {
>         for (MCSubRegIterator SubRegs(Reg, TRI); SubRegs.isValid(); ++SubRegs) {
>           unsigned SubReg = *SubRegs;
> -          if (LocalDefSet.insert(SubReg))
> +          if (LocalDefSet.insert(SubReg).second)
>             LocalDefs.push_back(SubReg);
>         }
>       }
> @@ -186,7 +186,7 @@ void llvm::finalizeBundle(MachineBasicBl
>   SmallSet<unsigned, 32> Added;
>   for (unsigned i = 0, e = LocalDefs.size(); i != e; ++i) {
>     unsigned Reg = LocalDefs[i];
> -    if (Added.insert(Reg)) {
> +    if (Added.insert(Reg).second) {
>       // If it's not live beyond end of the bundle, mark it dead.
>       bool isDead = DeadDefSet.count(Reg) || KilledDefSet.count(Reg);
>       MIB.addReg(Reg, getDefRegState(true) | getDeadRegState(isDead) |
> 
> Modified: llvm/trunk/lib/CodeGen/MachineLICM.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineLICM.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/MachineLICM.cpp (original)
> +++ llvm/trunk/lib/CodeGen/MachineLICM.cpp Wed Nov 19 01:49:26 2014
> @@ -818,7 +818,7 @@ void MachineLICM::InitRegPressure(Machin
>       if (!TargetRegisterInfo::isVirtualRegister(Reg))
>         continue;
> 
> -      bool isNew = RegSeen.insert(Reg);
> +      bool isNew = RegSeen.insert(Reg).second;
>       unsigned RCId, RCCost;
>       getRegisterClassIDAndCost(MI, Reg, i, RCId, RCCost);
>       if (MO.isDef())
> @@ -850,7 +850,7 @@ void MachineLICM::UpdateRegPressure(cons
>     if (!TargetRegisterInfo::isVirtualRegister(Reg))
>       continue;
> 
> -    bool isNew = RegSeen.insert(Reg);
> +    bool isNew = RegSeen.insert(Reg).second;
>     if (MO.isDef())
>       Defs.push_back(Reg);
>     else if (!isNew && isOperandKill(MO, MRI)) {
> 
> Modified: llvm/trunk/lib/CodeGen/MachineSink.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineSink.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/MachineSink.cpp (original)
> +++ llvm/trunk/lib/CodeGen/MachineSink.cpp Wed Nov 19 01:49:26 2014
> @@ -340,7 +340,7 @@ bool MachineSinking::isWorthBreakingCrit
>   // If the pass has already considered breaking this edge (during this pass
>   // through the function), then let's go ahead and break it. This means
>   // sinking multiple "cheap" instructions into the same block.
> -  if (!CEBCandidates.insert(std::make_pair(From, To)))
> +  if (!CEBCandidates.insert(std::make_pair(From, To)).second)
>     return true;
> 
>   if (!MI->isCopy() && !TII->isAsCheapAsAMove(MI))
> 
> Modified: llvm/trunk/lib/CodeGen/MachineTraceMetrics.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineTraceMetrics.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/MachineTraceMetrics.cpp (original)
> +++ llvm/trunk/lib/CodeGen/MachineTraceMetrics.cpp Wed Nov 19 01:49:26 2014
> @@ -449,7 +449,7 @@ public:
>     }
>     // To is a new block. Mark the block as visited in case the CFG has cycles
>     // that MachineLoopInfo didn't recognize as a natural loop.
> -    return LB.Visited.insert(To);
> +    return LB.Visited.insert(To).second;
>   }
> };
> }
> 
> Modified: llvm/trunk/lib/CodeGen/OptimizePHIs.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/OptimizePHIs.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/OptimizePHIs.cpp (original)
> +++ llvm/trunk/lib/CodeGen/OptimizePHIs.cpp Wed Nov 19 01:49:26 2014
> @@ -92,7 +92,7 @@ bool OptimizePHIs::IsSingleValuePHICycle
>   unsigned DstReg = MI->getOperand(0).getReg();
> 
>   // See if we already saw this register.
> -  if (!PHIsInCycle.insert(MI))
> +  if (!PHIsInCycle.insert(MI).second)
>     return true;
> 
>   // Don't scan crazily complex things.
> @@ -137,7 +137,7 @@ bool OptimizePHIs::IsDeadPHICycle(Machin
>          "PHI destination is not a virtual register");
> 
>   // See if we already saw this register.
> -  if (!PHIsInCycle.insert(MI))
> +  if (!PHIsInCycle.insert(MI).second)
>     return true;
> 
>   // Don't scan crazily complex things.
> 
> Modified: llvm/trunk/lib/CodeGen/PHIElimination.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/PHIElimination.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/PHIElimination.cpp (original)
> +++ llvm/trunk/lib/CodeGen/PHIElimination.cpp Wed Nov 19 01:49:26 2014
> @@ -367,7 +367,7 @@ void PHIElimination::LowerPHINode(Machin
>     // Check to make sure we haven't already emitted the copy for this block.
>     // This can happen because PHI nodes may have multiple entries for the same
>     // basic block.
> -    if (!MBBsInsertedInto.insert(&opBlock))
> +    if (!MBBsInsertedInto.insert(&opBlock).second)
>       continue;  // If the copy has already been emitted, we're done.
> 
>     // Find a safe location to insert the copy, this may be the first terminator
> 
> Modified: llvm/trunk/lib/CodeGen/RegAllocFast.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegAllocFast.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/RegAllocFast.cpp (original)
> +++ llvm/trunk/lib/CodeGen/RegAllocFast.cpp Wed Nov 19 01:49:26 2014
> @@ -708,7 +708,7 @@ void RAFast::handleThroughOperands(Machi
>       continue;
>     if (MO.isEarlyClobber() || MI->isRegTiedToDefOperand(i) ||
>         (MO.getSubReg() && MI->readsVirtualRegister(Reg))) {
> -      if (ThroughRegs.insert(Reg))
> +      if (ThroughRegs.insert(Reg).second)
>         DEBUG(dbgs() << ' ' << PrintReg(Reg));
>     }
>   }
> 
> Modified: llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp (original)
> +++ llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp Wed Nov 19 01:49:26 2014
> @@ -965,7 +965,7 @@ void RegisterCoalescer::updateRegDefsUse
>     // the UseMI operands removes them from the SrcReg use-def chain, but when
>     // SrcReg is DstReg we could encounter UseMI twice if it has multiple
>     // operands mentioning the virtual register.
> -    if (SrcReg == DstReg && !Visited.insert(UseMI))
> +    if (SrcReg == DstReg && !Visited.insert(UseMI).second)
>       continue;
> 
>     SmallVector<unsigned,8> Ops;
> 
> Modified: llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp (original)
> +++ llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp Wed Nov 19 01:49:26 2014
> @@ -109,7 +109,7 @@ static void getUnderlyingObjects(const V
>     for (SmallVectorImpl<Value *>::iterator I = Objs.begin(), IE = Objs.end();
>          I != IE; ++I) {
>       V = *I;
> -      if (!Visited.insert(V))
> +      if (!Visited.insert(V).second)
>         continue;
>       if (Operator::getOpcode(V) == Instruction::IntToPtr) {
>         const Value *O =
> @@ -588,7 +588,7 @@ iterateChainSucc(AliasAnalysis *AA, cons
>     return *Depth;
> 
>   // Remember visited nodes.
> -  if (!Visited.insert(SUb))
> +  if (!Visited.insert(SUb).second)
>       return *Depth;
>   // If there is _some_ dependency already in place, do not
>   // descend any further.
> 
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Wed Nov 19 01:49:26 2014
> @@ -1493,7 +1493,7 @@ SDValue DAGCombiner::visitTokenFactor(SD
> 
>       default:
>         // Only add if it isn't already in the list.
> -        if (SeenOps.insert(Op.getNode()))
> +        if (SeenOps.insert(Op.getNode()).second)
>           Ops.push_back(Op);
>         else
>           Changed = true;
> @@ -12267,7 +12267,7 @@ void DAGCombiner::GatherAllAliases(SDNod
>     }
> 
>     // Don't bother if we've been before.
> -    if (!Visited.insert(Chain.getNode()))
> +    if (!Visited.insert(Chain.getNode()).second)
>       continue;
> 
>     switch (Chain.getOpcode()) {
> @@ -12355,7 +12355,8 @@ void DAGCombiner::GatherAllAliases(SDNod
> 
>     for (SDNode::use_iterator UI = M->use_begin(),
>          UIE = M->use_end(); UI != UIE; ++UI)
> -      if (UI.getUse().getValueType() == MVT::Other && Visited.insert(*UI)) {
> +      if (UI.getUse().getValueType() == MVT::Other &&
> +          Visited.insert(*UI).second) {
>         if (isa<MemIntrinsicSDNode>(*UI) || isa<MemSDNode>(*UI)) {
>           // We've not visited this use, and we care about it (it could have an
>           // ordering dependency with the original node).
> 
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp Wed Nov 19 01:49:26 2014
> @@ -1976,7 +1976,7 @@ bool FastISel::handlePHINodesInSuccessor
> 
>     // If this terminator has multiple identical successors (common for
>     // switches), only handle each succ once.
> -    if (!SuccsHandled.insert(SuccMBB))
> +    if (!SuccsHandled.insert(SuccMBB).second)
>       continue;
> 
>     MachineBasicBlock::iterator MBBI = SuccMBB->begin();
> 
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Wed Nov 19 01:49:26 2014
> @@ -4343,7 +4343,7 @@ void SelectionDAG::Legalize() {
>         continue;
>       }
> 
> -      if (LegalizedNodes.insert(N)) {
> +      if (LegalizedNodes.insert(N).second) {
>         AnyLegalized = true;
>         Legalizer.LegalizeOp(N);
> 
> 
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp Wed Nov 19 01:49:26 2014
> @@ -460,7 +460,7 @@ static bool CheckForLiveRegDef(SUnit *SU
>   bool Added = false;
>   for (MCRegAliasIterator AI(Reg, TRI, true); AI.isValid(); ++AI) {
>     if (LiveRegDefs[*AI] && LiveRegDefs[*AI] != SU) {
> -      if (RegAdded.insert(*AI)) {
> +      if (RegAdded.insert(*AI).second) {
>         LRegs.push_back(*AI);
>         Added = true;
>       }
> 
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp Wed Nov 19 01:49:26 2014
> @@ -1223,7 +1223,7 @@ static void CheckForLiveRegDef(SUnit *SU
>     if (LiveRegDefs[*AliasI] == SU) continue;
> 
>     // Add Reg to the set of interfering live regs.
> -    if (RegAdded.insert(*AliasI)) {
> +    if (RegAdded.insert(*AliasI).second) {
>       LRegs.push_back(*AliasI);
>     }
>   }
> @@ -1240,7 +1240,7 @@ static void CheckForLiveRegDefMasked(SUn
>     if (!LiveRegDefs[i]) continue;
>     if (LiveRegDefs[i] == SU) continue;
>     if (!MachineOperand::clobbersPhysReg(RegMask, i)) continue;
> -    if (RegAdded.insert(i))
> +    if (RegAdded.insert(i).second)
>       LRegs.push_back(i);
>   }
> }
> @@ -1315,7 +1315,8 @@ DelayForLiveRegsBottomUp(SUnit *SU, Smal
>         SDNode *Gen = LiveRegGens[CallResource]->getNode();
>         while (SDNode *Glued = Gen->getGluedNode())
>           Gen = Glued;
> -        if (!IsChainDependent(Gen, Node, 0, TII) && RegAdded.insert(CallResource))
> +        if (!IsChainDependent(Gen, Node, 0, TII) &&
> +            RegAdded.insert(CallResource).second)
>           LRegs.push_back(CallResource);
>       }
>     }
> 
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp Wed Nov 19 01:49:26 2014
> @@ -230,7 +230,7 @@ void ScheduleDAGSDNodes::ClusterNeighbor
>   for (SDNode::use_iterator I = Chain->use_begin(), E = Chain->use_end();
>        I != E && UseCount < 100; ++I, ++UseCount) {
>     SDNode *User = *I;
> -    if (User == Node || !Visited.insert(User))
> +    if (User == Node || !Visited.insert(User).second)
>       continue;
>     int64_t Offset1, Offset2;
>     if (!TII->areLoadsFromSameBasePtr(Base, User, Offset1, Offset2) ||
> @@ -343,7 +343,7 @@ void ScheduleDAGSDNodes::BuildSchedUnits
> 
>     // Add all operands to the worklist unless they've already been added.
>     for (unsigned i = 0, e = NI->getNumOperands(); i != e; ++i)
> -      if (Visited.insert(NI->getOperand(i).getNode()))
> +      if (Visited.insert(NI->getOperand(i).getNode()).second)
>         Worklist.push_back(NI->getOperand(i).getNode());
> 
>     if (isPassiveNode(NI))  // Leaf node, e.g. a TargetImmediate.
> @@ -737,7 +737,7 @@ ProcessSourceNode(SDNode *N, SelectionDA
>                   SmallVectorImpl<std::pair<unsigned, MachineInstr*> > &Orders,
>                   SmallSet<unsigned, 8> &Seen) {
>   unsigned Order = N->getIROrder();
> -  if (!Order || !Seen.insert(Order)) {
> +  if (!Order || !Seen.insert(Order).second) {
>     // Process any valid SDDbgValues even if node does not have any order
>     // assigned.
>     ProcessSDDbgValues(N, DAG, Emitter, Orders, VRBaseMap, 0);
> 
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Wed Nov 19 01:49:26 2014
> @@ -6385,7 +6385,7 @@ SDNode::hasPredecessorHelper(const SDNod
>     const SDNode *M = Worklist.pop_back_val();
>     for (unsigned i = 0, e = M->getNumOperands(); i != e; ++i) {
>       SDNode *Op = M->getOperand(i).getNode();
> -      if (Visited.insert(Op))
> +      if (Visited.insert(Op).second)
>         Worklist.push_back(Op);
>       if (Op == N)
>         return true;
> @@ -6753,7 +6753,7 @@ static void checkForCyclesHelper(const S
> 
>   // If a node has already been visited on this depth-first walk, reject it as
>   // a cycle.
> -  if (!Visited.insert(N)) {
> +  if (!Visited.insert(N).second) {
>     errs() << "Detected cycle in SelectionDAG\n";
>     dbgs() << "Offending node:\n";
>     N->dumprFull(DAG); dbgs() << "\n";
> 
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp Wed Nov 19 01:49:26 2014
> @@ -2760,7 +2760,7 @@ void SelectionDAGBuilder::visitIndirectB
>   SmallSet<BasicBlock*, 32> Done;
>   for (unsigned i = 0, e = I.getNumSuccessors(); i != e; ++i) {
>     BasicBlock *BB = I.getSuccessor(i);
> -    bool Inserted = Done.insert(BB);
> +    bool Inserted = Done.insert(BB).second;
>     if (!Inserted)
>         continue;
> 
> @@ -7697,7 +7697,8 @@ SelectionDAGBuilder::HandlePHINodesInSuc
> 
>     // If this terminator has multiple identical successors (common for
>     // switches), only handle each succ once.
> -    if (!SuccsHandled.insert(SuccMBB)) continue;
> +    if (!SuccsHandled.insert(SuccMBB).second)
> +      continue;
> 
>     MachineBasicBlock::iterator MBBI = SuccMBB->begin();
> 
> 
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp Wed Nov 19 01:49:26 2014
> @@ -569,7 +569,7 @@ void SDNode::printr(raw_ostream &OS, con
> typedef SmallPtrSet<const SDNode *, 128> VisitedSDNodeSet;
> static void DumpNodesr(raw_ostream &OS, const SDNode *N, unsigned indent,
>                        const SelectionDAG *G, VisitedSDNodeSet &once) {
> -  if (!once.insert(N))          // If we've been here before, return now.
> +  if (!once.insert(N).second) // If we've been here before, return now.
>     return;
> 
>   // Dump the current SDNode, but don't end the line yet.
> 
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Wed Nov 19 01:49:26 2014
> @@ -615,7 +615,7 @@ void SelectionDAGISel::ComputeLiveOutVRe
>     SDNode *N = Worklist.pop_back_val();
> 
>     // If we've already seen this node, ignore it.
> -    if (!VisitedNodes.insert(N))
> +    if (!VisitedNodes.insert(N).second)
>       continue;
> 
>     // Otherwise, add all chain operands to the worklist.
> @@ -1741,7 +1741,7 @@ static bool findNonImmUse(SDNode *Use, S
> 
>   // Don't revisit nodes if we already scanned it and didn't fail, we know we
>   // won't fail if we scan it again.
> -  if (!Visited.insert(Use))
> +  if (!Visited.insert(Use).second)
>     return false;
> 
>   for (unsigned i = 0, e = Use->getNumOperands(); i != e; ++i) {
> 
> Modified: llvm/trunk/lib/CodeGen/SjLjEHPrepare.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SjLjEHPrepare.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SjLjEHPrepare.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SjLjEHPrepare.cpp Wed Nov 19 01:49:26 2014
> @@ -140,7 +140,7 @@ void SjLjEHPrepare::insertCallSiteStore(
> /// we reach blocks we've already seen.
> static void MarkBlocksLiveIn(BasicBlock *BB,
>                              SmallPtrSetImpl<BasicBlock *> &LiveBBs) {
> -  if (!LiveBBs.insert(BB))
> +  if (!LiveBBs.insert(BB).second)
>     return; // already been here.
> 
>   for (pred_iterator PI = pred_begin(BB), E = pred_end(BB); PI != E; ++PI)
> 
> Modified: llvm/trunk/lib/CodeGen/StackProtector.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/StackProtector.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/StackProtector.cpp (original)
> +++ llvm/trunk/lib/CodeGen/StackProtector.cpp Wed Nov 19 01:49:26 2014
> @@ -169,7 +169,7 @@ bool StackProtector::HasAddressTaken(con
>     } else if (const PHINode *PN = dyn_cast<PHINode>(U)) {
>       // Keep track of what PHI nodes we have already visited to ensure
>       // they are only visited once.
> -      if (VisitedPHIs.insert(PN))
> +      if (VisitedPHIs.insert(PN).second)
>         if (HasAddressTaken(PN))
>           return true;
>     } else if (const GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(U)) {
> 
> Modified: llvm/trunk/lib/CodeGen/TwoAddressInstructionPass.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TwoAddressInstructionPass.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/TwoAddressInstructionPass.cpp (original)
> +++ llvm/trunk/lib/CodeGen/TwoAddressInstructionPass.cpp Wed Nov 19 01:49:26 2014
> @@ -678,7 +678,7 @@ TwoAddressInstructionPass::scanUses(unsi
>   unsigned Reg = DstReg;
>   while (MachineInstr *UseMI = findOnlyInterestingUse(Reg, MBB, MRI, TII,IsCopy,
>                                                       NewReg, IsDstPhys)) {
> -    if (IsCopy && !Processed.insert(UseMI))
> +    if (IsCopy && !Processed.insert(UseMI).second)
>       break;
> 
>     DenseMap<MachineInstr*, unsigned>::iterator DI = DistanceMap.find(UseMI);
> 
> Modified: llvm/trunk/lib/IR/Constants.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Constants.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/IR/Constants.cpp (original)
> +++ llvm/trunk/lib/IR/Constants.cpp Wed Nov 19 01:49:26 2014
> @@ -316,7 +316,7 @@ static bool canTrapImpl(const Constant *
>   // ConstantExpr traps if any operands can trap.
>   for (unsigned i = 0, e = C->getNumOperands(); i != e; ++i) {
>     if (ConstantExpr *Op = dyn_cast<ConstantExpr>(CE->getOperand(i))) {
> -      if (NonTrappingOps.insert(Op) && canTrapImpl(Op, NonTrappingOps))
> +      if (NonTrappingOps.insert(Op).second && canTrapImpl(Op, NonTrappingOps))
>         return true;
>     }
>   }
> @@ -363,7 +363,7 @@ ConstHasGlobalValuePredicate(const Const
>       const Constant *ConstOp = dyn_cast<Constant>(Op);
>       if (!ConstOp)
>         continue;
> -      if (Visited.insert(ConstOp))
> +      if (Visited.insert(ConstOp).second)
>         WorkList.push_back(ConstOp);
>     }
>   }
> 
> Modified: llvm/trunk/lib/IR/DIBuilder.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DIBuilder.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/IR/DIBuilder.cpp (original)
> +++ llvm/trunk/lib/IR/DIBuilder.cpp Wed Nov 19 01:49:26 2014
> @@ -64,7 +64,7 @@ void DIBuilder::finalize() {
>   // TrackingVHs back into Values.
>   SmallPtrSet<Value *, 16> RetainSet;
>   for (unsigned I = 0, E = AllRetainTypes.size(); I < E; I++)
> -    if (RetainSet.insert(AllRetainTypes[I]))
> +    if (RetainSet.insert(AllRetainTypes[I]).second)
>       RetainValues.push_back(AllRetainTypes[I]);
>   DIArray RetainTypes = getOrCreateArray(RetainValues);
>   DIType(TempRetainTypes).replaceAllUsesWith(RetainTypes);
> 
> Modified: llvm/trunk/lib/IR/DebugInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DebugInfo.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/IR/DebugInfo.cpp (original)
> +++ llvm/trunk/lib/IR/DebugInfo.cpp Wed Nov 19 01:49:26 2014
> @@ -1127,7 +1127,7 @@ void DebugInfoFinder::processDeclare(con
>   if (!DV.isVariable())
>     return;
> 
> -  if (!NodesSeen.insert(DV))
> +  if (!NodesSeen.insert(DV).second)
>     return;
>   processScope(DIVariable(N).getContext());
>   processType(DIVariable(N).getType().resolve(TypeIdentifierMap));
> @@ -1143,7 +1143,7 @@ void DebugInfoFinder::processValue(const
>   if (!DV.isVariable())
>     return;
> 
> -  if (!NodesSeen.insert(DV))
> +  if (!NodesSeen.insert(DV).second)
>     return;
>   processScope(DIVariable(N).getContext());
>   processType(DIVariable(N).getType().resolve(TypeIdentifierMap));
> @@ -1153,7 +1153,7 @@ bool DebugInfoFinder::addType(DIType DT)
>   if (!DT)
>     return false;
> 
> -  if (!NodesSeen.insert(DT))
> +  if (!NodesSeen.insert(DT).second)
>     return false;
> 
>   TYs.push_back(DT);
> @@ -1163,7 +1163,7 @@ bool DebugInfoFinder::addType(DIType DT)
> bool DebugInfoFinder::addCompileUnit(DICompileUnit CU) {
>   if (!CU)
>     return false;
> -  if (!NodesSeen.insert(CU))
> +  if (!NodesSeen.insert(CU).second)
>     return false;
> 
>   CUs.push_back(CU);
> @@ -1174,7 +1174,7 @@ bool DebugInfoFinder::addGlobalVariable(
>   if (!DIG)
>     return false;
> 
> -  if (!NodesSeen.insert(DIG))
> +  if (!NodesSeen.insert(DIG).second)
>     return false;
> 
>   GVs.push_back(DIG);
> @@ -1185,7 +1185,7 @@ bool DebugInfoFinder::addSubprogram(DISu
>   if (!SP)
>     return false;
> 
> -  if (!NodesSeen.insert(SP))
> +  if (!NodesSeen.insert(SP).second)
>     return false;
> 
>   SPs.push_back(SP);
> @@ -1199,7 +1199,7 @@ bool DebugInfoFinder::addScope(DIScope S
>   // as null for now.
>   if (Scope->getNumOperands() == 0)
>     return false;
> -  if (!NodesSeen.insert(Scope))
> +  if (!NodesSeen.insert(Scope).second)
>     return false;
>   Scopes.push_back(Scope);
>   return true;
> 
> Modified: llvm/trunk/lib/IR/Type.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Type.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/IR/Type.cpp (original)
> +++ llvm/trunk/lib/IR/Type.cpp Wed Nov 19 01:49:26 2014
> @@ -562,7 +562,7 @@ bool StructType::isSized(SmallPtrSetImpl
>   if (isOpaque())
>     return false;
> 
> -  if (Visited && !Visited->insert(this))
> +  if (Visited && !Visited->insert(this).second)
>     return false;
> 
>   // Okay, our struct is sized if all of the elements are, but if one of the
> 
> Modified: llvm/trunk/lib/IR/Value.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Value.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/IR/Value.cpp (original)
> +++ llvm/trunk/lib/IR/Value.cpp Wed Nov 19 01:49:26 2014
> @@ -292,7 +292,7 @@ void Value::takeName(Value *V) {
> #ifndef NDEBUG
> static bool contains(SmallPtrSetImpl<ConstantExpr *> &Cache, ConstantExpr *Expr,
>                      Constant *C) {
> -  if (!Cache.insert(Expr))
> +  if (!Cache.insert(Expr).second)
>     return false;
> 
>   for (auto &O : Expr->operands()) {
> @@ -401,7 +401,7 @@ static Value *stripPointerCastsAndOffset
>       return V;
>     }
>     assert(V->getType()->isPointerTy() && "Unexpected operand type!");
> -  } while (Visited.insert(V));
> +  } while (Visited.insert(V).second);
> 
>   return V;
> }
> @@ -451,7 +451,7 @@ Value *Value::stripAndAccumulateInBounds
>       return V;
>     }
>     assert(V->getType()->isPointerTy() && "Unexpected operand type!");
> -  } while (Visited.insert(V));
> +  } while (Visited.insert(V).second);
> 
>   return V;
> }
> @@ -522,7 +522,7 @@ static bool isDereferenceablePointer(con
>   // For GEPs, determine if the indexing lands within the allocated object.
>   if (const GEPOperator *GEP = dyn_cast<GEPOperator>(V)) {
>     // Conservatively require that the base pointer be fully dereferenceable.
> -    if (!Visited.insert(GEP->getOperand(0)))
> +    if (!Visited.insert(GEP->getOperand(0)).second)
>       return false;
>     if (!isDereferenceablePointer(GEP->getOperand(0), DL, Visited))
>       return false;
> 
> Modified: llvm/trunk/lib/IR/Verifier.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Verifier.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/IR/Verifier.cpp (original)
> +++ llvm/trunk/lib/IR/Verifier.cpp Wed Nov 19 01:49:26 2014
> @@ -480,7 +480,7 @@ void Verifier::visitGlobalVariable(const
> 
>   while (!WorkStack.empty()) {
>     const Value *V = WorkStack.pop_back_val();
> -    if (!Visited.insert(V))
> +    if (!Visited.insert(V).second)
>       continue;
> 
>     if (const User *U = dyn_cast<User>(V)) {
> @@ -510,7 +510,7 @@ void Verifier::visitAliaseeSubExpr(Small
>     Assert1(!GV->isDeclaration(), "Alias must point to a definition", &GA);
> 
>     if (const auto *GA2 = dyn_cast<GlobalAlias>(GV)) {
> -      Assert1(Visited.insert(GA2), "Aliases cannot form a cycle", &GA);
> +      Assert1(Visited.insert(GA2).second, "Aliases cannot form a cycle", &GA);
> 
>       Assert1(!GA2->mayBeOverridden(), "Alias cannot point to a weak alias",
>               &GA);
> @@ -568,7 +568,7 @@ void Verifier::visitNamedMDNode(const Na
> void Verifier::visitMDNode(MDNode &MD, Function *F) {
>   // Only visit each node once.  Metadata can be mutually recursive, so this
>   // avoids infinite recursion here, as well as being an optimization.
> -  if (!MDNodes.insert(&MD))
> +  if (!MDNodes.insert(&MD).second)
>     return;
> 
>   for (unsigned i = 0, e = MD.getNumOperands(); i != e; ++i) {
> @@ -1218,7 +1218,7 @@ void Verifier::visitSwitchInst(SwitchIns
>   for (SwitchInst::CaseIt i = SI.case_begin(), e = SI.case_end(); i != e; ++i) {
>     Assert1(i.getCaseValue()->getType() == SwitchTy,
>             "Switch constants must all be same type as switch value!", &SI);
> -    Assert2(Constants.insert(i.getCaseValue()),
> +    Assert2(Constants.insert(i.getCaseValue()).second,
>             "Duplicate integer as switch case", &SI, i.getCaseValue());
>   }
> 
> @@ -2253,7 +2253,7 @@ void Verifier::visitInstruction(Instruct
> 
>         while (!Stack.empty()) {
>           const ConstantExpr *V = Stack.pop_back_val();
> -          if (!Visited.insert(V))
> +          if (!Visited.insert(V).second)
>             continue;
> 
>           VerifyConstantExprBitcastType(V);
> 
> Modified: llvm/trunk/lib/Linker/LinkModules.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Linker/LinkModules.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Linker/LinkModules.cpp (original)
> +++ llvm/trunk/lib/Linker/LinkModules.cpp Wed Nov 19 01:49:26 2014
> @@ -152,7 +152,7 @@ bool TypeMapTy::areTypesIsomorphic(Type
>     // same opaque type then we fail.
>     if (cast<StructType>(DstTy)->isOpaque()) {
>       // We can only map one source type onto the opaque destination type.
> -      if (!DstResolvedOpaqueTypes.insert(cast<StructType>(DstTy)))
> +      if (!DstResolvedOpaqueTypes.insert(cast<StructType>(DstTy)).second)
>         return false;
>       SrcDefinitionsToResolve.push_back(SSTy);
>       Entry = DstTy;
> 
> Modified: llvm/trunk/lib/Support/CommandLine.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/CommandLine.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/CommandLine.cpp (original)
> +++ llvm/trunk/lib/Support/CommandLine.cpp Wed Nov 19 01:49:26 2014
> @@ -1455,7 +1455,7 @@ sortOpts(StringMap<Option*> &OptMap,
>       continue;
> 
>     // If we've already seen this option, don't add it to the list again.
> -    if (!OptionSet.insert(I->second))
> +    if (!OptionSet.insert(I->second).second)
>       continue;
> 
>     Opts.push_back(std::pair<const char *, Option*>(I->getKey().data(),
> 
> Modified: llvm/trunk/lib/Support/SmallPtrSet.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/SmallPtrSet.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/SmallPtrSet.cpp (original)
> +++ llvm/trunk/lib/Support/SmallPtrSet.cpp Wed Nov 19 01:49:26 2014
> @@ -34,18 +34,19 @@ void SmallPtrSetImplBase::shrink_and_cle
>   memset(CurArray, -1, CurArraySize*sizeof(void*));
> }
> 
> -bool SmallPtrSetImplBase::insert_imp(const void * Ptr) {
> +std::pair<const void *const *, bool>
> +SmallPtrSetImplBase::insert_imp(const void *Ptr) {
>   if (isSmall()) {
>     // Check to see if it is already in the set.
>     for (const void **APtr = SmallArray, **E = SmallArray+NumElements;
>          APtr != E; ++APtr)
>       if (*APtr == Ptr)
> -        return false;
> -    
> +        return std::make_pair(APtr, false);
> +
>     // Nope, there isn't.  If we stay small, just 'pushback' now.
>     if (NumElements < CurArraySize) {
>       SmallArray[NumElements++] = Ptr;
> -      return true;
> +      return std::make_pair(SmallArray + (NumElements - 1), true);
>     }
>     // Otherwise, hit the big set case, which will call grow.
>   }
> @@ -61,14 +62,15 @@ bool SmallPtrSetImplBase::insert_imp(con
> 
>   // Okay, we know we have space.  Find a hash bucket.
>   const void **Bucket = const_cast<const void**>(FindBucketFor(Ptr));
> -  if (*Bucket == Ptr) return false; // Already inserted, good.
> -  
> +  if (*Bucket == Ptr)
> +    return std::make_pair(Bucket, false); // Already inserted, good.
> +
>   // Otherwise, insert it!
>   if (*Bucket == getTombstoneMarker())
>     --NumTombstones;
>   *Bucket = Ptr;
>   ++NumElements;  // Track density.
> -  return true;
> +  return std::make_pair(Bucket, true);
> }
> 
> bool SmallPtrSetImplBase::erase_imp(const void * Ptr) {
> 
> Modified: llvm/trunk/lib/Target/AArch64/AArch64PromoteConstant.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64PromoteConstant.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/AArch64/AArch64PromoteConstant.cpp (original)
> +++ llvm/trunk/lib/Target/AArch64/AArch64PromoteConstant.cpp Wed Nov 19 01:49:26 2014
> @@ -569,7 +569,7 @@ bool AArch64PromoteConstant::runOnFuncti
>         // global. Do not promote constant expressions either, as they may
>         // require some code expansion.
>         if (Cst && !isa<GlobalValue>(Cst) && !isa<ConstantExpr>(Cst) &&
> -            AlreadyChecked.insert(Cst))
> +            AlreadyChecked.insert(Cst).second)
>           LocalChange |= promoteConstant(Cst);
>       }
>     }
> 
> Modified: llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp (original)
> +++ llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp Wed Nov 19 01:49:26 2014
> @@ -6943,7 +6943,7 @@ EmitSjLjDispatchBlock(MachineInstr *MI,
>   for (std::vector<MachineBasicBlock*>::iterator
>          I = LPadList.begin(), E = LPadList.end(); I != E; ++I) {
>     MachineBasicBlock *CurMBB = *I;
> -    if (SeenMBBs.insert(CurMBB))
> +    if (SeenMBBs.insert(CurMBB).second)
>       DispContBB->addSuccessor(CurMBB);
>   }
> 
> 
> Modified: llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp (original)
> +++ llvm/trunk/lib/Target/Mips/MipsDelaySlotFiller.cpp Wed Nov 19 01:49:26 2014
> @@ -455,7 +455,8 @@ bool MemDefsUses::hasHazard_(const Machi
> 
> bool MemDefsUses::updateDefsUses(ValueType V, bool MayStore) {
>   if (MayStore)
> -    return !Defs.insert(V) || Uses.count(V) || SeenNoObjStore || SeenNoObjLoad;
> +    return !Defs.insert(V).second || Uses.count(V) || SeenNoObjStore ||
> +           SeenNoObjLoad;
> 
>   Uses.insert(V);
>   return Defs.count(V) || SeenNoObjStore;
> 
> Modified: llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp (original)
> +++ llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp Wed Nov 19 01:49:26 2014
> @@ -7649,7 +7649,7 @@ static bool findConsecutiveLoad(LoadSDNo
>   // nodes just above the top-level loads and token factors.
>   while (!Queue.empty()) {
>     SDNode *ChainNext = Queue.pop_back_val();
> -    if (!Visited.insert(ChainNext))
> +    if (!Visited.insert(ChainNext).second)
>       continue;
> 
>     if (MemSDNode *ChainLD = dyn_cast<MemSDNode>(ChainNext)) {
> @@ -7680,7 +7680,7 @@ static bool findConsecutiveLoad(LoadSDNo
> 
>     while (!Queue.empty()) {
>       SDNode *LoadRoot = Queue.pop_back_val();
> -      if (!Visited.insert(LoadRoot))
> +      if (!Visited.insert(LoadRoot).second)
>         continue;
> 
>       if (MemSDNode *ChainLD = dyn_cast<MemSDNode>(LoadRoot))
> @@ -7810,7 +7810,7 @@ SDValue PPCTargetLowering::DAGCombineTru
>     SDValue BinOp = BinOps.back();
>     BinOps.pop_back();
> 
> -    if (!Visited.insert(BinOp.getNode()))
> +    if (!Visited.insert(BinOp.getNode()).second)
>       continue;
> 
>     PromOps.push_back(BinOp);
> @@ -8024,7 +8024,7 @@ SDValue PPCTargetLowering::DAGCombineExt
>     SDValue BinOp = BinOps.back();
>     BinOps.pop_back();
> 
> -    if (!Visited.insert(BinOp.getNode()))
> +    if (!Visited.insert(BinOp.getNode()).second)
>       continue;
> 
>     PromOps.push_back(BinOp);
> 
> Modified: llvm/trunk/lib/Target/X86/X86FloatingPoint.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FloatingPoint.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86FloatingPoint.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86FloatingPoint.cpp Wed Nov 19 01:49:26 2014
> @@ -330,7 +330,7 @@ bool FPS::runOnMachineFunction(MachineFu
>   // Process any unreachable blocks in arbitrary order now.
>   if (MF.size() != Processed.size())
>     for (MachineFunction::iterator BB = MF.begin(), E = MF.end(); BB != E; ++BB)
> -      if (Processed.insert(BB))
> +      if (Processed.insert(BB).second)
>         Changed |= processBasicBlock(MF, *BB);
> 
>   LiveBundles.clear();
> 
> Modified: llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp (original)
> +++ llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp Wed Nov 19 01:49:26 2014
> @@ -182,7 +182,7 @@ bool ArgPromotion::canPaddingBeAccessed(
>     Value *V = WorkList.back();
>     WorkList.pop_back();
>     if (isa<GetElementPtrInst>(V) || isa<PHINode>(V)) {
> -      if (PtrValues.insert(V))
> +      if (PtrValues.insert(V).second)
>         WorkList.insert(WorkList.end(), V->user_begin(), V->user_end());
>     } else if (StoreInst *Store = dyn_cast<StoreInst>(V)) {
>       Stores.push_back(Store);
> 
> Modified: llvm/trunk/lib/Transforms/IPO/FunctionAttrs.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/FunctionAttrs.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/IPO/FunctionAttrs.cpp (original)
> +++ llvm/trunk/lib/Transforms/IPO/FunctionAttrs.cpp Wed Nov 19 01:49:26 2014
> @@ -446,7 +446,7 @@ determinePointerReadAttrs(Argument *A,
>     case Instruction::AddrSpaceCast:
>       // The original value is not read/written via this if the new value isn't.
>       for (Use &UU : I->uses())
> -        if (Visited.insert(&UU))
> +        if (Visited.insert(&UU).second)
>           Worklist.push_back(&UU);
>       break;
> 
> @@ -460,7 +460,7 @@ determinePointerReadAttrs(Argument *A,
>       auto AddUsersToWorklistIfCapturing = [&] {
>         if (Captures)
>           for (Use &UU : I->uses())
> -            if (Visited.insert(&UU))
> +            if (Visited.insert(&UU).second)
>               Worklist.push_back(&UU);
>       };
> 
> 
> Modified: llvm/trunk/lib/Transforms/IPO/GlobalDCE.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/GlobalDCE.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/IPO/GlobalDCE.cpp (original)
> +++ llvm/trunk/lib/Transforms/IPO/GlobalDCE.cpp Wed Nov 19 01:49:26 2014
> @@ -185,7 +185,7 @@ bool GlobalDCE::runOnModule(Module &M) {
> /// recursively mark anything that it uses as also needed.
> void GlobalDCE::GlobalIsNeeded(GlobalValue *G) {
>   // If the global is already in the set, no need to reprocess it.
> -  if (!AliveGlobals.insert(G))
> +  if (!AliveGlobals.insert(G).second)
>     return;
> 
>   Module *M = G->getParent();
> @@ -238,7 +238,7 @@ void GlobalDCE::MarkUsedGlobalsAsNeeded(
>   for (User::op_iterator I = C->op_begin(), E = C->op_end(); I != E; ++I) {
>     // If we've already processed this constant there's no need to do it again.
>     Constant *Op = dyn_cast<Constant>(*I);
> -    if (Op && SeenConstants.insert(Op))
> +    if (Op && SeenConstants.insert(Op).second)
>       MarkUsedGlobalsAsNeeded(Op);
>   }
> }
> 
> Modified: llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp (original)
> +++ llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp Wed Nov 19 01:49:26 2014
> @@ -639,7 +639,7 @@ static bool AllUsesOfValueWillTrapIfNull
>     } else if (const PHINode *PN = dyn_cast<PHINode>(U)) {
>       // If we've already seen this phi node, ignore it, it has already been
>       // checked.
> -      if (PHIs.insert(PN) && !AllUsesOfValueWillTrapIfNull(PN, PHIs))
> +      if (PHIs.insert(PN).second && !AllUsesOfValueWillTrapIfNull(PN, PHIs))
>         return false;
>     } else if (isa<ICmpInst>(U) &&
>                isa<ConstantPointerNull>(U->getOperand(1))) {
> @@ -982,7 +982,7 @@ static bool ValueIsOnlyUsedLocallyOrStor
>     if (const PHINode *PN = dyn_cast<PHINode>(Inst)) {
>       // PHIs are ok if all uses are ok.  Don't infinitely recurse through PHI
>       // cycles.
> -      if (PHIs.insert(PN))
> +      if (PHIs.insert(PN).second)
>         if (!ValueIsOnlyUsedLocallyOrStoredToOneGlobal(PN, GV, PHIs))
>           return false;
>       continue;
> @@ -1073,11 +1073,11 @@ static bool LoadUsesSimpleEnoughForHeapS
>     }
> 
>     if (const PHINode *PN = dyn_cast<PHINode>(UI)) {
> -      if (!LoadUsingPHIsPerLoad.insert(PN))
> +      if (!LoadUsingPHIsPerLoad.insert(PN).second)
>         // This means some phi nodes are dependent on each other.
>         // Avoid infinite looping!
>         return false;
> -      if (!LoadUsingPHIs.insert(PN))
> +      if (!LoadUsingPHIs.insert(PN).second)
>         // If we have already analyzed this PHI, then it is safe.
>         continue;
> 
> @@ -2045,7 +2045,8 @@ isSimpleEnoughValueToCommit(Constant *C,
>                             SmallPtrSetImpl<Constant*> &SimpleConstants,
>                             const DataLayout *DL) {
>   // If we already checked this constant, we win.
> -  if (!SimpleConstants.insert(C)) return true;
> +  if (!SimpleConstants.insert(C).second)
> +    return true;
>   // Check the constant.
>   return isSimpleEnoughValueToCommitHelper(C, SimpleConstants, DL);
> }
> @@ -2670,7 +2671,7 @@ bool Evaluator::EvaluateFunction(Functio
>     // Okay, we succeeded in evaluating this control flow.  See if we have
>     // executed the new block before.  If so, we have a looping function,
>     // which we cannot evaluate in reasonable time.
> -    if (!ExecutedBlocks.insert(NextBB))
> +    if (!ExecutedBlocks.insert(NextBB).second)
>       return false;  // looped!
> 
>     // Okay, we have never been in this block before.  Check to see if there
> @@ -2779,8 +2780,10 @@ public:
>   }
>   bool usedErase(GlobalValue *GV) { return Used.erase(GV); }
>   bool compilerUsedErase(GlobalValue *GV) { return CompilerUsed.erase(GV); }
> -  bool usedInsert(GlobalValue *GV) { return Used.insert(GV); }
> -  bool compilerUsedInsert(GlobalValue *GV) { return CompilerUsed.insert(GV); }
> +  bool usedInsert(GlobalValue *GV) { return Used.insert(GV).second; }
> +  bool compilerUsedInsert(GlobalValue *GV) {
> +    return CompilerUsed.insert(GV).second;
> +  }
> 
>   void syncVariablesAndSets() {
>     if (UsedV)
> @@ -2973,7 +2976,7 @@ static bool cxxDtorIsEmpty(const Functio
>       SmallPtrSet<const Function *, 8> NewCalledFunctions(CalledFunctions);
> 
>       // Don't treat recursive functions as empty.
> -      if (!NewCalledFunctions.insert(CalledFn))
> +      if (!NewCalledFunctions.insert(CalledFn).second)
>         return false;
> 
>       if (!cxxDtorIsEmpty(*CalledFn, NewCalledFunctions))
> 
> Modified: llvm/trunk/lib/Transforms/IPO/Inliner.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/Inliner.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/IPO/Inliner.cpp (original)
> +++ llvm/trunk/lib/Transforms/IPO/Inliner.cpp Wed Nov 19 01:49:26 2014
> @@ -219,7 +219,7 @@ static bool InlineCallIfPossible(CallSit
> 
>       // If the inlined function already uses this alloca then we can't reuse
>       // it.
> -      if (!UsedAllocas.insert(AvailableAlloca))
> +      if (!UsedAllocas.insert(AvailableAlloca).second)
>         continue;
> 
>       // Otherwise, we *can* reuse it, RAUW AI into AvailableAlloca and declare
> 
> Modified: llvm/trunk/lib/Transforms/IPO/MergeFunctions.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/MergeFunctions.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/IPO/MergeFunctions.cpp (original)
> +++ llvm/trunk/lib/Transforms/IPO/MergeFunctions.cpp Wed Nov 19 01:49:26 2014
> @@ -1049,7 +1049,7 @@ int FunctionComparator::compare() {
> 
>     assert(TermL->getNumSuccessors() == TermR->getNumSuccessors());
>     for (unsigned i = 0, e = TermL->getNumSuccessors(); i != e; ++i) {
> -      if (!VisitedBBs.insert(TermL->getSuccessor(i)))
> +      if (!VisitedBBs.insert(TermL->getSuccessor(i)).second)
>         continue;
> 
>       FnLBBs.push_back(TermL->getSuccessor(i));
> 
> Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp (original)
> +++ llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp Wed Nov 19 01:49:26 2014
> @@ -511,7 +511,7 @@ static bool DeadPHICycle(PHINode *PN,
>   if (!PN->hasOneUse()) return false;
> 
>   // Remember this node, and if we find the cycle, return.
> -  if (!PotentiallyDeadPHIs.insert(PN))
> +  if (!PotentiallyDeadPHIs.insert(PN).second)
>     return true;
> 
>   // Don't scan crazily complex things.
> @@ -530,7 +530,7 @@ static bool DeadPHICycle(PHINode *PN,
> static bool PHIsEqualValue(PHINode *PN, Value *NonPhiInVal,
>                            SmallPtrSetImpl<PHINode*> &ValueEqualPHIs) {
>   // See if we already saw this PHI node.
> -  if (!ValueEqualPHIs.insert(PN))
> +  if (!ValueEqualPHIs.insert(PN).second)
>     return true;
> 
>   // Don't scan crazily complex things.
> @@ -654,7 +654,7 @@ Instruction *InstCombiner::SliceUpIllega
> 
>       // If the user is a PHI, inspect its uses recursively.
>       if (PHINode *UserPN = dyn_cast<PHINode>(UserI)) {
> -        if (PHIsInspected.insert(UserPN))
> +        if (PHIsInspected.insert(UserPN).second)
>           PHIsToSlice.push_back(UserPN);
>         continue;
>       }
> 
> Modified: llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp (original)
> +++ llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp Wed Nov 19 01:49:26 2014
> @@ -2341,7 +2341,7 @@ Instruction *InstCombiner::visitLandingP
> 
>       // If we already saw this clause, there is no point in having a second
>       // copy of it.
> -      if (AlreadyCaught.insert(TypeInfo)) {
> +      if (AlreadyCaught.insert(TypeInfo).second) {
>         // This catch clause was not already seen.
>         NewClauses.push_back(CatchClause);
>       } else {
> @@ -2423,7 +2423,7 @@ Instruction *InstCombiner::visitLandingP
>             continue;
>           // There is no point in having multiple copies of the same typeinfo in
>           // a filter, so only add it if we didn't already.
> -          if (SeenInFilter.insert(TypeInfo))
> +          if (SeenInFilter.insert(TypeInfo).second)
>             NewFilterElts.push_back(cast<Constant>(Elt));
>         }
>         // A filter containing a catch-all cannot match anything by definition.
> @@ -2675,7 +2675,8 @@ static bool AddReachableCodeToWorklist(B
>     BB = Worklist.pop_back_val();
> 
>     // We have now visited this block!  If we've already been here, ignore it.
> -    if (!Visited.insert(BB)) continue;
> +    if (!Visited.insert(BB).second)
> +      continue;
> 
>     for (BasicBlock::iterator BBI = BB->begin(), E = BB->end(); BBI != E; ) {
>       Instruction *Inst = BBI++;
> 
> Modified: llvm/trunk/lib/Transforms/Instrumentation/AddressSanitizer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/AddressSanitizer.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Instrumentation/AddressSanitizer.cpp (original)
> +++ llvm/trunk/lib/Transforms/Instrumentation/AddressSanitizer.cpp Wed Nov 19 01:49:26 2014
> @@ -1317,7 +1317,7 @@ bool AddressSanitizer::runOnFunction(Fun
>       if (Value *Addr =
>               isInterestingMemoryAccess(&Inst, &IsWrite, &Alignment)) {
>         if (ClOpt && ClOptSameTemp) {
> -          if (!TempsToInstrument.insert(Addr))
> +          if (!TempsToInstrument.insert(Addr).second)
>             continue;  // We've seen this temp in the current BB.
>         }
>       } else if (ClInvalidPointerPairs &&
> 
> Modified: llvm/trunk/lib/Transforms/ObjCARC/DependencyAnalysis.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/ObjCARC/DependencyAnalysis.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/ObjCARC/DependencyAnalysis.cpp (original)
> +++ llvm/trunk/lib/Transforms/ObjCARC/DependencyAnalysis.cpp Wed Nov 19 01:49:26 2014
> @@ -229,7 +229,7 @@ llvm::objcarc::FindDependencies(Dependen
>           // Add the predecessors to the worklist.
>           do {
>             BasicBlock *PredBB = *PI;
> -            if (Visited.insert(PredBB))
> +            if (Visited.insert(PredBB).second)
>               Worklist.push_back(std::make_pair(PredBB, PredBB->end()));
>           } while (++PI != PE);
>         break;
> 
> Modified: llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp (original)
> +++ llvm/trunk/lib/Transforms/ObjCARC/ObjCARCOpts.cpp Wed Nov 19 01:49:26 2014
> @@ -188,7 +188,7 @@ static inline bool AreAnyUnderlyingObjec
>     if (isa<AllocaInst>(P))
>       return true;
> 
> -    if (!Visited.insert(P))
> +    if (!Visited.insert(P).second)
>       continue;
> 
>     if (const SelectInst *SI = dyn_cast<const SelectInst>(P)) {
> @@ -412,7 +412,7 @@ bool RRInfo::Merge(const RRInfo &Other)
>     // that makes this a partial merge.
>     bool Partial = ReverseInsertPts.size() != Other.ReverseInsertPts.size();
>     for (Instruction *Inst : Other.ReverseInsertPts)
> -      Partial |= ReverseInsertPts.insert(Inst);
> +      Partial |= ReverseInsertPts.insert(Inst).second;
>     return Partial;
> }
> 
> @@ -2194,7 +2194,7 @@ ComputePostOrders(Function &F,
> 
>     while (SuccStack.back().second != SE) {
>       BasicBlock *SuccBB = *SuccStack.back().second++;
> -      if (Visited.insert(SuccBB)) {
> +      if (Visited.insert(SuccBB).second) {
>         TerminatorInst *TI = cast<TerminatorInst>(&SuccBB->back());
>         SuccStack.push_back(std::make_pair(SuccBB, succ_iterator(TI)));
>         BBStates[CurrBB].addSucc(SuccBB);
> @@ -2235,7 +2235,7 @@ ComputePostOrders(Function &F,
>       BBState::edge_iterator PE = BBStates[PredStack.back().first].pred_end();
>       while (PredStack.back().second != PE) {
>         BasicBlock *BB = *PredStack.back().second++;
> -        if (Visited.insert(BB)) {
> +        if (Visited.insert(BB).second) {
>           PredStack.push_back(std::make_pair(BB, BBStates[BB].pred_begin()));
>           goto reverse_dfs_next_succ;
>         }
> @@ -2390,7 +2390,7 @@ ObjCARCOpt::ConnectTDBUTraversals(DenseM
>         if (!NewRetainReleaseRRI.Calls.count(NewRetain))
>           return false;
> 
> -        if (ReleasesToMove.Calls.insert(NewRetainRelease)) {
> +        if (ReleasesToMove.Calls.insert(NewRetainRelease).second) {
> 
>           // If we overflow when we compute the path count, don't remove/move
>           // anything.
> @@ -2422,7 +2422,7 @@ ObjCARCOpt::ConnectTDBUTraversals(DenseM
>           // Collect the optimal insertion points.
>           if (!KnownSafe)
>             for (Instruction *RIP : NewRetainReleaseRRI.ReverseInsertPts) {
> -              if (ReleasesToMove.ReverseInsertPts.insert(RIP)) {
> +              if (ReleasesToMove.ReverseInsertPts.insert(RIP).second) {
>                 // If we overflow when we compute the path count, don't
>                 // remove/move anything.
>                 const BBState &RIPBBState = BBStates[RIP->getParent()];
> @@ -2467,7 +2467,7 @@ ObjCARCOpt::ConnectTDBUTraversals(DenseM
>         if (!NewReleaseRetainRRI.Calls.count(NewRelease))
>           return false;
> 
> -        if (RetainsToMove.Calls.insert(NewReleaseRetain)) {
> +        if (RetainsToMove.Calls.insert(NewReleaseRetain).second) {
>           // If we overflow when we compute the path count, don't remove/move
>           // anything.
>           const BBState &NRRBBState = BBStates[NewReleaseRetain->getParent()];
> @@ -2483,7 +2483,7 @@ ObjCARCOpt::ConnectTDBUTraversals(DenseM
>           // Collect the optimal insertion points.
>           if (!KnownSafe)
>             for (Instruction *RIP : NewReleaseRetainRRI.ReverseInsertPts) {
> -              if (RetainsToMove.ReverseInsertPts.insert(RIP)) {
> +              if (RetainsToMove.ReverseInsertPts.insert(RIP).second) {
>                 // If we overflow when we compute the path count, don't
>                 // remove/move anything.
>                 const BBState &RIPBBState = BBStates[RIP->getParent()];
> 
> Modified: llvm/trunk/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp (original)
> +++ llvm/trunk/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp Wed Nov 19 01:49:26 2014
> @@ -62,7 +62,7 @@ bool ProvenanceAnalysis::relatedPHI(cons
>   SmallPtrSet<const Value *, 4> UniqueSrc;
>   for (unsigned i = 0, e = A->getNumIncomingValues(); i != e; ++i) {
>     const Value *PV1 = A->getIncomingValue(i);
> -    if (UniqueSrc.insert(PV1) && related(PV1, B))
> +    if (UniqueSrc.insert(PV1).second && related(PV1, B))
>       return true;
>   }
> 
> @@ -94,7 +94,7 @@ static bool IsStoredObjCPointer(const Va
>       if (isa<PtrToIntInst>(P))
>         // Assume the worst.
>         return true;
> -      if (Visited.insert(Ur))
> +      if (Visited.insert(Ur).second)
>         Worklist.push_back(Ur);
>     }
>   } while (!Worklist.empty());
> 
> Modified: llvm/trunk/lib/Transforms/Scalar/ADCE.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/ADCE.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/ADCE.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/ADCE.cpp Wed Nov 19 01:49:26 2014
> @@ -73,7 +73,7 @@ bool ADCE::runOnFunction(Function& F) {
>     for (Instruction::op_iterator OI = curr->op_begin(), OE = curr->op_end();
>          OI != OE; ++OI)
>       if (Instruction* Inst = dyn_cast<Instruction>(OI))
> -        if (alive.insert(Inst))
> +        if (alive.insert(Inst).second)
>           worklist.push_back(Inst);
>   }
> 
> 
> Modified: llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp Wed Nov 19 01:49:26 2014
> @@ -1102,7 +1102,7 @@ void WidenIV::pushNarrowIVUsers(Instruct
>     Instruction *NarrowUser = cast<Instruction>(U);
> 
>     // Handle data flow merges and bizarre phi cycles.
> -    if (!Widened.insert(NarrowUser))
> +    if (!Widened.insert(NarrowUser).second)
>       continue;
> 
>     NarrowIVUsers.push_back(NarrowIVDefUse(NarrowDef, NarrowUser, WideDef));
> @@ -1284,7 +1284,7 @@ void IndVarSimplify::SimplifyAndExtend(L
> static bool isHighCostExpansion(const SCEV *S, BranchInst *BI,
>                                 SmallPtrSetImpl<const SCEV*> &Processed,
>                                 ScalarEvolution *SE) {
> -  if (!Processed.insert(S))
> +  if (!Processed.insert(S).second)
>     return false;
> 
>   // If the backedge-taken count is a UDiv, it's very likely a UDiv that
> @@ -1475,7 +1475,7 @@ static bool hasConcreteDefImpl(Value *V,
> 
>   // Optimistically handle other instructions.
>   for (User::op_iterator OI = I->op_begin(), E = I->op_end(); OI != E; ++OI) {
> -    if (!Visited.insert(*OI))
> +    if (!Visited.insert(*OI).second)
>       continue;
>     if (!hasConcreteDefImpl(*OI, Visited, Depth+1))
>       return false;
> 
> Modified: llvm/trunk/lib/Transforms/Scalar/JumpThreading.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/JumpThreading.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/JumpThreading.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/JumpThreading.cpp Wed Nov 19 01:49:26 2014
> @@ -932,7 +932,7 @@ bool JumpThreading::SimplifyPartiallyRed
>     BasicBlock *PredBB = *PI;
> 
>     // If we already scanned this predecessor, skip it.
> -    if (!PredsScanned.insert(PredBB))
> +    if (!PredsScanned.insert(PredBB).second)
>       continue;
> 
>     // Scan the predecessor to see if the value is available in the pred.
> @@ -1151,7 +1151,7 @@ bool JumpThreading::ProcessThreadableEdg
> 
>   for (unsigned i = 0, e = PredValues.size(); i != e; ++i) {
>     BasicBlock *Pred = PredValues[i].second;
> -    if (!SeenPreds.insert(Pred))
> +    if (!SeenPreds.insert(Pred).second)
>       continue;  // Duplicate predecessor entry.
> 
>     // If the predecessor ends with an indirect goto, we can't change its
> 
> Modified: llvm/trunk/lib/Transforms/Scalar/LoopInstSimplify.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopInstSimplify.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/LoopInstSimplify.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/LoopInstSimplify.cpp Wed Nov 19 01:49:26 2014
> @@ -152,7 +152,7 @@ bool LoopInstSimplify::runOnLoop(Loop *L
>       for (succ_iterator SI = succ_begin(BB), SE = succ_end(BB); SI != SE;
>            ++SI) {
>         BasicBlock *SuccBB = *SI;
> -        if (!Visited.insert(SuccBB))
> +        if (!Visited.insert(SuccBB).second)
>           continue;
> 
>         const Loop *SuccLoop = LI->getLoopFor(SuccBB);
> @@ -165,7 +165,7 @@ bool LoopInstSimplify::runOnLoop(Loop *L
> 
>           for (unsigned i = 0; i < SubLoopExitBlocks.size(); ++i) {
>             BasicBlock *ExitBB = SubLoopExitBlocks[i];
> -            if (LI->getLoopFor(ExitBB) == L && Visited.insert(ExitBB))
> +            if (LI->getLoopFor(ExitBB) == L && Visited.insert(ExitBB).second)
>               VisitStack.push_back(WorklistItem(ExitBB, false));
>           }
> 
> 
> Modified: llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp Wed Nov 19 01:49:26 2014
> @@ -762,7 +762,7 @@ static bool isHighCostExpansion(const SC
>                                Processed, SE);
>   }
> 
> -  if (!Processed.insert(S))
> +  if (!Processed.insert(S).second)
>     return false;
> 
>   if (const SCEVAddExpr *Add = dyn_cast<SCEVAddExpr>(S)) {
> @@ -975,7 +975,7 @@ void Cost::RatePrimaryRegister(const SCE
>     Lose();
>     return;
>   }
> -  if (Regs.insert(Reg)) {
> +  if (Regs.insert(Reg).second) {
>     RateRegister(Reg, Regs, L, SE, DT);
>     if (LoserRegs && isLoser())
>       LoserRegs->insert(Reg);
> @@ -2802,7 +2802,7 @@ void LSRInstance::CollectChains() {
>       User::op_iterator IVOpIter = findIVOperand(I->op_begin(), IVOpEnd, L, SE);
>       while (IVOpIter != IVOpEnd) {
>         Instruction *IVOpInst = cast<Instruction>(*IVOpIter);
> -        if (UniqueOperands.insert(IVOpInst))
> +        if (UniqueOperands.insert(IVOpInst).second)
>           ChainInstruction(I, IVOpInst, ChainUsersVec);
>         IVOpIter = findIVOperand(std::next(IVOpIter), IVOpEnd, L, SE);
>       }
> @@ -3122,7 +3122,7 @@ LSRInstance::CollectLoopInvariantFixupsA
>     const SCEV *S = Worklist.pop_back_val();
> 
>     // Don't process the same SCEV twice
> -    if (!Visited.insert(S))
> +    if (!Visited.insert(S).second)
>       continue;
> 
>     if (const SCEVNAryExpr *N = dyn_cast<SCEVNAryExpr>(S))
> @@ -3774,7 +3774,7 @@ void LSRInstance::GenerateCrossUseConsta
>         for (int LUIdx = UsedByIndices.find_first(); LUIdx != -1;
>              LUIdx = UsedByIndices.find_next(LUIdx))
>           // Make a memo of this use, offset, and register tuple.
> -          if (UniqueItems.insert(std::make_pair(LUIdx, Imm)))
> +          if (UniqueItems.insert(std::make_pair(LUIdx, Imm)).second)
>             WorkItems.push_back(WorkItem(LUIdx, Imm, OrigReg));
>       }
>     }
> 
> Modified: llvm/trunk/lib/Transforms/Scalar/Reassociate.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/Reassociate.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/Reassociate.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/Reassociate.cpp Wed Nov 19 01:49:26 2014
> @@ -623,7 +623,7 @@ static bool LinearizeExprTree(BinaryOper
>       // If this is a binary operation of the right kind with only one use then
>       // add its operands to the expression.
>       if (BinaryOperator *BO = isReassociableOp(Op, Opcode)) {
> -        assert(Visited.insert(Op) && "Not first visit!");
> +        assert(Visited.insert(Op).second && "Not first visit!");
>         DEBUG(dbgs() << "DIRECT ADD: " << *Op << " (" << Weight << ")\n");
>         Worklist.push_back(std::make_pair(BO, Weight));
>         continue;
> @@ -633,7 +633,7 @@ static bool LinearizeExprTree(BinaryOper
>       LeafMap::iterator It = Leaves.find(Op);
>       if (It == Leaves.end()) {
>         // Not in the leaf map.  Must be the first time we saw this operand.
> -        assert(Visited.insert(Op) && "Not first visit!");
> +        assert(Visited.insert(Op).second && "Not first visit!");
>         if (!Op->hasOneUse()) {
>           // This value has uses not accounted for by the expression, so it is
>           // not safe to modify.  Mark it as being a leaf.
> @@ -1609,7 +1609,7 @@ Value *Reassociate::OptimizeAdd(Instruct
>     SmallPtrSet<Value*, 8> Duplicates;
>     for (unsigned i = 0, e = Factors.size(); i != e; ++i) {
>       Value *Factor = Factors[i];
> -      if (!Duplicates.insert(Factor))
> +      if (!Duplicates.insert(Factor).second)
>         continue;
> 
>       unsigned Occ = ++FactorOccurrences[Factor];
> @@ -1960,7 +1960,7 @@ void Reassociate::EraseInst(Instruction
>       // and add that since that's where optimization actually happens.
>       unsigned Opcode = Op->getOpcode();
>       while (Op->hasOneUse() && Op->user_back()->getOpcode() == Opcode &&
> -             Visited.insert(Op))
> +             Visited.insert(Op).second)
>         Op = Op->user_back();
>       RedoInsts.insert(Op);
>     }
> 
> Modified: llvm/trunk/lib/Transforms/Scalar/SCCP.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SCCP.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/SCCP.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/SCCP.cpp Wed Nov 19 01:49:26 2014
> @@ -214,7 +214,8 @@ public:
>   ///
>   /// This returns true if the block was not considered live before.
>   bool MarkBlockExecutable(BasicBlock *BB) {
> -    if (!BBExecutable.insert(BB)) return false;
> +    if (!BBExecutable.insert(BB).second)
> +      return false;
>     DEBUG(dbgs() << "Marking Block Executable: " << BB->getName() << '\n');
>     BBWorkList.push_back(BB);  // Add the block to the work list!
>     return true;
> 
> Modified: llvm/trunk/lib/Transforms/Scalar/SROA.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SROA.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/SROA.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/SROA.cpp Wed Nov 19 01:49:26 2014
> @@ -349,7 +349,7 @@ public:
> 
> private:
>   void markAsDead(Instruction &I) {
> -    if (VisitedDeadInsts.insert(&I))
> +    if (VisitedDeadInsts.insert(&I).second)
>       AS.DeadUsers.push_back(&I);
>   }
> 
> @@ -639,7 +639,7 @@ private:
>       }
> 
>       for (User *U : I->users())
> -        if (Visited.insert(cast<Instruction>(U)))
> +        if (Visited.insert(cast<Instruction>(U)).second)
>           Uses.push_back(std::make_pair(I, cast<Instruction>(U)));
>     } while (!Uses.empty());
> 
> @@ -848,7 +848,7 @@ public:
>       else
>         return false;
> 
> -    } while (Visited.insert(Ptr));
> +    } while (Visited.insert(Ptr).second);
> 
>     return false;
>   }
> @@ -1461,7 +1461,7 @@ static Value *getAdjustedPtr(IRBuilderTy
>         break;
>       Offset += GEPOffset;
>       Ptr = GEP->getPointerOperand();
> -      if (!Visited.insert(Ptr))
> +      if (!Visited.insert(Ptr).second)
>         break;
>     }
> 
> @@ -1498,7 +1498,7 @@ static Value *getAdjustedPtr(IRBuilderTy
>       break;
>     }
>     assert(Ptr->getType()->isPointerTy() && "Unexpected operand type!");
> -  } while (Visited.insert(Ptr));
> +  } while (Visited.insert(Ptr).second);
> 
>   if (!OffsetPtr) {
>     if (!Int8Ptr) {
> @@ -2861,7 +2861,7 @@ private:
>   /// This uses a set to de-duplicate users.
>   void enqueueUsers(Instruction &I) {
>     for (Use &U : I.uses())
> -      if (Visited.insert(U.getUser()))
> +      if (Visited.insert(U.getUser()).second)
>         Queue.push_back(&U);
>   }
> 
> @@ -3588,7 +3588,7 @@ static void enqueueUsersInWorklist(Instr
>                                    SmallVectorImpl<Instruction *> &Worklist,
>                                    SmallPtrSetImpl<Instruction *> &Visited) {
>   for (User *U : I.users())
> -    if (Visited.insert(cast<Instruction>(U)))
> +    if (Visited.insert(cast<Instruction>(U)).second)
>       Worklist.push_back(cast<Instruction>(U));
> }
> 
> 
> Modified: llvm/trunk/lib/Transforms/Scalar/SampleProfile.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SampleProfile.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/SampleProfile.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/SampleProfile.cpp Wed Nov 19 01:49:26 2014
> @@ -305,7 +305,7 @@ void SampleProfileLoader::findEquivalenc
>   for (auto *BB2 : Descendants) {
>     bool IsDomParent = DomTree->dominates(BB2, BB1);
>     bool IsInSameLoop = LI->getLoopFor(BB1) == LI->getLoopFor(BB2);
> -    if (BB1 != BB2 && VisitedBlocks.insert(BB2) && IsDomParent &&
> +    if (BB1 != BB2 && VisitedBlocks.insert(BB2).second && IsDomParent &&
>         IsInSameLoop) {
>       EquivalenceClass[BB2] = BB1;
> 
> @@ -494,7 +494,7 @@ bool SampleProfileLoader::propagateThrou
>                          << " known. Set weight for block: ";
>                   printBlockWeight(dbgs(), BB););
>           }
> -          if (VisitedBlocks.insert(BB))
> +          if (VisitedBlocks.insert(BB).second)
>             Changed = true;
>         } else if (NumUnknownEdges == 1 && VisitedBlocks.count(BB)) {
>           // If there is a single unknown edge and the block has been
> @@ -540,7 +540,7 @@ void SampleProfileLoader::buildEdges(Fun
>       llvm_unreachable("Found a stale predecessors list in a basic block.");
>     for (pred_iterator PI = pred_begin(B1), PE = pred_end(B1); PI != PE; ++PI) {
>       BasicBlock *B2 = *PI;
> -      if (Visited.insert(B2))
> +      if (Visited.insert(B2).second)
>         Predecessors[B1].push_back(B2);
>     }
> 
> @@ -550,7 +550,7 @@ void SampleProfileLoader::buildEdges(Fun
>       llvm_unreachable("Found a stale successors list in a basic block.");
>     for (succ_iterator SI = succ_begin(B1), SE = succ_end(B1); SI != SE; ++SI) {
>       BasicBlock *B2 = *SI;
> -      if (Visited.insert(B2))
> +      if (Visited.insert(B2).second)
>         Successors[B1].push_back(B2);
>     }
>   }
> 
> Modified: llvm/trunk/lib/Transforms/Scalar/ScalarReplAggregates.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/ScalarReplAggregates.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/ScalarReplAggregates.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/ScalarReplAggregates.cpp Wed Nov 19 01:49:26 2014
> @@ -1669,7 +1669,7 @@ void SROA::isSafePHISelectUseForScalarRe
>                                            AllocaInfo &Info) {
>   // If we've already checked this PHI, don't do it again.
>   if (PHINode *PN = dyn_cast<PHINode>(I))
> -    if (!Info.CheckedPHIs.insert(PN))
> +    if (!Info.CheckedPHIs.insert(PN).second)
>       return;
> 
>   for (User *U : I->users()) {
> 
> Modified: llvm/trunk/lib/Transforms/Scalar/TailRecursionElimination.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/TailRecursionElimination.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/TailRecursionElimination.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/TailRecursionElimination.cpp Wed Nov 19 01:49:26 2014
> @@ -179,7 +179,7 @@ struct AllocaDerivedValueTracker {
> 
>     auto AddUsesToWorklist = [&](Value *V) {
>       for (auto &U : V->uses()) {
> -        if (!Visited.insert(&U))
> +        if (!Visited.insert(&U).second)
>           continue;
>         Worklist.push_back(&U);
>       }
> 
> Modified: llvm/trunk/lib/Transforms/Utils/GlobalStatus.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/GlobalStatus.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Utils/GlobalStatus.cpp (original)
> +++ llvm/trunk/lib/Transforms/Utils/GlobalStatus.cpp Wed Nov 19 01:49:26 2014
> @@ -133,7 +133,7 @@ static bool analyzeGlobalAux(const Value
>       } else if (const PHINode *PN = dyn_cast<PHINode>(I)) {
>         // PHI nodes we can check just like select or GEP instructions, but we
>         // have to be careful about infinite recursion.
> -        if (PhiUsers.insert(PN)) // Not already visited.
> +        if (PhiUsers.insert(PN).second) // Not already visited.
>           if (analyzeGlobalAux(I, GS, PhiUsers))
>             return true;
>       } else if (isa<CmpInst>(I)) {
> 
> Modified: llvm/trunk/lib/Transforms/Utils/Local.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/Local.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Utils/Local.cpp (original)
> +++ llvm/trunk/lib/Transforms/Utils/Local.cpp Wed Nov 19 01:49:26 2014
> @@ -392,7 +392,7 @@ bool llvm::RecursivelyDeleteDeadPHINode(
> 
>     // If we find an instruction more than once, we're on a cycle that
>     // won't prove fruitful.
> -    if (!Visited.insert(I)) {
> +    if (!Visited.insert(I).second) {
>       // Break the cycle and delete the instruction and its operands.
>       I->replaceAllUsesWith(UndefValue::get(I->getType()));
>       (void)RecursivelyDeleteTriviallyDeadInstructions(I, TLI);
> @@ -1266,7 +1266,7 @@ static bool markAliveBlocks(BasicBlock *
> 
>     Changed |= ConstantFoldTerminator(BB, true);
>     for (succ_iterator SI = succ_begin(BB), SE = succ_end(BB); SI != SE; ++SI)
> -      if (Reachable.insert(*SI))
> +      if (Reachable.insert(*SI).second)
>         Worklist.push_back(*SI);
>   } while (!Worklist.empty());
>   return Changed;
> 
> Modified: llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp (original)
> +++ llvm/trunk/lib/Transforms/Utils/LoopUnroll.cpp Wed Nov 19 01:49:26 2014
> @@ -112,7 +112,7 @@ FoldBlockIntoPredecessor(BasicBlock *BB,
>   if (LPM) {
>     if (ScalarEvolution *SE = LPM->getAnalysisIfAvailable<ScalarEvolution>()) {
>       if (Loop *L = LI->getLoopFor(BB)) {
> -        if (ForgottenLoops.insert(L))
> +        if (ForgottenLoops.insert(L).second)
>           SE->forgetLoop(L);
>       }
>     }
> 
> Modified: llvm/trunk/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/PromoteMemoryToRegister.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Utils/PromoteMemoryToRegister.cpp (original)
> +++ llvm/trunk/lib/Transforms/Utils/PromoteMemoryToRegister.cpp Wed Nov 19 01:49:26 2014
> @@ -819,7 +819,7 @@ void PromoteMem2Reg::ComputeLiveInBlocks
> 
>     // The block really is live in here, insert it into the set.  If already in
>     // the set, then it has already been processed.
> -    if (!LiveInBlocks.insert(BB))
> +    if (!LiveInBlocks.insert(BB).second)
>       continue;
> 
>     // Since the value is live into BB, it is either defined in a predecessor or
> @@ -899,7 +899,7 @@ void PromoteMem2Reg::DetermineInsertionP
>         if (SuccLevel > RootLevel)
>           continue;
> 
> -        if (!Visited.insert(SuccNode))
> +        if (!Visited.insert(SuccNode).second)
>           continue;
> 
>         BasicBlock *SuccBB = SuccNode->getBlock();
> @@ -1004,7 +1004,7 @@ NextIteration:
>   }
> 
>   // Don't revisit blocks.
> -  if (!Visited.insert(BB))
> +  if (!Visited.insert(BB).second)
>     return;
> 
>   for (BasicBlock::iterator II = BB->begin(); !isa<TerminatorInst>(II);) {
> @@ -1061,7 +1061,7 @@ NextIteration:
>   ++I;
> 
>   for (; I != E; ++I)
> -    if (VisitedSuccs.insert(*I))
> +    if (VisitedSuccs.insert(*I).second)
>       Worklist.push_back(RenamePassData(*I, Pred, IncomingVals));
> 
>   goto NextIteration;
> 
> Modified: llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp (original)
> +++ llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp Wed Nov 19 01:49:26 2014
> @@ -4202,7 +4202,7 @@ bool SimplifyCFGOpt::SimplifyIndirectBr(
>   SmallPtrSet<Value *, 8> Succs;
>   for (unsigned i = 0, e = IBI->getNumDestinations(); i != e; ++i) {
>     BasicBlock *Dest = IBI->getDestination(i);
> -    if (!Dest->hasAddressTaken() || !Succs.insert(Dest)) {
> +    if (!Dest->hasAddressTaken() || !Succs.insert(Dest).second) {
>       Dest->removePredecessor(BB);
>       IBI->removeDestination(i);
>       --i; --e;
> 
> Modified: llvm/trunk/lib/Transforms/Utils/SimplifyIndVar.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/SimplifyIndVar.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Utils/SimplifyIndVar.cpp (original)
> +++ llvm/trunk/lib/Transforms/Utils/SimplifyIndVar.cpp Wed Nov 19 01:49:26 2014
> @@ -347,7 +347,7 @@ static void pushIVUsers(
>     // Also ensure unique worklist users.
>     // If Def is a LoopPhi, it may not be in the Simplified set, so check for
>     // self edges first.
> -    if (UI != Def && Simplified.insert(UI))
> +    if (UI != Def && Simplified.insert(UI).second)
>       SimpleIVUsers.push_back(std::make_pair(UI, Def));
>   }
> }
> 
> Modified: llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp (original)
> +++ llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp Wed Nov 19 01:49:26 2014
> @@ -4801,7 +4801,7 @@ bool LoopVectorizationLegality::canVecto
> 
>     // If we did *not* see this pointer before, insert it to  the read-write
>     // list. At this phase it is only a 'write' list.
> -    if (Seen.insert(Ptr)) {
> +    if (Seen.insert(Ptr).second) {
>       ++NumReadWrites;
> 
>       AliasAnalysis::Location Loc = AA->getLocation(ST);
> @@ -4834,7 +4834,8 @@ bool LoopVectorizationLegality::canVecto
>     // read a few words, modify, and write a few words, and some of the
>     // words may be written to the same address.
>     bool IsReadOnlyPtr = false;
> -    if (Seen.insert(Ptr) || !isStridedPtr(SE, DL, Ptr, TheLoop, Strides)) {
> +    if (Seen.insert(Ptr).second ||
> +        !isStridedPtr(SE, DL, Ptr, TheLoop, Strides)) {
>       ++NumReads;
>       IsReadOnlyPtr = true;
>     }
> @@ -5097,7 +5098,7 @@ bool LoopVectorizationLegality::AddReduc
>       // value must only be used once, except by phi nodes and min/max
>       // reductions which are represented as a cmp followed by a select.
>       ReductionInstDesc IgnoredVal(false, nullptr);
> -      if (VisitedInsts.insert(UI)) {
> +      if (VisitedInsts.insert(UI).second) {
>         if (isa<PHINode>(UI))
>           PHIs.push_back(UI);
>         else
> 
> Modified: llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp (original)
> +++ llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp Wed Nov 19 01:49:26 2014
> @@ -1724,7 +1724,7 @@ int BoUpSLP::getTreeCost() {
>   for (UserList::iterator I = ExternalUses.begin(), E = ExternalUses.end();
>        I != E; ++I) {
>     // We only add extract cost once for the same scalar.
> -    if (!ExtractCostCalculated.insert(I->Scalar))
> +    if (!ExtractCostCalculated.insert(I->Scalar).second)
>       continue;
> 
>     // Uses by ephemeral values are free (because the ephemeral value will be
> @@ -1922,7 +1922,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry
>         ValueList Operands;
>         BasicBlock *IBB = PH->getIncomingBlock(i);
> 
> -        if (!VisitedBBs.insert(IBB)) {
> +        if (!VisitedBBs.insert(IBB).second) {
>           NewPhi->addIncoming(NewPhi->getIncomingValueForBlock(IBB), IBB);
>           continue;
>         }
> @@ -3632,7 +3632,7 @@ bool SLPVectorizer::vectorizeChainsInBlo
> 
>   for (BasicBlock::iterator it = BB->begin(), e = BB->end(); it != e; it++) {
>     // We may go through BB multiple times so skip the one we have checked.
> -    if (!VisitedInstrs.insert(it))
> +    if (!VisitedInstrs.insert(it).second)
>       continue;
> 
>     if (isa<DbgInfoIntrinsic>(it))
> 
> Modified: llvm/trunk/utils/TableGen/CodeGenSchedule.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/CodeGenSchedule.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/utils/TableGen/CodeGenSchedule.cpp (original)
> +++ llvm/trunk/utils/TableGen/CodeGenSchedule.cpp Wed Nov 19 01:49:26 2014
> @@ -182,7 +182,7 @@ void CodeGenSchedModels::addProcModel(Re
> // Recursively find all reachable SchedReadWrite records.
> static void scanSchedRW(Record *RWDef, RecVec &RWDefs,
>                         SmallPtrSet<Record*, 16> &RWSet) {
> -  if (!RWSet.insert(RWDef))
> +  if (!RWSet.insert(RWDef).second)
>     return;
>   RWDefs.push_back(RWDef);
>   // Reads don't current have sequence records, but it can be added later.
> @@ -751,7 +751,7 @@ void CodeGenSchedModels::createInstRWCla
>     for (ArrayRef<Record*>::const_iterator
>            II = InstDefs.begin(), IE = InstDefs.end(); II != IE; ++II) {
>       unsigned OldSCIdx = InstrClassMap[*II];
> -      if (OldSCIdx && RemappedClassIDs.insert(OldSCIdx)) {
> +      if (OldSCIdx && RemappedClassIDs.insert(OldSCIdx).second) {
>         for (RecIter RI = SchedClasses[OldSCIdx].InstRWs.begin(),
>                RE = SchedClasses[OldSCIdx].InstRWs.end(); RI != RE; ++RI) {
>           if ((*RI)->getValueAsDef("SchedModel") == RWModelDef) {
> 
> Modified: llvm/trunk/utils/TableGen/SubtargetEmitter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/SubtargetEmitter.cpp?rev=222334&r1=222333&r2=222334&view=diff
> ==============================================================================
> --- llvm/trunk/utils/TableGen/SubtargetEmitter.cpp (original)
> +++ llvm/trunk/utils/TableGen/SubtargetEmitter.cpp Wed Nov 19 01:49:26 2014
> @@ -386,7 +386,7 @@ EmitStageAndOperandCycleData(raw_ostream
>   for (CodeGenSchedModels::ProcIter PI = SchedModels.procModelBegin(),
>          PE = SchedModels.procModelEnd(); PI != PE; ++PI) {
> 
> -    if (!ItinsDefSet.insert(PI->ItinsDef))
> +    if (!ItinsDefSet.insert(PI->ItinsDef).second)
>       continue;
> 
>     std::vector<Record*> FUs = PI->ItinsDef->getValueAsListOfDefs("FU");
> @@ -565,7 +565,7 @@ EmitItineraries(raw_ostream &OS,
>          PE = SchedModels.procModelEnd(); PI != PE; ++PI, ++ProcItinListsIter) {
> 
>     Record *ItinsDef = PI->ItinsDef;
> -    if (!ItinsDefSet.insert(ItinsDef))
> +    if (!ItinsDefSet.insert(ItinsDef).second)
>       continue;
> 
>     // Get processor itinerary name
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list