1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 20:43:44 +02:00
llvm-mirror/test/Transforms
Anna Thomas c26a4baf9a [IRCE] Canonicalize pre/post loops after the blocks are added into parent loop
Summary:
We were canonizalizing the pre loop (into loop-simplify form) before
the post loop blocks were added into parent loop. This is incorrect when IRCE is
done on a subloop. The post-loop blocks are created, but not yet added to the
parent loop. So, loop-simplification on the pre-loop incorrectly updates
LoopInfo.

This patch corrects the ordering so that pre and post loop blocks are added to
parent loop (if any), and then the loops are canonicalized to LCSSA and
LoopSimplifyForm.

Reviewers: reames, sanjoy, apilipenko

Subscribers: llvm-commits

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

llvm-svn: 304800
2017-06-06 14:54:01 +00:00
..
ADCE Fix a test to check assembly output instead of bitcode. 2017-03-31 23:22:19 +00:00
AddDiscriminators [AddDiscriminators] Assign discriminators to MemIntrinsic calls. 2017-04-11 19:07:30 +00:00
AlignmentFromAssumptions
ArgumentPromotion [ArgPromotion] Add a testcase for PR32917 2017-05-05 08:40:24 +00:00
AtomicExpand Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
BBVectorize Replace hardcoded intrinsic list with speculatable attribute. 2017-05-03 02:26:10 +00:00
BDCE [Analysis] Support bitreverse in -demanded-bits pass 2017-04-13 16:44:25 +00:00
BranchFolding
CodeExtractor [PartialInlining] Minor cost anaysis tuning 2017-06-02 22:08:04 +00:00
CodeGenPrepare Restrict call metadata based hotness detection to Sample PGO mode 2017-05-11 23:18:05 +00:00
ConstantHoisting [ConstHoisting] Add BFI in constanthoisting pass and select the best insertion 2017-04-21 15:50:16 +00:00
ConstantMerge Don't merge global constants with non-dbg metadata. 2017-03-09 00:03:37 +00:00
ConstProp [X86] Replace 'REQUIRES: x86' in tests with 'REQUIRES: x86-registered-target' which seems to be the correct way to make them run on an x86 build. 2017-06-04 08:21:58 +00:00
Coroutines [coroutines] PR33271: Remove stray coro.save intrinsics during CoroSplit 2017-06-02 02:18:36 +00:00
CorrelatedValuePropagation Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
CountingFunctionInserter
CrossDSOCFI
DCE
DeadArgElim Replace hardcoded intrinsic list with speculatable attribute. 2017-05-03 02:26:10 +00:00
DeadStoreElimination Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
EarlyCSE InstructionSimplify: don't speculate about Constants changing. 2017-05-22 21:28:08 +00:00
EliminateAvailableExternally
Float2Int
ForcedFunctionAttrs
FunctionAttrs Support arbitrary address space pointers in masked gather/scatter intrinsics. 2017-05-03 12:28:54 +00:00
FunctionImport Revert r295861, "[ModuleSummaryAnalysis] Don't crash when referencing unnamed globals." 2017-05-03 00:18:48 +00:00
GCOVProfiling
GlobalDCE [PM] Teach the PGO instrumentation pasess to run GlobalDCE before 2017-05-25 07:15:09 +00:00
GlobalMerge
GlobalOpt [GlobalOpt] Correctly update metadata when localizing a global. 2017-04-27 18:39:08 +00:00
GlobalSplit Fix one-after-the-end type metadata handling in globalsplit. 2017-03-07 22:18:48 +00:00
GuardWidening
GVN Revert rL304050. It may break sanitizer bootstrap. Revert it for now while investigating. 2017-05-31 21:29:33 +00:00
GVNHoist Disable GVN Hoist due to still more bugs being found in it. There is 2017-04-27 00:28:03 +00:00
GVNSink [GVNSink] GVNSink pass 2017-05-25 12:51:11 +00:00
IndVarSimplify ConstantFold: Fold getelementptr (i32, i32* null, i64 undef) to null. 2017-05-08 17:37:29 +00:00
InferAddressSpaces InferAddressSpaces: Search constant expressions for addrspacecasts 2017-04-28 22:52:41 +00:00
InferFunctionAttrs [TLI] Add declarations for various math header file routines from math-finite.h that create '__<func>_finite as functions 2017-05-12 22:11:12 +00:00
Inline [InlineCost] Enable the new switch cost heuristic 2017-06-02 20:42:54 +00:00
InstCombine [InstCombine] Fix extractelement use before def 2017-06-05 09:18:10 +00:00
InstMerge Remove the load hoisting code of MLSM, it is completely subsumed by GVNHoist 2017-01-24 19:55:36 +00:00
InstNamer Add basic test case for -instnamer 2017-05-08 23:18:46 +00:00
InstSimplify [InstSimplify] Constant fold the new GEP in SimplifyGEPInst. 2017-06-06 10:17:14 +00:00
InterleavedAccess [ARM/AArch64] Ensure valid vector element types for interleaved accesses 2017-04-10 18:34:37 +00:00
Internalize
IPConstantProp [IPCP] Don't propagate return value for naked functions. 2017-02-04 19:44:14 +00:00
IRCE [IRCE] Canonicalize pre/post loops after the blocks are added into parent loop 2017-06-06 14:54:01 +00:00
JumpThreading [JumpThreading] Safely replace uses of condition 2017-05-23 13:36:25 +00:00
LCSSA
LICM Revert "Add pthread_self function prototype and make it speculatable." 2017-05-21 00:37:55 +00:00
LoadCombine [LoadCombine] Avoid analysing dead basic blocks 2017-04-12 08:07:55 +00:00
LoadStoreVectorizer Skip bitcasts while looking for GEP in LoadStoreVectorizer 2017-04-25 18:00:08 +00:00
LoopDataPrefetch
LoopDeletion [Loop Deletion] Delete loops that are never executed 2017-05-03 11:47:11 +00:00
LoopDistribute
LoopIdiom Revert "[Atomics][LoopIdiom] Recognize unordered atomic memcpy" 2017-05-31 17:20:51 +00:00
LoopInterchange
LoopLoadElim [PM] Port LoopLoadElimination to the new pass manager and wire it into 2017-01-27 01:32:26 +00:00
LoopPredication Loop predication expand both sides of the widened condition 2017-02-27 15:44:49 +00:00
LoopReroll
LoopRotate Cleanup tests to not share a DISubprogram between multiple Functions. 2017-05-04 16:24:31 +00:00
LoopSimplify [BasicBlockUtils] Use getFirstNonPHIOrDbg to set debugloc for instructions created in SplitBlockPredecessors 2017-02-14 21:10:40 +00:00
LoopSimplifyCFG
LoopStrengthReduce [X86] Replace 'REQUIRES: x86' in tests with 'REQUIRES: x86-registered-target' which seems to be the correct way to make them run on an x86 build. 2017-06-04 08:21:58 +00:00
LoopUnroll [LoopUnroll] Fix a test. REQUIRE should be REQUIRES. 2017-05-12 15:30:58 +00:00
LoopUnswitch [LoopUnswitch] Don't remove instructions with side effects. 2017-04-29 00:12:18 +00:00
LoopVectorize [LV] Reapply r303763 with fix for PR33193 2017-05-30 19:55:57 +00:00
LoopVersioning [LAA] Correctly return a half-open range in expandBounds 2017-04-05 09:24:26 +00:00
LoopVersioningLICM [LAA] Correctly return a half-open range in expandBounds 2017-04-05 09:24:26 +00:00
LowerAtomic
LowerExpectIntrinsic [Profile] Enhance expect lowering to handle correlated branches 2017-06-02 02:09:31 +00:00
LowerGuardIntrinsic
LowerInvoke
LowerSwitch LowerSwitch: Fix producing invalid IR on unreachable code 2017-04-21 23:54:12 +00:00
LowerTypeTests Revert "[CFI] Remove LinkerSubsectionsViaSymbols." 2017-06-03 00:46:27 +00:00
Mem2Reg Add test coverage for mem2reg dbg.declare lowering. 2017-04-21 22:13:55 +00:00
MemCpyOpt Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
MergeFunc
MetaRenamer [MetaRenamer] Don't rename library functions. 2017-03-23 23:21:07 +00:00
NameAnonGlobals
NaryReassociate
NewGVN [InstSimplify] Constant fold the new GEP in SimplifyGEPInst. 2017-06-06 10:17:14 +00:00
ObjCARC Replace hardcoded intrinsic list with speculatable attribute. 2017-05-03 02:26:10 +00:00
PartiallyInlineLibCalls
PGOProfile [PartialInlining] Emit branch info and profile data as remarks 2017-06-01 18:58:50 +00:00
PhaseOrdering Make globalaa-retained.ll test catching more cases. 2017-04-18 13:29:26 +00:00
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH
Reassociate [Reassociate] Add negated value of negative constant to the Duplicates list. 2017-02-23 18:49:03 +00:00
Reg2Mem
RewriteStatepointsForGC [RSForGC] Handle vector GEPs 2017-03-17 00:55:53 +00:00
SafeStack [safestack] Disable stack coloring by default. 2017-05-19 20:58:48 +00:00
SampleProfile Cleanup tests to not share a DISubprogram between multiple Functions. 2017-05-04 16:24:31 +00:00
Scalarizer [Scalarizer] Handle scalar arguments in vector GEP 2017-03-31 06:29:49 +00:00
SCCP [SCCP] Resolve indirect branch target when possible. 2017-04-10 00:33:25 +00:00
SeparateConstOffsetFromGEP AMDGPU: Mark all unspecified CC functions in tests as amdgpu_kernel 2017-03-21 21:39:51 +00:00
SimpleLoopUnswitch [PM/Unswitch] Fix a bug in the domtree update logic for the new unswitch 2017-05-25 06:33:36 +00:00
SimplifyCFG [ValueTracking] Teach isSafeToSpeculativelyExecute() about the speculatable attribute 2017-04-28 21:13:09 +00:00
Sink
SLPVectorizer Re-commit r302678, fixing PR33053. 2017-05-16 21:29:22 +00:00
SpeculativeExecution Revert r301950: SpeculativeExecution: Stop using whitelist for costs 2017-05-10 12:30:07 +00:00
SROA [SROA] Fix crash due to bad bitcast 2017-06-02 19:04:17 +00:00
StraightLineStrengthReduce AMDGPU: Mark all unspecified CC functions in tests as amdgpu_kernel 2017-03-21 21:39:51 +00:00
StripDeadPrototypes
StripSymbols [StripDeadDebug/DIFinder] Track inlined SPs 2017-04-11 13:32:11 +00:00
StructurizeCFG Revert "StructurizeCFG: Directly invert cmp instructions" 2017-04-24 20:25:01 +00:00
TailCallElim
ThinLTOBitcodeWriter [ThinLTO] Migrate ThinLTOBitcodeWriter to the new PM. 2017-06-01 01:02:12 +00:00
Util [PredicateInfo] Enable -reverse-iterate tests only for +Asserts builds 2017-06-01 23:52:59 +00:00
WholeProgramDevirt Skip CFI for dead functions. 2017-06-02 18:24:23 +00:00