llvm-6502/test/Analysis
Sanjoy Das 8d16a81c33 Bugfix: SCEVExpander incorrectly marks increment operations as no-wrap
When emitting the increment operation, SCEVExpander marks the
operation as nuw or nsw based on the flags on the preincrement SCEV.
This is incorrect because, for instance, it is possible that {-6,+,1}
is <nuw> while {-6,+,1}+1 = {-5,+,1} is not.

This change teaches SCEV to mark the increment as nuw/nsw only if it
can explicitly prove that the increment operation won't overflow.

Apart from the attached test case, another (more realistic) manifestation
of the bug can be seen in Transforms/IndVarSimplify/pr20680.ll.

NOTE: this change was landed with an incorrect commit message in
rL230275 and was reverted for that reason in rL230279.  This commit
message is the correct one.

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230280 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-23 23:22:58 +00:00
..
AssumptionCache [PM] Actually add the new pass manager support for the assumption cache. 2015-01-22 21:53:09 +00:00
BasicAA [BasicAA] Try to disambiguate GEPs through arrays of structs into 2015-02-07 17:04:29 +00:00
BlockFrequencyInfo IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
BranchProbabilityInfo IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
CallGraph [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
CFLAliasAnalysis Fixed a bug where CFLAA would crash the compiler. 2015-02-12 03:07:07 +00:00
CostModel [x86,sdag] Two interrelated changes to the x86 and sdag code. 2015-02-19 10:36:19 +00:00
Delinearization ScalarEvolution: Derive element size from the type of the loaded element 2014-06-08 19:21:20 +00:00
DependenceAnalysis [DependenceAnalysis] Allow subscripts of different types 2014-11-16 16:52:44 +00:00
Dominators [PM] Port domtree to the new pass manager (at last). 2015-01-14 10:19:28 +00:00
GlobalsModRef Move the complex address expression out of DIVariable and into an extra 2014-10-01 18:55:02 +00:00
LazyCallGraph [LCG] Add support for building persistent and connected SCCs to the 2014-04-18 10:50:32 +00:00
Lint Adding support for llvm.eh.begincatch and llvm.eh.endcatch intrinsics and beginning the documentation of native Windows exception handling. 2015-02-10 19:52:43 +00:00
LoopAccessAnalysis [LoopAccesses] Add -analyze support 2015-02-19 19:15:19 +00:00
LoopInfo [PM] Port LoopInfo to the new pass manager, adding both a LoopAnalysis 2015-01-20 10:58:50 +00:00
MemoryDependenceAnalysis [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
PostDominators FileCheck-ize tests. 2013-08-22 00:51:19 +00:00
RegionInfo [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
ScalarEvolution Bugfix: SCEVExpander incorrectly marks increment operations as no-wrap 2015-02-23 23:22:58 +00:00
ScopedNoAliasAA IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
TypeBasedAliasAnalysis Re-reapply r221924: "[GVN] Perform Scalar PRE on gep indices that feed loads before 2015-01-09 19:19:56 +00:00
ValueTracking MemDerefPrinter: Require DataLayoutPass for higher accuracy 2015-02-09 21:50:03 +00:00