1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/test/Transforms
Max Kazantsev 7ad7a419ca [LICM] Hoist guards with invariant conditions
This patch teaches LICM to hoist guards from the loop if they are guaranteed to execute and
if there are no side effects that could prevent that.

Differential Revision: https://reviews.llvm.org/D50501
Reviewed By: reames

llvm-svn: 340256
2018-08-21 08:11:31 +00:00
..
ADCE [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
AddDiscriminators [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
AggressiveInstCombine [AggressiveInstCombine] avoid crashing on unsimplified code (PR37446) 2018-05-14 13:43:32 +00:00
AlignmentFromAssumptions
ArgumentPromotion
AtomicExpand [AtomicExpandPass] Widen partword atomicrmw or/xor/and before tryExpandAtomicRMW 2018-08-17 14:03:37 +00:00
BDCE [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
BlockExtractor
BranchFolding
CalledValuePropagation
CallSiteSplitting
CodeExtractor [CodeExtractor] Allow extracting blocks with exception handling 2018-05-11 22:49:49 +00:00
CodeGenPrepare [CodeGenPrepare] Add BothExtension type to PromotedInsts 2018-08-15 22:08:26 +00:00
ConstantHoisting [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
ConstantMerge
ConstProp [X86] Add constant folding for AVX512 versions of scalar floating point to integer conversion intrinsics. 2018-08-12 22:09:54 +00:00
Coroutines [Coroutines] PR34897: Fix incorrect elisions 2018-05-11 03:12:28 +00:00
CorrelatedValuePropagation llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
CrossDSOCFI
DCE
DeadArgElim [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
DeadStoreElimination [BasicAA] Don't assume tail calls with byval don't alias allocas 2018-08-14 01:24:35 +00:00
DivRemPairs
EarlyCSE [MemorySSA] "Fix" lifetime intrinsic handling 2018-08-10 05:14:43 +00:00
EliminateAvailableExternally
EntryExitInstrumenter [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
ExpandMemCmp/X86
Float2Int
ForcedFunctionAttrs
FunctionAttrs llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
FunctionImport Restore "[ThinLTO] Ensure we always select the same function copy to import" 2018-07-16 15:30:27 +00:00
GCOVProfiling [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
GlobalDCE
GlobalMerge [GlobalMerge] Allow merging globals with explicit section markings. 2018-08-02 23:54:16 +00:00
GlobalOpt [GlobalOpt] Don't apply fastcc if it would break inalloca invariants 2018-08-09 17:29:26 +00:00
GlobalSplit
GuardWidening [LICM] Hoist guards with invariant conditions 2018-08-21 08:11:31 +00:00
GVN [MemDep] Use PhiValuesAnalysis to improve alias analysis results 2018-07-31 14:19:29 +00:00
GVNHoist [MemorySSAUpdater] Update Phi operands after trivial Phi elimination 2018-07-23 10:56:30 +00:00
GVNSink
IndirectBrExpand
IndVarSimplify [SimplifyIndVar] Canonicalize comparisons to unsigned while eliminating truncs 2018-07-27 09:43:39 +00:00
InferAddressSpaces
InferFunctionAttrs [SimplifyLibcalls] Replace locked IO with unlocked IO 2018-05-16 11:39:52 +00:00
Inline Enrich inline messages 2018-08-05 14:53:08 +00:00
InstCombine [InstCombine] Add splat vector constant support to foldICmpAddOpConst. 2018-08-20 23:04:25 +00:00
InstMerge [MergedLoadStoreMotion] Fix a debug invariant bug in mergeStores 2018-05-09 06:52:12 +00:00
InstNamer
InstSimplify [InstSimplify] move minnum/maxnum with Inf folds from instcombine 2018-08-09 22:20:44 +00:00
InterleavedAccess
Internalize
IPConstantProp Revert r337904: [IPSCCP] Use PredicateInfo to propagate facts from cmp instructions. 2018-07-25 19:44:19 +00:00
IRCE [IRCE] Fix miscompile with range checks against negative values 2018-05-19 13:06:37 +00:00
JumpThreading [JumpThreading] Don't try to rewrite a use if it's already valid. 2018-06-26 22:19:48 +00:00
LCSSA [DebugInfo][LCSSA] Preserve debug location in lcssa phis 2018-07-31 14:54:52 +00:00
LICM [LICM] Hoist guards with invariant conditions 2018-08-21 08:11:31 +00:00
LoadStoreVectorizer [LSV] Look through selects for consecutive addresses 2018-07-25 21:33:00 +00:00
LoopDataPrefetch [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
LoopDeletion
LoopDistribute [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
LoopIdiom SCEV should forget all loops containing a deleted block. 2018-08-09 17:53:26 +00:00
LoopInstSimplify [LoopInstSimplify] Re-implement the core logic of loop-instsimplify to 2018-05-29 20:15:38 +00:00
LoopInterchange NFC - Various typo fixes in tests 2018-07-04 13:28:39 +00:00
LoopLoadElim
LoopPredication
LoopReroll [LoopReroll] Rewrite induction variable rewriting. 2018-06-22 22:58:55 +00:00
LoopRotate [ADCE] Remove the need of DomTree 2018-08-04 02:50:12 +00:00
LoopSimplify [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
LoopSimplifyCFG Generalize MergeBlockIntoPredecessor. Replace uses of MergeBasicBlockIntoOnlyPred. 2018-06-20 22:01:04 +00:00
LoopStrengthReduce SCEVExpander::expandAddRecExprLiterally(): check before casting as Instruction 2018-06-29 07:44:20 +00:00
LoopUnroll LoopUnroll: Allow analyzing intrinsic call costs 2018-06-26 18:51:17 +00:00
LoopUnrollAndJam [UnJ] Improve explicit loop count checks 2018-08-11 07:37:31 +00:00
LoopUnswitch [LoopUnswitch] Fix SCEV invalidation in unswitching 2018-05-23 10:09:53 +00:00
LoopVectorize add a missed case for binary op FMF propagation under select folds 2018-08-16 20:59:45 +00:00
LoopVersioning Re-apply "[SCEV] Strengthen StrengthenNoWrapFlags (reapply r334428)." 2018-07-13 23:58:46 +00:00
LoopVersioningLICM
LowerAtomic
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerSwitch
LowerTypeTests [LowerTypeTests] Limit when icall jumptable entries are emitted 2018-07-13 19:57:39 +00:00
Mem2Reg Improve ConvertDebugDeclareToDebugValue 2018-06-26 06:17:00 +00:00
MemCpyOpt
MergeFunc [MergeFunctions] Fix merging of small weak functions 2018-05-15 11:31:07 +00:00
MergeICmps [MergeICmps] Don't crash when memcmp is not available 2018-05-19 12:51:59 +00:00
MetaRenamer
NameAnonGlobals
NaryReassociate [NaryReassociate] Detect deleted instr with WeakVH 2018-05-24 06:09:02 +00:00
NewGVN [NewGVN] Add tests for r340031. 2018-08-17 14:39:53 +00:00
ObjCARC [ObjCARC] Prevent code motion into a catchswitch 2018-05-16 04:52:18 +00:00
PartiallyInlineLibCalls
PGOProfile [InstrProf] Use comdats on COFF for available_externally functions 2018-07-26 22:59:17 +00:00
PhaseOrdering [PhaseOrdering] remove stale comments; NFC 2018-05-09 23:10:46 +00:00
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH
Reassociate [Constants] add identity constants for fadd/fmul 2018-07-03 17:12:59 +00:00
Reg2Mem
RewriteStatepointsForGC NFC - Various typo fixes in tests 2018-07-04 13:28:39 +00:00
SafeStack [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
SampleProfile [SampleFDO] Fix a bug in getOrCompHotCountThreshold/getOrCompColdCountThreshold 2018-08-07 18:13:10 +00:00
Scalarizer [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
SCCP [BasicAA] Use PhiValuesAnalysis if available when handling phi alias 2018-07-30 11:52:08 +00:00
SeparateConstOffsetFromGEP [Split GEP] handle trunc() in separate-const-offset-from-gep pass. 2018-05-11 21:13:19 +00:00
SimpleLoopUnswitch [PM/Unswitch] Fix a collection of closely related issues with trivial 2018-07-10 08:36:05 +00:00
SimplifyCFG [NFC] Fixed build, updated tests 2018-08-12 18:32:53 +00:00
Sink
SLPVectorizer [SLP] Fix insert point for reused extract instructions. 2018-08-07 19:21:05 +00:00
SpeculateAroundPHIs
SpeculativeExecution
SROA [SROA] Preserve DebugLoc when rewriting alloca partitions 2018-06-28 18:58:30 +00:00
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols
StructurizeCFG StructurizeCFG: Adjust the loop depth for a subregion to order the nodes correctly 2018-05-23 18:34:48 +00:00
SyntheticCountsPropagation
TailCallElim [TailCallElim] Preserve DT and PDT 2018-08-04 08:13:47 +00:00
ThinLTOBitcodeWriter [ThinLTOBitcodeWriter] Emit summaries for regular LTO modules 2018-06-01 15:20:47 +00:00
Util [PredicateInfo] Use custom mangling to support ssa_copy with unnamed types. 2018-07-24 14:49:52 +00:00
WholeProgramDevirt