llvm-project/llvm/lib/Transforms/Utils
Alina Sbirlea eaea538d18 [DomTreeUpdater] Add all insert before all delete updates to reduce compile time.
Summary:
The cleanup in D62751 introduced a compile-time regression due to the way DT updates are performed.
Add all insert edges then all delete edges in DTU to match the previous compile time.
Compile time on the test provided by @mstorsjo before and after this patch on my machine:
113.046s vs 35.649s
Repro: clang -target x86_64-w64-mingw32 -c -O3 glew-preproc.c; on https://martin.st/temp/glew-preproc.c.

Reviewers: kuhar, NutshellySima, mstorsjo

Subscribers: jlebar, mstorsjo, dmgreen, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D62981

llvm-svn: 362839
2019-06-07 20:43:55 +00:00
..
ASanStackFrameLayout.cpp Use llvm::stable_sort 2019-04-23 14:51:27 +00:00
AddDiscriminators.cpp [llvm] Clarify responsiblity of some of DILocation discriminator APIs 2019-01-24 00:10:25 +00:00
BasicBlockUtils.cpp [DomTreeUpdater] Add all insert before all delete updates to reduce compile time. 2019-06-07 20:43:55 +00:00
BreakCriticalEdges.cpp [SanitizerCoverage] Avoid splitting critical edges when destination is a basic block containing unreachable 2019-03-12 18:20:25 +00:00
BuildLibCalls.cpp [SimplifyLibCalls] Fold more fortified functions into non-fortified variants 2019-05-31 22:41:36 +00:00
BypassSlowDivision.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CMakeLists.txt [PGO] Profile guided code size optimization. 2019-04-15 16:49:00 +00:00
CallPromotionUtils.cpp [opaque pointer types] Pass function type for CallBase::setCalledFunction. 2019-02-01 20:44:54 +00:00
CanonicalizeAliases.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CloneFunction.cpp Move DomTreeUpdater from IR to Analysis 2019-02-06 02:52:52 +00:00
CloneModule.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CodeExtractor.cpp [CodeExtractor] Add a few debug lines to understand why a region is not extracted 2019-04-16 02:12:05 +00:00
CtorUtils.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DemoteRegToStack.cpp [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
EntryExitInstrumenter.cpp [opaque pointer types] Add a FunctionCallee wrapper type, and use it. 2019-02-01 02:28:03 +00:00
EscapeEnumerator.cpp [opaque pointer types] Add a FunctionCallee wrapper type, and use it. 2019-02-01 02:28:03 +00:00
Evaluator.cpp [Evaluator] Walk initial elements when handling load through bitcast 2019-04-25 17:00:01 +00:00
FlattenCFG.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FunctionComparator.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
FunctionImportUtils.cpp Change some dyn_cast to more apropriate isa. NFC 2019-04-05 16:16:23 +00:00
GlobalStatus.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
GuardUtils.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ImportedFunctionsInliningStatistics.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
InlineFunction.cpp [CallSite removal] Refactoring llvm::InlineFunction APIs 2019-06-05 21:28:13 +00:00
InstructionNamer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IntegerDivision.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LCSSA.cpp [MemorySSA] LCSSA preserves MemorySSA. 2019-04-23 20:59:44 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LibCallsShrinkWrap.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Local.cpp Revert r360902 "Resubmit: [Salvage] Change salvage debug info ..." 2019-05-21 11:53:41 +00:00
LoopRotationUtils.cpp [LoopRotate] fix crash encountered with callbr 2019-03-06 23:04:40 +00:00
LoopSimplify.cpp [MemorySSA] LoopSimplify preserves MemorySSA only when flag is flipped. 2019-05-14 18:07:18 +00:00
LoopUnroll.cpp [Utils] Clean another duplicated util method. 2019-06-04 18:45:15 +00:00
LoopUnrollAndJam.cpp [Utils] Clean another duplicated util method. 2019-06-04 18:45:15 +00:00
LoopUnrollPeel.cpp [MemorySSA] Teach LoopSimplify to preserve MemorySSA. 2019-05-08 17:05:36 +00:00
LoopUnrollRuntime.cpp [LoopUnroll] Move list of params into a struct [NFCI]. 2019-04-18 23:43:49 +00:00
LoopUtils.cpp [LoopUtils][SLPVectorizer] clean up management of fast-math-flags 2019-06-05 14:58:04 +00:00
LoopVersioning.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LowerInvoke.cpp [opaque pointer types] Pass function types to CallInst creation. 2019-02-01 20:43:25 +00:00
LowerMemIntrinsics.cpp [opaque pointer types] Pass value type to GetElementPtr creation. 2019-02-01 20:44:47 +00:00
LowerSwitch.cpp Fix a crash when the default of a switch is removed 2019-06-03 17:54:15 +00:00
Mem2Reg.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MetaRenamer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ModuleUtils.cpp [IR] Disallow llvm.global_ctors and llvm.global_dtors of the 2-field form in textual format 2019-05-15 02:35:32 +00:00
NameAnonGlobals.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PredicateInfo.cpp [PredicateInfo] Do not process unreachable operands. 2019-05-15 19:35:38 +00:00
PromoteMemoryToRegister.cpp [Mem2Reg] Delete unused PointerAllocaValues 2019-04-14 07:28:29 +00:00
SSAUpdater.cpp [LICM/MSSA] Add promotion to scalars by building an AliasSetTracker with MemorySSA. 2019-02-06 20:25:17 +00:00
SSAUpdaterBulk.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SanitizerStats.cpp [opaque pointer types] Add a FunctionCallee wrapper type, and use it. 2019-02-01 02:28:03 +00:00
SimplifyCFG.cpp Re-commit r357452 (take 2): "SimplifyCFG SinkCommonCodeFromPredecessors: Also sink function calls without used results (PR41259)" 2019-05-28 12:19:38 +00:00
SimplifyIndVar.cpp [SimplifyIndVar] Refactor overflow check elimination code; NFC 2019-06-01 20:21:53 +00:00
SimplifyLibCalls.cpp [SimplifyLibCalls] Fold more fortified functions into non-fortified variants 2019-05-31 22:41:36 +00:00
SizeOpts.cpp [PGO] Profile guided code size optimization. 2019-04-15 16:49:00 +00:00
SplitModule.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
StripGCRelocates.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
StripNonLineTableDebugInfo.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SymbolRewriter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
UnifyFunctionExitNodes.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Utils.cpp [LLVM-C] Expose the "Add Discriminators" Pass To LLVM-C 2019-03-15 16:57:23 +00:00
VNCoercion.cpp [GVN] Small tweaks to comments, style, and missed vector handling 2019-02-20 00:31:28 +00:00
ValueMapper.cpp Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00