llvm-project/llvm/lib/Analysis
Chris Lattner 30214c23aa * Add capability to recognize alias properties of the following common cases:
- A[c1] cannot alias A[c2] where constants c1 != c2
  - A[i] cannot alias B[j] if A & B are provably different arrays

This should help out array based codes.  For example, from bzip2 from spec,
3 additional loads can be GCSE'd, and _21_ additional loads can be LICMd due
to this change.

In a test example from the Spec GAP benchmark (vecffe.c), this change allows
_52_ additional loads to be GCSE'd and _224_ additional LICM'd loads.

Not bad for such a simple change.  Other testcases show no change at all
because they just don't use arrays.  Not too suprising there.

llvm-svn: 3616
2002-09-08 18:45:18 +00:00
..
DataStructure Eliminated the MemAccessInst class, folding contents into GEP class. 2002-08-22 23:37:24 +00:00
IPA - Do not expose ::ID from any of the analyses anymore. 2002-08-21 17:09:49 +00:00
LiveVar - Do not expose ::ID from any of the analyses anymore. 2002-08-21 17:09:45 +00:00
AliasAnalysis.cpp * Add capability to recognize alias properties of the following common cases: 2002-09-08 18:45:18 +00:00
Expressions.cpp - Renamed Type::isIntegral() to Type::isInteger() 2002-09-03 01:05:48 +00:00
InductionVariable.cpp - Eliminate the last traces of the 'analysis' namespace 2002-08-30 22:53:53 +00:00
Interval.cpp *** empty log message *** 2002-07-31 19:32:01 +00:00
IntervalPartition.cpp - Do not expose ::ID from any of the analyses anymore. 2002-08-21 17:09:49 +00:00
LoadValueNumbering.cpp Initial implementation of value numbering for load instructions 2002-08-30 20:28:10 +00:00
LoopInfo.cpp Changed so it gets linked properly 2002-08-26 16:45:19 +00:00
Makefile Convert over to new style makefile where libraries by default build .o files 2002-07-23 17:52:24 +00:00
PostDominators.cpp - Split Dominators.h into Dominators.h & PostDominators.h 2002-08-21 23:43:50 +00:00
ValueNumbering.cpp Minor cleanups so I can remove BasicValueNumbering.h 2002-08-30 22:30:36 +00:00