llvm-6502/include/llvm/ADT
Chandler Carruth 5c5b3cf5b8 Teach the new SROA to handle cases where an alloca that has already been
scheduled for processing on the worklist eventually gets deleted while
we are processing another alloca, fixing the original test case in
PR13990.

To facilitate this, add a remove_if helper to the SetVector abstraction.
It's not easy to use the standard abstractions for this because of the
specifics of SetVectors types and implementation.

Finally, a nice small test case is included. Thanks to Benjamin for the
fantastic reduced test case here! All I had to do was delete some empty
basic blocks!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165065 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-02 22:46:45 +00:00
..
APFloat.h Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
APInt.h Fix Doxygen issues: 2012-09-13 12:34:29 +00:00
APSInt.h Add operator== to APSInt. This will compare the signed bit before doing 2012-07-23 20:24:23 +00:00
ArrayRef.h Reduce alignment of SmallVector<T> to the required amount, rather than forcing 16-byte alignment. This fixes misaligned SmallVector accesses via ExtractValueInst's SmallVector data member. 2012-08-22 00:11:07 +00:00
BitVector.h Add a new optimization pass: Stack Coloring, that merges disjoint static allocations (allocas). Allocas are known to be 2012-09-06 09:17:37 +00:00
DAGDeltaAlgorithm.h Fix Doxygen issues: 2012-09-14 14:57:36 +00:00
DeltaAlgorithm.h Fix Doxygen issues: 2012-09-14 14:57:36 +00:00
DenseMap.h DenseMap: assert that we have found a bucket before we try to insert into it. 2012-09-22 01:24:16 +00:00
DenseMapInfo.h Fix integer undefined behavior due to signed left shift overflow in LLVM. 2012-08-24 23:29:28 +00:00
DenseSet.h
DepthFirstIterator.h Fix a typo (the the => the) 2012-07-23 08:51:15 +00:00
edit_distance.h
EquivalenceClasses.h Fix Doxygen issues: wrap code examples in \code and use \p to refer to 2012-09-15 20:22:05 +00:00
FoldingSet.h Add operator< for FoldingSetNodeID. 2012-09-08 04:25:29 +00:00
GraphTraits.h
Hashing.h Fix typo in comment. 2012-09-13 07:01:25 +00:00
ilist_node.h
ilist.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:31:17 +00:00
ImmutableIntervalMap.h
ImmutableList.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:31:17 +00:00
ImmutableMap.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:31:17 +00:00
ImmutableSet.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:31:17 +00:00
IndexedMap.h SparseSet: Add support for key-derived indexes and arbitrary key types. 2012-04-20 20:05:28 +00:00
InMemoryStruct.h
IntEqClasses.h
IntervalMap.h
IntrusiveRefCntPtr.h Reference IntrusiveRefCntPtr in doxygen doc of RefCountedBase to get a link to the pointer class documentation. 2012-08-01 14:53:13 +00:00
MapVector.h Make MapVector a bit more expensive but harder to misuse. We now only 2012-09-19 13:42:51 +00:00
NullablePtr.h
Optional.h
OwningPtr.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:31:17 +00:00
PackedVector.h PackedVector: Make the BitVector implementation configurable. 2012-09-28 16:40:29 +00:00
PointerIntPair.h Fix integer undefined behavior due to signed left shift overflow in LLVM. 2012-08-24 23:29:28 +00:00
PointerUnion.h Fixed few warnings. 2012-07-13 21:06:54 +00:00
PostOrderIterator.h Fix broken ipo_ext_iterator constructors. 2012-07-17 17:57:25 +00:00
PriorityQueue.h
SCCIterator.h
ScopedHashTable.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:31:17 +00:00
SetOperations.h
SetVector.h Teach the new SROA to handle cases where an alloca that has already been 2012-10-02 22:46:45 +00:00
SmallBitVector.h Merge the SmallBitVector and BitVector unit tests with gtest's typed test magic and bring SmallBitVector up to date. 2012-06-16 10:51:07 +00:00
SmallPtrSet.h Use LLVM_DELETED_FUNCTION for copy constructors and copy assignment operators that aren't implemented. 2012-09-16 21:37:56 +00:00
SmallSet.h
SmallString.h Fix Doxygen issues: 2012-09-13 12:34:29 +00:00
SmallVector.h Fix Doxygen issues: 2012-09-13 12:34:29 +00:00
SparseBitVector.h Provide malloc-free sentinels for the SparseBitVector internals. 2012-09-28 15:36:41 +00:00
SparseSet.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:31:17 +00:00
Statistic.h
STLExtras.h Remove 'static' from inline functions defined in header files. 2012-06-20 08:39:33 +00:00
StringExtras.h Add llvm::getOrdinalSuffix to get the appropriate -st, -nd, -rd, -th suffix. 2012-09-22 01:24:21 +00:00
StringMap.h
StringRef.h Fix Doxygen issues: 2012-09-13 12:34:29 +00:00
StringSet.h
StringSwitch.h Fix shadowed variable warning 2012-08-01 01:43:10 +00:00
TinyPtrVector.h Add range erase, element insert, and range insert methods to 2012-08-01 08:40:48 +00:00
Triple.h Support for generating ELF objects on Windows. 2012-10-02 18:38:34 +00:00
Twine.h Fix Doxygen issues: 2012-09-13 12:34:29 +00:00
UniqueVector.h
ValueMap.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:31:17 +00:00
VariadicFunction.h Fix a typo in VariadicFunction.h that leads to invalid code in macro expansion. 2012-08-15 18:48:14 +00:00