1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00
llvm-mirror/test/Transforms
Davide Italiano 65f612f852 [SCCP] Teach the pass how to handle div with overdefined operands.
This can prove that:

extern int f;
int g() {
    int x = 0;
    for (int i = 0; i < 365; ++i) {
        x /= f;
    }
    return x;
}

always returns zero. Thanks to Sanjoy for confirming this
transformation actually made sense (bugs are mine).

llvm-svn: 292531
2017-01-19 23:07:51 +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 Introduce -unroll-partial-threshold to separate PartialThreshold from Threshold in loop unorller. 2017-01-17 23:39:33 +00:00
BDCE [BDCE] Skip metadata while replacing uses. 2016-12-07 21:47:32 +00:00
BranchFolding
CodeExtractor
CodeGenPrepare [Analysis] Centralize objectsize lowering logic. 2016-12-20 23:46:36 +00:00
ConstantHoisting
ConstantMerge
ConstProp [InstCombiner] Simplify lib calls to round{,f} 2016-12-26 14:29:29 +00:00
Coroutines
CorrelatedValuePropagation Revert @llvm.assume with operator bundles (r289755-r289757) 2016-12-19 08:22:17 +00:00
CountingFunctionInserter
CrossDSOCFI
DCE llvm/test/Transforms/DCE/calls-errno.ll: Suppress checking @pow(+0,-1). 2016-11-04 18:50:45 +00:00
DeadArgElim
DeadStoreElimination
EarlyCSE [EarlyCSE] Don't DSE across readnone functions that may throw 2017-01-17 20:15: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 [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
GlobalDCE Test the different scenarios of GlobalDCE and comdats more 2016-12-26 08:54:01 +00:00
GlobalMerge Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
GlobalOpt Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
GlobalSplit [GlobalSplit] Port to the new pass manager. 2016-11-21 00:28:23 +00:00
GuardWidening
GVN [Devirtualization] MemDep returns non-local !invariant.group dependencies 2017-01-12 11:33:58 +00:00
GVNHoist Revert "[GVNHoist] Move GVNHoist to function simplification part of pipeline." 2016-12-17 01:53:15 +00:00
IndVarSimplify [IndVars] Change the order to compute WidenAddRec in widenIVUse. 2016-11-15 17:34:52 +00:00
InferFunctionAttrs
Inline Revert "[InlineCost] Use TTI to check if GEP is free." 2017-01-19 22:51:03 +00:00
InstCombine [InstCombine] Simplify gep (gep p, a), (b-a) 2017-01-19 18:51:56 +00:00
InstMerge
InstSimplify [ValueTracking] Extend known bits to understand @llvm.bitreverse. 2017-01-17 17:23:51 +00:00
InterleavedAccess/X86
Internalize
IPConstantProp
IRCE [IRCE] Avoid loop optimizations on pre and post loops 2016-12-13 21:05:21 +00:00
JumpThreading Revert @llvm.assume with operator bundles (r289755-r289757) 2016-12-19 08:22:17 +00:00
LCSSA
LICM Improve what can be promoted in LICM. 2017-01-19 19:31:40 +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
LoopDeletion [PM] Teach LoopDeletion to correctly update the LPM when loops are 2017-01-18 02:41:26 +00:00
LoopDistribute Move test of lazy BFI with ORE to a generic directory 2017-01-13 00:16:23 +00:00
LoopIdiom Enable disabled loopidiom test. Apparently we handle it now 2017-01-03 19:08:05 +00:00
LoopInterchange
LoopLoadElim Fix LoopLoadElimination to keep original alignment on the inital hoisted store 2017-01-06 21:06:51 +00:00
LoopReroll [LoopReroll] Make root-finding more aggressive. 2016-11-21 22:35:34 +00:00
LoopRotate Revert @llvm.assume with operator bundles (r289755-r289757) 2016-12-19 08:22:17 +00:00
LoopSimplify Make a test actually test what it set out to test. 2017-01-12 03:49:07 +00:00
LoopSimplifyCFG
LoopStrengthReduce [PM] Clean up the testing for IVUsers, especially with the new PM. 2017-01-15 09:29:27 +00:00
LoopUnroll Introduce -unroll-partial-threshold to separate PartialThreshold from Threshold in loop unorller. 2017-01-17 23:39:33 +00:00
LoopUnswitch [Loop Unswitch] Patch to selective unswitch only the reachable branch instructions. 2016-11-25 14:07:44 +00:00
LoopVectorize [LV] Run loop-simplify and LCSSA explicitly instead of "requiring" them 2017-01-19 00:42:28 +00:00
LoopVersioning [LDist] Match behavior between invoking via optimization pipeline or opt -loop-distribute 2016-12-21 04:07:40 +00:00
LoopVersioningLICM
LowerAtomic
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerSwitch
LowerTypeTests LowerTypeTests: Implement exporting of type identifiers. 2017-01-19 01:20:11 +00:00
Mem2Reg
MemCpyOpt [MemCpyOpt] Don't sink LoadInst below possible clobber. 2016-12-27 17:58:12 +00:00
MergeFunc
MetaRenamer
NameAnonGlobals
NaryReassociate Revert @llvm.assume with operator bundles (r289755-r289757) 2016-12-19 08:22:17 +00:00
NewGVN NewGVN: Fix PR31613 test regex naming 2017-01-13 23:54:10 +00:00
ObjCARC
PartiallyInlineLibCalls Add positive test for sqrt "partial inlining". NFC. 2017-01-04 21:24:56 +00:00
PGOProfile Resubmit "[PGO] Turn off comdat renaming in IR PGO by default" 2017-01-11 20:19:41 +00:00
PhaseOrdering
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH
Reassociate Fixed the lost FastMathFlags in Reassociate optimization. 2016-11-22 20:23:04 +00:00
Reg2Mem
RewriteStatepointsForGC
SafeStack
SampleProfile Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
Scalarizer
SCCP [SCCP] Teach the pass how to handle div with overdefined operands. 2017-01-19 23:07:51 +00:00
SeparateConstOffsetFromGEP
SimplifyCFG Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
Sink
SLPVectorizer [SLP] Add a tests for a fix for PR30787. 2017-01-18 18:07:46 +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 Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
StructurizeCFG [StructurizeCfg] Update dominator info. 2017-01-10 02:50:47 +00:00
TailCallElim Avoid tail recursion elimination across calls with operand bundles 2016-11-07 21:01:49 +00:00
ThinLTOBitcodeWriter ThinLTOBitcodeWriter: Clear comdats on filtered globals. 2017-01-18 20:03:02 +00:00
Util [AliasAnalysis] Teach BasicAA about memcpy. 2016-12-25 22:42:27 +00:00
WholeProgramDevirt WholeProgramDevirt: Teach the pass to handle structs of arrays. 2016-12-09 01:10:11 +00:00