1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 12:43:36 +01:00
llvm-mirror/test/Transforms
Whitney Tsang 0b3ecba332 [LoopFusion] Move instructions from FC1.Preheader to FC0.Preheader when
proven safe.

Summary:
Currently LoopFusion give up when the second loop nest preheader is
not empty. For example:

for (int i = 0; i < 100; ++i) {}
x+=1;
for (int i = 0; i < 100; ++i) {}
The above example should be safe to fuse.
This PR moves instructions in FC1 preheader (e.g. x+=1; ) to
FC0 preheader, which then LoopFusion is able to fuse them.
Reviewer: kbarton, Meinersbur, jdoerfert, dmgreen, fhahn, hfinkel,
bmahjour, etiotto
Reviewed By: jdoerfert
Subscribers: hiraditya, llvm-commits
Tag: LLVM
Differential Revision: https://reviews.llvm.org/D71821
2020-01-29 15:06:11 +00:00
..
ADCE Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
AddDiscriminators Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
AggressiveInstCombine [NFC] run specific pass instead of whole -O3 pipeline for popcount recoginzation testcase. 2019-10-11 05:30:18 +00:00
AlignmentFromAssumptions
ArgumentPromotion [ArgPromo][Tests] Run update_test_checks on all ArgumentPromotion tests 2019-12-14 00:29:38 -06:00
AtomicExpand AMDGPU: Fix copy-pasted test name error 2019-12-11 19:44:47 +05:30
Attributor [Attributor][FIX] Treat invalidated attributes as changed 2020-01-28 23:40:41 -06:00
BDCE Clang-trunk Generates Wrong Debug values with -O1 2019-11-21 13:53:10 -08:00
BlockExtractor Revert "[Support] make report_fatal_error abort instead of exit" 2020-01-15 17:52:25 -08:00
BranchFolding
CalledValuePropagation
CallSiteSplitting
CanonicalizeAliases
CodeExtractor [CodeExtractor] Remove stale llvm.assume calls from extracted region 2020-01-28 17:18:01 -08:00
CodeGenPrepare Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
ConstantHoisting Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
ConstantMerge
ConstProp Fix tests of constant folding of fp operations on NaN values 2020-01-21 21:48:07 +02:00
Coroutines [Coroutines] Remove corresponding phi values when apply simplifyTerminatorLeadingToRet 2020-01-05 18:26:30 -05:00
CorrelatedValuePropagation [llvm] Fix broken cases of 'CHECK[^:]*$' in tests 2020-01-28 09:52:59 -07:00
CrossDSOCFI
DCE [BasicBlockUtils] Add utility to remove redundant dbg.value instrs 2019-12-16 11:41:21 +01:00
DeadArgElim [NFC] Fix trivial typos in comments 2020-01-06 10:50:26 +00:00
DeadStoreElimination [IR] Mark memset.* intrinsics as IntrWriteMem. 2020-01-16 10:35:46 +00:00
DivRemPairs [DivRemPairs] Don't assert that we won't ever get expanded-form rem pairs in different BB's (PR43500) 2019-09-29 15:25:24 +00:00
EarlyCSE Reapply: [DebugInfo] Correctly handle salvaged casts and split fragments at ISel 2019-12-18 16:26:42 +00:00
EliminateAvailableExternally
EntryExitInstrumenter
ExpandMemCmp [X86] Make memcmp vector lowering handle arbitrary expansions 2019-10-30 09:12:57 +02:00
Float2Int [Float2Int] avoid crashing on unreachable code (PR38502) 2019-09-19 16:31:17 +00:00
ForcedFunctionAttrs
FunctionAttrs [Attributor] Copy or port test cases related to Attributor to Attributor test folder 2019-12-02 15:36:29 +00:00
FunctionImport Revert "[Support] make report_fatal_error abort instead of exit" 2020-01-15 17:52:25 -08:00
GCOVProfiling Revert "[Support] make report_fatal_error abort instead of exit" 2020-01-15 17:52:25 -08:00
GlobalDCE [WPD/VFE] Always emit vcall_visibility metadata for -fwhole-program-vtables 2020-01-23 11:36:01 -08:00
GlobalMerge
GlobalOpt [Transforms][GlobalSRA] huge array causes long compilation time and huge memory usage. 2020-01-04 16:42:38 +03:00
GlobalSplit [WPD/VFE] Always emit vcall_visibility metadata for -fwhole-program-vtables 2020-01-23 11:36:01 -08:00
GuardWidening Broaden the definition of a "widenable branch" 2019-11-21 10:46:16 -08:00
GVN [GVN] add GVN parameters parsing to new pass manager 2020-01-16 23:53:46 +03:00
GVNHoist Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
GVNSink
HardwareLoops Recommit "[HardwareLoops] Optimisation remarks" 2019-11-05 09:06:22 +00:00
HotColdSplit [CodeExtractor] Remove stale llvm.assume calls from extracted region 2020-01-28 17:18:01 -08:00
IndirectBrExpand
IndVarSimplify [NFC][IndVarSimplify] Autogenerate tests affected by isHighCostExpansionHelper() cost modelling (PR44668) 2020-01-27 23:34:29 +03:00
InferAddressSpaces
InferFunctionAttrs [Attributor] Copy or port test cases related to Attributor to Attributor test folder 2019-12-02 15:36:29 +00:00
Inline Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
InstCombine [InstCombine] canonicalize splat shuffle after cmp 2020-01-29 08:34:29 -05:00
InstMerge
InstNamer
InstSimplify Fix tests of constant folding of fp operations on NaN values 2020-01-21 21:48:07 +02:00
InterleavedAccess [ARM] Disable VLD4 under MVE 2019-12-08 10:37:29 +00:00
Internalize Reland: Dead Virtual Function Elimination 2019-10-17 09:58:57 +00:00
IPConstantProp Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
IRCE [SCEV] get more accurate range for AddExpr with wrap flag. 2020-01-07 20:58:04 -05:00
JumpThreading [llvm] Fix broken cases of 'CHECK[^:]*$' in tests 2020-01-28 09:52:59 -07:00
LCSSA [SSAUpdater] Don't call ValueIsRAUWd upon single use replacement 2020-01-23 15:53:53 +07:00
LICM Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
LoadStoreVectorizer
LoopDataPrefetch
LoopDeletion
LoopDistribute
LoopFusion [LoopFusion] Move instructions from FC1.Preheader to FC0.Preheader when 2020-01-29 15:06:11 +00:00
LoopIdiom Revert BCmp Loop Idiom recognition transform (PR43870) 2019-11-02 12:48:03 +03:00
LoopInstSimplify
LoopInterchange [LoopInterchange] Improve inner exit loop safety checks. 2019-12-04 17:46:01 +00:00
LoopLoadElim
LoopPredication [BasicBlock] fix looping in getPostdominatingDeoptimizeCall 2020-01-17 15:40:02 +03:00
LoopReroll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
LoopRotate [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found 2020-01-23 15:56:24 +03:00
LoopSimplify [LoopSimplify] Regenerate test checks; NFC 2020-01-11 11:02:24 +01:00
LoopSimplifyCFG
LoopStrengthReduce Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
LoopTransformWarning
LoopUnroll [LoopUnroll] Avoid UB when converting from WeakVH to Value * 2020-01-23 10:36:39 -08:00
LoopUnrollAndJam [llvm] Make new pass manager's OptimizationLevel a class 2020-01-16 09:00:56 -08:00
LoopUnswitch
LoopVectorize [LV] Do not try to sink dead instructions. 2020-01-28 08:28:03 -08:00
LoopVersioning
LoopVersioningLICM
LowerAtomic
LowerConstantIntrinsics Reapply r374743 with a fix for the ocaml binding 2019-10-14 16:15:14 +00:00
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [Matrix] Mark expressions shared between multiple remarks. 2020-01-28 09:27:55 -08:00
LowerSwitch
LowerTypeTests LowerTypeTests: Rename local functions to avoid collisions with identically named functions in ThinLTO modules. 2019-10-03 23:42:44 +00:00
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg
MemCpyOpt Revert "Revert "As a follow-up to my initial mail to llvm-dev here's a first pass at the O1 described there."" 2019-11-26 20:28:52 -08:00
MergeFunc [NewPM] Port MergeFunctions pass 2020-01-14 20:55:41 +01:00
MergeICmps Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
MetaRenamer
NameAnonGlobals
NaryReassociate
NewGVN Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
ObjCARC [IR] Mark memset.* intrinsics as IntrWriteMem. 2020-01-16 10:35:46 +00:00
PartiallyInlineLibCalls
PGOProfile [PGO] Attach appropriate funclet operand bundles to value profiling instrumentation calls 2020-01-24 11:20:53 -08:00
PhaseOrdering Reland [DataLayout] Fix occurrences that size and range of pointers are assumed to be the same. 2019-12-13 14:30:21 +00:00
PlaceSafepoints
PreISelIntrinsicLowering [ObjC] Override TailCallKind when lowering objc intrinsics 2019-11-11 08:30:06 -08:00
PruneEH
Reassociate [InstCombine] convert fsub nsz with fneg operand to -(X + Y) 2020-01-27 14:49:15 -05:00
Reg2Mem
RewriteStatepointsForGC
SafeStack Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
SampleProfile [SampleFDO] Fix invalid branch profile generated by indirect call promotion. 2020-01-15 18:36:06 -08:00
ScalarizeMaskedMemIntrin/X86
Scalarizer Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
SCCP [IPSCCP] Use ParamState for arguments at call sites. 2020-01-23 13:55:42 -08:00
SeparateConstOffsetFromGEP [SeparateConstOffsetFromGEP] Fix: sext(a) + sext(b) -> sext(a + b) matches add and sub instructions with one another 2020-01-17 12:22:52 -05:00
SimpleLoopUnswitch [SimpleLoopUnswitch] Invalidate the topmost loop with ExitBB as exiting. 2019-12-04 11:32:09 +00:00
SimplifyCFG [WinEH] Ignore lifetime.end PHI nodes in empty cleanuppads 2020-01-23 18:18:50 -08:00
Sink
SLPVectorizer [SLP] Don't allow Div/Rem as alternate opcodes 2020-01-21 15:21:17 -08:00
SpeculateAroundPHIs
SpeculativeExecution
SROA [Metadata] Add TBAA struct metadata to AAMDNode 2020-01-06 11:05:15 +03:00
StraightLineStrengthReduce Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
StripDeadPrototypes
StripSymbols
StructurizeCFG AMDGPU: Update more tests to use modern buffer intrinsics 2020-01-16 14:29:38 -05:00
SyntheticCountsPropagation
TailCallElim
ThinLTOBitcodeWriter
TypePromotion/ARM Revert "[ARM][TypePromotion] Enable by default" 2019-12-22 11:27:11 -08:00
Util Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
WholeProgramDevirt Restore "[LTO/WPD] Enable aggressive WPD under LTO option" 2020-01-27 07:55:05 -08:00