1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 04:22:57 +02:00
llvm-mirror/test/Transforms
Philip Reames 070a34b8a9 [LVI] Exploit nsw/nuw when computing constant ranges
As the title says. Modelled after similar code in SCEV.

This is useful when analysing induction variables in loops which have been canonicalized by other passes. I wrote the tests as non-loops specifically to avoid the generality introduced in http://reviews.llvm.org/D17174. While that can handle many induction variables without *needing* to exploit nsw, there's no reason not to use it if we've already proven it.

Differential Revision: http://reviews.llvm.org/D17177

llvm-svn: 260705
2016-02-12 19:05:16 +00:00
..
ADCE
AddDiscriminators
AlignmentFromAssumptions
ArgumentPromotion
AtomicExpand [IR] Add support for floating pointer atomic loads and stores 2015-12-16 00:49:36 +00:00
BBVectorize
BDCE
BranchFolding
CodeExtractor
CodeGenPrepare AMDGPU: Remove some old intrinsic uses from tests 2016-02-11 06:02:01 +00:00
ConstantHoisting
ConstantMerge
ConstProp IR: Make ConstantDataArray::getFP actually return a ConstantDataArray 2015-12-09 21:21:07 +00:00
CorrelatedValuePropagation [LVI] Exploit nsw/nuw when computing constant ranges 2016-02-12 19:05:16 +00:00
CrossDSOCFI [cfi] Cross-DSO CFI diagnostic mode (LLVM part). 2016-01-25 23:35:03 +00:00
DeadArgElim [OperandBundles] Have DeadArgElim play nice with operand bundles 2015-12-23 09:58:36 +00:00
DeadStoreElimination [BasicAliasAnalysis] Take into account operand bundles in the getModRefInfo function 2016-01-16 12:15:53 +00:00
EarlyCSE Fix several accidental DOS line endings in source files 2016-01-03 17:22:03 +00:00
EliminateAvailableExternally
Float2Int
ForcedFunctionAttrs [attrs] Split off the forced attributes utility into its own pass that 2015-12-27 08:13:45 +00:00
FunctionAttrs Add convergent-removing bits to FunctionAttrs pass. 2016-02-09 23:03:22 +00:00
FunctionImport FunctionImport: add a progressive heuristic to limit importing too deep in the callgraph 2016-02-10 23:31:45 +00:00
GCOVProfiling [GCOV] Avoid emitting profile arcs for module and skeleton CUs 2016-01-21 17:04:42 +00:00
GlobalDCE
GlobalOpt Make sure that any new and optimized objects created during GlobalOPT copy all the attributes from the base object. 2016-01-22 21:18:20 +00:00
GVN Fix for two constant propagation problems in GVN with the assume intrinsic 2016-01-21 21:32:35 +00:00
IndVarSimplify [SCEV] Try to reuse existing value during SCEV expansion 2016-02-04 01:27:38 +00:00
InferFunctionAttrs [BasicAA] Remove special casing of memset_pattern16 in favor of generic attribute inference 2016-01-06 04:53:16 +00:00
Inline Avoid inlining call sites in unreachable-terminated block 2016-02-01 20:55:11 +00:00
InstCombine [InstCombine] Don't aggressively replace xor with icmp 2016-02-12 18:12:38 +00:00
InstMerge
InstSimplify Add a test case to show isKnownNonZero() returns correctly; NFC 2016-02-11 17:11:49 +00:00
Internalize
IPConstantProp [SCCP] Don't violate the lattice invariants 2016-01-07 21:36:16 +00:00
IRCE [SCEV] Try to reuse existing value during SCEV expansion 2016-02-04 01:27:38 +00:00
JumpThreading [LVI] Introduce an intersect operation on lattice values 2016-02-02 03:15:40 +00:00
LCSSA [WinEH] Update LCSSA to handle catchswitch with handlers inside and outside a loop 2015-12-18 18:12:35 +00:00
LICM [LICM] Keep metadata on control equivalent hoists 2016-01-28 15:51:58 +00:00
LoadCombine
LoopDeletion
LoopDistribute
LoopIdiom [LIR] Add support for structs and hand unrolled loops 2016-01-26 02:27:47 +00:00
LoopInterchange
LoopLoadElim [LoopLoadElim] Don't allow versioning when optForSize 2016-02-05 01:14:05 +00:00
LoopReroll Enable loopreroll to rerool loop with pointer induction variable. 2016-01-25 19:43:45 +00:00
LoopRotate
LoopSimplify
LoopSimplifyCFG Add LoopSimplifyCFG pass 2016-01-29 22:35:36 +00:00
LoopStrengthReduce [SCEV] Try to reuse existing value during SCEV expansion 2016-02-04 01:27:38 +00:00
LoopUnroll AMDGPU: Remove some old intrinsic uses from tests 2016-02-11 06:02:01 +00:00
LoopUnswitch [IR] Reformulate LLVM's EH funclet IR 2015-12-12 05:38:55 +00:00
LoopVectorize [SCEV][LAA] Re-commit r260085 and r260086, this time with a fix for the memory 2016-02-08 17:02:45 +00:00
LoopVersioning [LoopVersioning] Expose loop versioning as a pass too 2016-02-03 00:06:10 +00:00
LoopVersioningLICM Corrected tests for Loop Versioning LICM, by adding “REQUIRES: asserts”. 2016-02-06 12:34:41 +00:00
LowerAtomic
LowerBitSets [cfi] Fix LowerBitSets on 32-bit targets. 2015-12-21 22:14:04 +00:00
LowerExpectIntrinsic
LowerInvoke
LowerSwitch
Mem2Reg [Mem2Reg] Respect optnone 2015-12-11 13:36:59 +00:00
MemCpyOpt Fix PR26051: Memcpy optimization should introduce a call to memcpy before the store destination position 2016-01-06 23:50:22 +00:00
MergeFunc [IR] Remove terminatepad 2015-12-14 18:34:23 +00:00
MetaRenamer
NaryReassociate [NaryReassociate] allow candidate to have a different type 2015-12-18 21:36:30 +00:00
ObjCARC Add support for objc_unsafeClaimAutoreleasedReturnValue to the 2016-01-27 19:05:08 +00:00
PartiallyInlineLibCalls
PGOProfile [PGO] Indirect-call profile annotation in IR level profiling 2016-02-10 18:24:45 +00:00
PhaseOrdering
PlaceSafepoints [PlaceSafepoints] Clamp NoStatepoints to true 2016-01-28 21:51:14 +00:00
PruneEH [PruneEH] Don't try to insert a terminator after another terminator 2016-01-23 06:00:44 +00:00
Reassociate Reassociate: Reprocess RedoInsts after each inst 2016-01-26 18:42:36 +00:00
Reg2Mem
RewriteStatepointsForGC [RS4GC] Remove unnecessary redirections from tests; NFC 2016-01-29 16:32:30 +00:00
SafeStack [safestack] Make sure the unsafe stack pointer is popped in all cases 2016-02-02 01:03:11 +00:00
SampleProfile
Scalarizer
ScalarRepl
SCCP
SeparateConstOffsetFromGEP
SimplifyCFG [SimplifyCFG] Fix for "endless" loop after dead code removal (Alternative to 2016-02-03 23:54:25 +00:00
Sink [IR] Reformulate LLVM's EH funclet IR 2015-12-12 05:38:55 +00:00
SLPVectorizer Add test case missing from r259357 (NFC) 2016-02-01 19:09:24 +00:00
SpeculativeExecution
SROA [SROA] Also insert a bit piece expression if only one piece is needed 2016-01-14 20:06:34 +00:00
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols
StructurizeCFG AMDGPU: Remove some old intrinsic uses from tests 2016-02-11 06:02:01 +00:00
TailCallElim Push isDereferenceableAndAlignedPointer down into isSafeToLoadUnconditionally 2016-01-17 12:35:29 +00:00
TailDup
Util Make check line consistent 2016-02-07 20:57:46 +00:00
WholeProgramDevirt WholeProgramDevirt: introduce. 2016-02-09 22:50:34 +00:00