llvm-project/llvm/lib/Transforms/Utils
Cameron Zwarich b282ef0111 Eliminate O(n^2) worst-case behavior in SSA construction
The code uses a priority queue and a worklist, which share the same
visited set, but the visited set is only updated when inserting into
the priority queue. Instead, switch to using separate visited sets
for the priority queue and worklist.

llvm-svn: 234425
2015-04-08 18:26:20 +00:00
..
ASanStackFrameLayout.cpp [asan] Reuse a common function. 2015-02-16 14:49:37 +00:00
AddDiscriminators.cpp Transforms: Use the new DebugLoc API, NFC 2015-03-30 19:49:49 +00:00
BasicBlockUtils.cpp Teach SplitBlockPredecessors how to handle landingpad blocks. 2015-01-28 23:06:47 +00:00
BreakCriticalEdges.cpp [PM] Remove the Pass argument from all of the critical edge splitting 2015-01-19 12:09:11 +00:00
BuildLibCalls.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
BypassSlowDivision.cpp [C++] Use 'nullptr'. Transforms edition. 2014-04-25 05:29:35 +00:00
CMakeLists.txt Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
CloneFunction.cpp DebugInfo: Remove DITypedArray<>, replace with typedefs 2015-04-07 04:14:33 +00:00
CloneModule.cpp Remove a bad cast in CloneModule() 2014-12-23 08:23:45 +00:00
CmpInstAnalysis.cpp [C++] Use 'nullptr'. Transforms edition. 2014-04-25 05:29:35 +00:00
CodeExtractor.cpp [opaque pointer type] Start migrating GEP creation to explicitly specify the pointee type 2015-03-14 01:53:18 +00:00
CtorUtils.cpp [ctorutils] Update and sort includes. NFC. 2015-03-23 19:06:17 +00:00
DemoteRegToStack.cpp Fix a bug in DemoteRegToStack where a reload instruction was inserted into the 2015-02-09 06:38:23 +00:00
FlattenCFG.cpp utils: Fix segfault in flattencfg 2014-08-13 20:31:53 +00:00
GlobalStatus.cpp Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
InlineFunction.cpp Transforms: Use the new DebugLoc API, NFC 2015-03-30 19:49:49 +00:00
InstructionNamer.cpp [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-05 09:10:37 +00:00
IntegerDivision.cpp Fix heap-use-after-free bug in expandSDiv when the operands are 2014-11-05 21:28:24 +00:00
LCSSA.cpp [PM] Split the LoopInfo object apart from the legacy pass, creating 2015-01-17 14:16:18 +00:00
LLVMBuild.txt Update libdeps since TLI was moved from Target to Analysis in r226078. 2015-01-15 05:21:00 +00:00
Local.cpp Transforms: Stop using DIDescriptor::is*() and auto-casting 2015-04-06 23:27:00 +00:00
LoopSimplify.cpp Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
LoopUnroll.cpp Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
LoopUnrollRuntime.cpp Fix a bug indicated by -fsanitize=shift-exponent. 2015-04-02 01:30:10 +00:00
LowerInvoke.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:55:47 +00:00
LowerSwitch.cpp Re-sort includes with sort-includes.py and insert raw_ostream.h where it's used. 2015-03-23 19:32:43 +00:00
Makefile
Mem2Reg.cpp [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
MetaRenamer.cpp [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-05 09:10:37 +00:00
ModuleUtils.cpp Move `checkInterfaceFunction` to ModuleUtils 2015-04-06 21:09:08 +00:00
PromoteMemoryToRegister.cpp Eliminate O(n^2) worst-case behavior in SSA construction 2015-04-08 18:26:20 +00:00
SSAUpdater.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
SimplifyCFG.cpp [opaque pointer type] More GEP IRBuilder API migrations... 2015-04-03 21:33:42 +00:00
SimplifyIndVar.cpp [IndVarSimplify] use the "canonical" way to infer no-wrap. 2015-03-04 22:24:23 +00:00
SimplifyInstructions.cpp DataLayout is mandatory, update the API to reflect it with references. 2015-03-10 02:37:25 +00:00
SimplifyLibCalls.cpp [opaque pointer type] More GEP IRBuilder API migrations... 2015-04-03 21:33:42 +00:00
SymbolRewriter.cpp Purge unused includes throughout libSupport. 2015-03-23 18:07:13 +00:00
UnifyFunctionExitNodes.cpp [LPM] Stop using the string based preservation API. It is an 2015-01-28 04:57:56 +00:00
Utils.cpp Pass to emit DWARF path discriminators. 2014-03-03 20:06:11 +00:00
ValueMapper.cpp MapMetadata: Allow unresolved metadata if it won't change 2015-03-17 01:14:40 +00:00