llvm-project/llvm/test/Analysis
Sanjoy Das e8fd9561cb [SCEV] Fix incorrect trip count computation
The way we elide max expressions when computing trip counts is incorrect
-- it breaks cases like this:

```
static int wrapping_add(int a, int b) {
  return (int)((unsigned)a + (unsigned)b);
}

void test() {
  volatile int end_buf = 2147483548; // INT_MIN - 100
  int end = end_buf;

  unsigned counter = 0;
  for (int start = wrapping_add(end,  200); start < end; start++)
    counter++;

  print(counter);
}
```

Note: the `NoWrap` variable that was being tested has little to do with
the values flowing into the max expression; it is a property of the
induction variable.

test/Transforms/LoopUnroll/nsw-tripcount.ll was added to solely test
functionality I'm reverting in this change, so I've deleted the test
fully.

llvm-svn: 273079
2016-06-18 04:38:31 +00:00
..
AssumptionCache [PM] Actually add the new pass manager support for the assumption cache. 2015-01-22 21:53:09 +00:00
BasicAA Revert "Claim NoAlias if two GEPs index different fields of the same struct" 2016-06-01 18:55:32 +00:00
BlockFrequencyInfo [PM] port Branch Frequency Analaysis pass to new PM 2016-05-05 21:13:27 +00:00
BranchProbabilityInfo [PM] Port Branch Probability Analysis pass to the new pass manager. 2016-05-05 02:59:57 +00:00
CFLAliasAnalysis [CFLAA] Tag arguments as escaped instead of unknown. 2016-06-14 18:12:28 +00:00
CallGraph [CG] Add a new pass manager printer pass for the old call graph and 2016-03-10 11:24:11 +00:00
CostModel [CostModel][X86][SSE] Updated costs for vector BITREVERSE ops on SSSE3+ targets 2016-06-11 19:23:02 +00:00
Delinearization [SCEV] Mark AddExprs as nsw or nuw if legal 2015-10-22 19:57:19 +00:00
DemandedBits Port DemandedBits to the new pass manager. 2016-04-18 23:55:01 +00:00
DependenceAnalysis [DependenceAnalysis] Check if result of getConstantPart is null 2016-04-04 18:13:18 +00:00
DivergenceAnalysis DivergenceAnalysis: Fix crash with no return blocks 2016-05-09 16:57:08 +00:00
DominanceFrontier Another fix the testcase introduced by r261903 - Add the missing matches 2016-02-26 03:41:47 +00:00
Dominators Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
GlobalsModRef Don't IPO over functions that can be de-refined 2016-04-08 00:48:30 +00:00
LazyCallGraph [LCG] Spell the printing pass pipeline name for the lazy call graph 2016-03-10 11:24:06 +00:00
Lint [WinEH] Delete the old landingpad implementation of Windows EH 2015-10-09 23:34:53 +00:00
LoopAccessAnalysis [LAA] Improve non-wrapping pointer detection by handling loop-invariant case. 2016-06-07 14:55:27 +00:00
LoopInfo [PM] Port LoopInfo to the new pass manager, adding both a LoopAnalysis 2015-01-20 10:58:50 +00:00
MemoryDependenceAnalysis [MDA] change BlockScanLimit into a command line option. 2015-07-21 21:50:39 +00:00
PostDominators Introduce analysis pass to compute PostDominators in the new pass manager. NFC 2016-02-25 17:54:07 +00:00
ProfileSummary Reapply r271728 after adding move cobstructor for ProfileSummaryInfo 2016-06-03 22:54:26 +00:00
RegionInfo Introduce RegionInfoAnalysis, which compute Region Tree in the new PassManager. NFC 2016-02-25 17:54:25 +00:00
ScalarEvolution [SCEV] Fix incorrect trip count computation 2016-06-18 04:38:31 +00:00
ScopedNoAliasAA [ScopedNoAliasAA] Make test basic.ll less confusing 2016-03-07 17:49:10 +00:00
TypeBasedAliasAnalysis [PM/AA] Wire up TBAA to the new pass manager's registry and test it. 2016-02-20 04:04:52 +00:00
ValueTracking Reduce dependence on pointee types when deducing dereferenceability 2016-06-01 16:47:45 +00:00
alias-analysis-uses.ll Add an "addUsedAAAnalyses" helper function 2016-02-09 01:21:57 +00:00