1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/test/Transforms
Jun Bum Lim 4f195c2484 [CodeGenPrep] Skip merging empty case blocks
This is recommit of r287553 after fixing the invalid loop info after eliminating an empty block and unit test failures in AVR and WebAssembly :

Summary: Merging an empty case block into the header block of switch could cause ISel to add COPY instructions in the header of switch, instead of the case block, if the case block is used as an incoming block of a PHI. This could potentially increase dynamic instructions, especially when the switch is in a loop. I added a test case which was reduced from the benchmark I was targetting.

Reviewers: t.p.northover, mcrosier, manmanren, wmi, joerg, davidxl

Subscribers: joerg, qcolombet, danielcdh, hfinkel, mcrosier, llvm-commits

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

llvm-svn: 289988
2016-12-16 20:38:39 +00:00
..
ADCE [ADCE] Add code to remove dead branches 2016-12-13 16:42:18 +00:00
AddDiscriminators Introduce updateDiscriminator interface to DILocation to make it cleaner assigning discriminators. 2016-10-26 15:48:45 +00:00
AlignmentFromAssumptions
ArgumentPromotion
AtomicExpand
BBVectorize [ValueTracking] An improvement to IR ValueTracking on Non-negative Integers 2016-10-12 16:18:43 +00:00
BDCE [BDCE] Skip metadata while replacing uses. 2016-12-07 21:47:32 +00:00
BranchFolding
CodeExtractor
CodeGenPrepare [CodeGenPrep] Skip merging empty case blocks 2016-12-16 20:38:39 +00:00
ConstantHoisting
ConstantMerge
ConstProp
Coroutines [coroutines] Store an address of destroy OR cleanup part in the coroutine frame. 2016-10-08 00:22:50 +00:00
CorrelatedValuePropagation Make processing @llvm.assume more efficient by using operand bundles 2016-12-15 02:53:42 +00:00
CountingFunctionInserter Add a counter-function insertion pass 2016-09-01 09:42:39 +00:00
CrossDSOCFI
DCE llvm/test/Transforms/DCE/calls-errno.ll: Suppress checking @pow(+0,-1). 2016-11-04 18:50:45 +00:00
DeadArgElim DeadArgElim: Don't mark swifterror arguments as unused 2016-09-21 15:29:08 +00:00
DeadStoreElimination
EarlyCSE [EarlyCSE] Make MemorySSA memory dependency check more aggressive. 2016-10-25 16:18:47 +00:00
EliminateAvailableExternally
Float2Int
ForcedFunctionAttrs
FunctionAttrs IR, X86: Understand !absolute_symbol metadata on global variables. 2016-12-08 19:01:00 +00:00
FunctionImport [ThinLTO] Ensure callees get hot threshold when first seen on cold path 2016-12-15 18:21:01 +00:00
GCOVProfiling Revert "[IR] Remove the DIExpression field from DIGlobalVariable." 2016-12-16 19:39:01 +00:00
GlobalDCE
GlobalMerge Revert "[IR] Remove the DIExpression field from DIGlobalVariable." 2016-12-16 19:39:01 +00:00
GlobalOpt Revert "[IR] Remove the DIExpression field from DIGlobalVariable." 2016-12-16 19:39:01 +00:00
GlobalSplit [GlobalSplit] Port to the new pass manager. 2016-11-21 00:28:23 +00:00
GuardWidening
GVN [Verifier] Add verification for TBAA metadata 2016-12-11 20:07:15 +00:00
GVNHoist [GVNHoist] Move GVNHoist to function simplification part of pipeline. 2016-12-14 19:38:22 +00:00
IndVarSimplify [IndVars] Change the order to compute WidenAddRec in widenIVUse. 2016-11-15 17:34:52 +00:00
InferFunctionAttrs [InferAttributes] Don't access parameters that don't exist. 2016-09-20 23:10:31 +00:00
Inline Revert "[IR] Remove the DIExpression field from DIGlobalVariable." 2016-12-16 19:39:01 +00:00
InstCombine [InstCombine] auto-generate checks; NFC 2016-12-16 16:58:54 +00:00
InstMerge
InstSimplify Make processing @llvm.assume more efficient by using operand bundles 2016-12-15 02:53:42 +00:00
InterleavedAccess/X86 Add a pass to optimize patterns of vectorized interleaved memory accesses for 2016-10-14 18:20:41 +00:00
Internalize
IPConstantProp
IRCE [IRCE] Avoid loop optimizations on pre and post loops 2016-12-13 21:05:21 +00:00
JumpThreading Make processing @llvm.assume more efficient by using operand bundles 2016-12-15 02:53:42 +00:00
LCSSA
LICM [Verifier] Add verification for TBAA metadata 2016-12-11 20:07:15 +00:00
LoadCombine
LoadStoreVectorizer [LoadStoreVectorizer] Enable vectorization of stores in the presence of an aliasing load 2016-11-23 17:43:15 +00:00
LoopDataPrefetch [PM] Port LoopDataPrefetch AArch64 tests to new pass manager 2016-08-22 12:59:58 +00:00
LoopDeletion
LoopDistribute
LoopIdiom Revert "[SCEVExpand] do not hoist divisions by zero (PR30935)" 2016-12-12 18:52:32 +00:00
LoopInterchange [LoopInterchange] Track all dependencies, not just anti dependencies. 2016-09-21 19:16:47 +00:00
LoopLoadElim
LoopReroll [LoopReroll] Make root-finding more aggressive. 2016-11-21 22:35:34 +00:00
LoopRotate Remove the AssumptionCache 2016-12-15 03:02:15 +00:00
LoopSimplify [LoopSimplify] Preserve LCSSA when removing edges from unreachable blocks. 2016-11-18 21:01:12 +00:00
LoopSimplifyCFG
LoopStrengthReduce Revert r286999 which caused buildbot test failures. Some testcases need to be made target specific. 2016-11-15 19:42:05 +00:00
LoopUnroll [LoopUnroll] Implement profile-based loop peeling 2016-11-30 21:13:57 +00:00
LoopUnswitch [Loop Unswitch] Patch to selective unswitch only the reachable branch instructions. 2016-11-25 14:07:44 +00:00
LoopVectorize Revert "[IR] Remove the DIExpression field from DIGlobalVariable." 2016-12-16 19:39:01 +00:00
LoopVersioning [LAA] Prevent invalid IR for loop-invariant bound in loop body 2016-12-05 21:25:03 +00:00
LoopVersioningLICM [Loop Vectorizer] Fixed memory confilict checks. 2016-08-28 08:53:53 +00:00
LowerAtomic
LowerExpectIntrinsic [Profile] handle select instruction in 'expect' lowering 2016-09-02 22:03:40 +00:00
LowerGuardIntrinsic
LowerInvoke
LowerSwitch
LowerTypeTests CFI-icall on Thumb 2016-12-08 00:32:26 +00:00
Mem2Reg
MemCpyOpt [MemCpyOpt] Don't emit IR in an unspecified order 2016-11-07 17:47:28 +00:00
MergeFunc
MetaRenamer
NameAnonGlobals [ThinLTO] Ensure anonymous globals renamed even at -O0 2016-09-17 20:40:16 +00:00
NaryReassociate Make processing @llvm.assume more efficient by using operand bundles 2016-12-15 02:53:42 +00:00
ObjCARC [ObjCARC] Traverse chain downwards to replace uses of argument passed to 2016-09-13 23:43:11 +00:00
PartiallyInlineLibCalls
PGOProfile Fix the test cases committed in r289521. 2016-12-13 17:34:29 +00:00
PhaseOrdering
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH [PruneEH] Be correct in the face IPO 2016-10-03 19:35:30 +00:00
Reassociate Fixed the lost FastMathFlags in Reassociate optimization. 2016-11-22 20:23:04 +00:00
Reg2Mem
RewriteStatepointsForGC [RS4GC] Strengthen coverage: add more tests 2016-10-07 20:34:00 +00:00
SafeStack [safestack] Use non-thread-local unsafe stack pointer for Contiki OS 2016-10-14 17:56:00 +00:00
SampleProfile Revert "[IR] Remove the DIExpression field from DIGlobalVariable." 2016-12-16 19:39:01 +00:00
Scalarizer
SCCP [SCCP] Make the test added in r289175 more meaningful. 2016-12-09 03:49:20 +00:00
SeparateConstOffsetFromGEP
SimplifyCFG Revert "[IR] Remove the DIExpression field from DIGlobalVariable." 2016-12-16 19:39:01 +00:00
Sink
SLPVectorizer [TEST] Initial commit of tests for minmax horizontal reductions. 2016-12-15 13:21:29 +00:00
SpeculativeExecution SpeculativeExecution: Allow speculating more inst types 2016-10-28 20:00:33 +00:00
SROA [DIExpression] Introduce a dedicated DW_OP_LLVM_fragment operation 2016-12-05 18:04:47 +00:00
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols Revert "[IR] Remove the DIExpression field from DIGlobalVariable." 2016-12-16 19:39:01 +00:00
StructurizeCFG [StructurizeCFG] Fix infinite loop in rebuildSSA. 2016-11-29 21:49:02 +00:00
TailCallElim Avoid tail recursion elimination across calls with operand bundles 2016-11-07 21:01:49 +00:00
ThinLTOBitcodeWriter IPO: Introduce ThinLTOBitcodeWriter pass. 2016-12-16 00:26:30 +00:00
Util Revert "[IR] Remove the DIExpression field from DIGlobalVariable." 2016-12-16 19:39:01 +00:00
WholeProgramDevirt WholeProgramDevirt: Teach the pass to handle structs of arrays. 2016-12-09 01:10:11 +00:00