1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/test/Transforms
Max Kazantsev 790a9e98ac [LoopSimplifyCFG] Form LCSSA when a parent loop becomes a sibling
During the transforms in LoopSimplifyCFG, when we remove a dead exiting edge, the
parent loop may stop being reachable from the child loop, and therefore they become
siblings. If the former child loop had uses of some values from its former parent loop,
now such uses will require LCSSA Phis, even if they weren't needed before. So we must
form LCSSA for all loops that stopped being ancestors of the current loop in this case.

Differential Revision: https://reviews.llvm.org/D56144
Reviewed By: fedor.sergeev

llvm-svn: 351434
2019-01-17 12:51:10 +00:00
..
ADCE Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
AddDiscriminators treat invoke like call 2019-01-15 21:26:51 +00:00
AggressiveInstCombine [AggressiveInstCombine] convert rotate with guard branch into funnel shift (PR34924) 2018-12-17 21:14:51 +00:00
AlignmentFromAssumptions
ArgumentPromotion Only promote args when function attributes are compatible 2019-01-16 05:15:31 +00:00
AtomicExpand Allow FP types for atomicrmw xchg 2019-01-17 10:49:01 +00:00
BDCE [BDCE] Remove dead uses of arguments 2019-01-04 21:21:43 +00:00
BlockExtractor [hot-cold-split] Name split functions with ".cold" suffix 2018-10-24 18:53:47 +00:00
BranchFolding
CalledValuePropagation
CallSiteSplitting [CallSiteSplitting] Report edge deletion to DomTreeUpdater 2018-11-29 15:27:04 +00:00
CanonicalizeAliases [ThinLTO] Handle chains of aliases 2019-01-04 19:04:54 +00:00
CodeExtractor [CodeExtractor] Do not extract unsafe lifetime markers 2019-01-04 17:43:22 +00:00
CodeGenPrepare Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
ConstantHoisting X86/TargetTransformInfo: Report div/rem constant immediate costs as TCC_Free 2018-10-11 23:14:35 +00:00
ConstantMerge
ConstProp [ConstantFolding] Fold undef for integer intrinsics 2019-01-11 21:18:00 +00:00
Coroutines Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
CorrelatedValuePropagation [test] Add a set of test for constant folding deopt operands with CVP 2018-12-13 00:54:05 +00:00
CrossDSOCFI
DCE
DeadArgElim [IPO][AVR] Create new Functions in the default address space specified in the data layout 2018-12-18 09:52:52 +00:00
DeadStoreElimination
DivRemPairs
EarlyCSE [EarlyCSE] If DI can't be salvaged, mark it as unavailable. 2018-12-17 01:42:39 +00:00
EliminateAvailableExternally
EntryExitInstrumenter
ExpandMemCmp/X86 Re-land r349731 "[CodeGen][ExpandMemcmp] Add an option for allowing overlapping loads. 2018-12-20 13:01:04 +00:00
Float2Int
ForcedFunctionAttrs
FunctionAttrs
FunctionImport [ThinLTO] Allow importing of functions with var args 2018-12-01 05:11:46 +00:00
GCOVProfiling [DebugInfo] IR/Bitcode changes for DISubprogram flags. 2018-11-28 21:14:32 +00:00
GlobalDCE GlobalDCE: Teach isEmptyFunction() to ignore debug intrinsics. 2018-11-16 17:47:21 +00:00
GlobalMerge
GlobalOpt [DebugInfo][GlobalOpt] Fix -debugify for globalopt shrinking globals to booleans. 2018-10-23 16:35:51 +00:00
GlobalSplit
GuardWidening
GVN [GVN] Don't perform scalar PRE on GEPs 2018-12-06 16:11:58 +00:00
GVNHoist
GVNSink
HotColdSplit [CodeExtractor] Do not extract unsafe lifetime markers 2019-01-04 17:43:22 +00:00
IndirectBrExpand
IndVarSimplify Return "[IndVars] Smart hard uses detection" 2018-11-08 11:54:35 +00:00
InferAddressSpaces
InferFunctionAttrs Allow norecurse attribute on functions that have debug infos. 2018-12-05 16:48:00 +00:00
Inline [Inliner] Assert that the computed inline threshold is non-negative. 2019-01-09 19:26:17 +00:00
InstCombine [InstCombine]Avoid introduction of unaligned mem access 2019-01-16 04:36:26 +00:00
InstMerge [DebugInfo][InstMerge] Fix -debugify for phi node created by -mldst-motion 2018-11-02 18:25:41 +00:00
InstNamer
InstSimplify [ConstantFolding] Consolidate and extend bitcount intrinsic tests; NFC 2018-12-20 19:46:52 +00:00
InterleavedAccess
Internalize
IPConstantProp
IRCE [NFC] Remove obsolete enum RangeCheckKind 2019-01-15 10:48:45 +00:00
JumpThreading [Jump Threading] Unfold a select insn that feeds a switch via a phi node 2019-01-11 15:52:57 +00:00
LCSSA [EH] Rename llvm.x86.seh.recoverfp intrinsic to llvm.eh.recoverfp 2019-01-16 00:37:13 +00:00
LICM Use MemorySSA in LICM to do sinking and hoisting. 2019-01-10 19:29:04 +00:00
LoadStoreVectorizer [PM] Port LoadStoreVectorizer to the new pass manager. 2018-12-07 08:23:37 +00:00
LoopDataPrefetch
LoopDeletion Fix RUN line in test/Transforms/LoopDeletion/crashbc.ll 2019-01-10 09:58:23 +00:00
LoopDistribute [Unroll/UnrollAndJam/Vectorizer/Distribute] Add followup loop attributes. 2018-12-12 17:32:52 +00:00
LoopIdiom [LoopIdiomRecognize] Add CTTZ support 2018-12-26 21:59:48 +00:00
LoopInstSimplify
LoopInterchange [LoopInterchange] Support reductions across inner and outer loop. 2018-11-08 20:44:19 +00:00
LoopLoadElim
LoopPredication
LoopReroll Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
LoopRotate Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
LoopSimplify Revert r346810 "Preserve loop metadata when splitting exit blocks" 2018-11-14 01:47:32 +00:00
LoopSimplifyCFG [LoopSimplifyCFG] Form LCSSA when a parent loop becomes a sibling 2019-01-17 12:51:10 +00:00
LoopStrengthReduce [LoopStrengthReduce] ComplexityLimit as an option 2018-11-29 08:34:22 +00:00
LoopTransformWarning [TransformWarning] Do not warn missed transformations in optnone functions. 2018-12-14 19:45:43 +00:00
LoopUnroll [UnrollRuntime] Fix domTree failures in multiexit unrolling 2019-01-08 17:16:25 +00:00
LoopUnrollAndJam [Unroll/UnrollAndJam/Vectorizer/Distribute] Add followup loop attributes. 2018-12-12 17:32:52 +00:00
LoopUnswitch
LoopVectorize [LoopVectorizer] give more advice in remark about failure to vectorize call 2019-01-12 15:27:15 +00:00
LoopVersioning
LoopVersioningLICM
LowerAtomic
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerSwitch
LowerTypeTests
MakeGuardsExplicit Introduce llvm.experimental.widenable_condition intrinsic 2018-12-07 14:39:46 +00:00
Mem2Reg [Mem2Reg] Fix nondeterministic corner case 2018-11-30 19:20:02 +00:00
MemCpyOpt [BasicAA] Fix AA bug on dynamic allocas and stackrestore 2018-12-21 19:59:03 +00:00
MergeFunc [MergeFunc] Prevent silent miscompile of vararg functions 2019-01-17 02:15:05 +00:00
MergeICmps [MergeICmps] Do not perform the transformation if GEP is used outside of block 2018-11-05 18:16:32 +00:00
MetaRenamer
NameAnonGlobals
NaryReassociate
NewGVN Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
ObjCARC Teach ObjCARC optimizer about equivalent PHIs when eliminating autoreleaseRV/retainRV pairs 2019-01-03 01:38:08 +00:00
PartiallyInlineLibCalls
PGOProfile [PGO] Make pgo related options in opt more consistent. 2019-01-16 23:19:02 +00:00
PhaseOrdering [InstCombine] canonicalize raw IR rotate patterns to funnel shift 2019-01-01 21:51:39 +00:00
PlaceSafepoints
PreISelIntrinsicLowering Preserve the linkage for objc* intrinsics as clang will set them to weak_external in some cases 2018-12-18 22:42:08 +00:00
PruneEH [Transforms] Preserve metadata when converting invoke to call. 2018-12-14 18:15:11 +00:00
Reassociate [PatternMatch] Handle undef vectors consistently 2018-11-20 16:08:19 +00:00
Reg2Mem
RewriteStatepointsForGC
SafeStack
SampleProfile [PGO] Make pgo related options in opt more consistent. 2019-01-16 23:19:02 +00:00
ScalarizeMaskedMemIntrin/X86 [ScalarizeMaskedMemIntrin] Use MinAlign to calculate alignment for the scalar load/stores to handle element types that are byte-sized but not powers of 2. 2018-09-28 03:35:37 +00:00
Scalarizer Introduce llvm.loop.parallel_accesses and llvm.access.group metadata. 2018-12-20 04:58:07 +00:00
SCCP [ConstantFold] Use getMinSignedBits for APInt in isIndexInRangeOfArrayType. 2018-12-12 18:55:14 +00:00
SeparateConstOffsetFromGEP
SimpleLoopUnswitch Update MemorySSA in SimpleLoopUnswitch. 2018-12-04 14:23:37 +00:00
SimplifyCFG Introduce llvm.loop.parallel_accesses and llvm.access.group metadata. 2018-12-20 04:58:07 +00:00
Sink
SLPVectorizer [SLP] Fix PR40310: The reduction nodes should stay scalar. 2019-01-16 15:39:52 +00:00
SpeculateAroundPHIs
SpeculativeExecution
SROA Assertion in isAllocaPromotable due to extra bitcast goes into lifetime marker 2019-01-16 12:06:17 +00:00
StraightLineStrengthReduce [SLSR] use 'match' to simplify code; NFC 2018-10-23 14:07:39 +00:00
StripDeadPrototypes
StripSymbols
StructurizeCFG StructurizeCFG: Simplify inserted PHI nodes 2018-10-17 15:37:41 +00:00
SyntheticCountsPropagation
TailCallElim [TailCallElim] Enable marking of calls with byval as tails 2018-10-08 18:03:40 +00:00
ThinLTOBitcodeWriter [LTO] Record whether LTOUnit splitting is enabled in index 2019-01-11 18:31:57 +00:00
Util Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
WholeProgramDevirt [ThinLTO] Efficiency fix for writing type id records in per-module indexes 2018-09-25 20:14:40 +00:00