llvm-6502/include/llvm
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
..
ADT Teach the new SROA to handle cases where an alloca that has already been 2012-10-02 22:46:45 +00:00
Analysis 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
Assembly
Bitcode 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
CodeGen Remove the SavePoint infrastructure from fast isel, replace 2012-10-02 21:16:50 +00:00
Config Make backtraces work again with both the configure and cmake build. 2012-09-28 10:10:46 +00:00
DebugInfo
ExecutionEngine Clean-up of memory buffer and object ownership model in MCJIT 2012-10-02 21:18:39 +00:00
MC [ms-inline asm] Add basic support for wildcard MCParsedAsmOperands. This type 2012-10-02 21:49:07 +00:00
Object Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
Support 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
TableGen Implement a correct copy constructor for Record. Now that we're using the ID number as a key in maps (for determinism), it is imperative that ID numbers be globally unique, even when we copy construct a Record. 2012-09-19 21:34:18 +00:00
Target TargetData: s/uint32_t/unsigned/ per Kuba's request. 2012-10-01 11:56:16 +00:00
Transforms Rename virtual table anchors from Anchor() to anchor() for consistency with the rest of the tree. 2012-09-26 06:36:36 +00:00
Argument.h
Attributes.h Remove unused methods. 2012-09-28 21:22:24 +00:00
AutoUpgrade.h
BasicBlock.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
CallGraphSCCPass.h
CallingConv.h Add in support for SPIR to LLVM core. This adds a new target and two new calling conventions. 2012-10-01 17:01:31 +00:00
CMakeLists.txt
Constant.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
Constants.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
DebugInfo.h Recommit, with fixes: 2012-09-12 23:36:19 +00:00
DefaultPasses.h Fix a couple include directives that used angle brackets for llvm files. 2012-09-15 18:41:37 +00:00
DerivedTypes.h Add include of Compiler.h to fix build bot failures. 2012-09-16 21:56:23 +00:00
DIBuilder.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
Function.h Buildbot Fix. 2012-09-26 23:38:00 +00:00
GlobalAlias.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
GlobalValue.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
GlobalVariable.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-18 02:01:41 +00:00
GVMaterializer.h
InitializePasses.h Add a MachinePostDominator pass 2012-09-17 14:08:37 +00:00
InlineAsm.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
InstrTypes.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
Instruction.def
Instruction.h Use LLVM_DELETED_FUNCTION for copy constructors and copy assignment operators that aren't implemented. 2012-09-16 21:37:56 +00:00
Instructions.h Mark unimplemented operator new as LLVM_DELETED_FUNCTION. 2012-09-18 03:25:49 +00:00
IntrinsicInst.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
Intrinsics.h
Intrinsics.td Add in new data types that are used by AMDIL/ANL among others. 2012-09-19 22:47:07 +00:00
IntrinsicsARM.td ARM: Use a dedicated intrinsic for vector bitwise select. 2012-09-21 00:18:20 +00:00
IntrinsicsCellSPU.td
IntrinsicsHexagon.td
IntrinsicsMips.td
IntrinsicsNVVM.td
IntrinsicsPowerPC.td
IntrinsicsX86.td
IntrinsicsXCore.td
IRBuilder.h Add IRBuilder code for adding !tbaa.struct metadata tags to llvm.memcpy calls. 2012-09-26 22:17:14 +00:00
LinkAllPasses.h Add a pass that renames everything with metasyntatic names. This works well after using bugpoint to reduce the confusion presented by the original names, which no longer mean what they used to. 2012-09-11 02:46:18 +00:00
LinkAllVMCore.h
Linker.h
LLVMContext.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
MDBuilder.h Add an MDBuilder utility for creating !tbaa.struct nodes. 2012-09-21 23:00:37 +00:00
Metadata.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
Module.h
OperandTraits.h
Operator.h Remove more LLVM_DELETED_FUNCTIONs from destructors to fix -std=c++11 build on gcc 4.7. 2012-09-29 02:25:34 +00:00
Pass.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
PassAnalysisSupport.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
PassManager.h
PassManagers.h
PassRegistry.h
PassSupport.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
SymbolTableListTraits.h
Type.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
TypeBuilder.h
TypeFinder.h
Use.h Add includes of Compiler.h to fix build bot failures. 2012-09-16 21:50:09 +00:00
User.h Use LLVM_DELETED_FUNCTION for copy constructors and copy assignment operators that aren't implemented. 2012-09-16 21:37:56 +00:00
Value.h Add includes of Compiler.h to fix build bot failures. 2012-09-16 21:50:09 +00:00
ValueSymbolTable.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