Dan Gohman 98aa1d9693 Expand GEPs in ScalarEvolution expressions. SCEV expressions can now
have pointer types, though in contrast to C pointer types, SCEV
addition is never implicitly scaled. This not only eliminates the
need for special code like IndVars' EliminatePointerRecurrence
and LSR's own GEP expansion code, it also does a better job because
it lets the normal optimizations handle pointer expressions just
like integer expressions.

Also, since LLVM IR GEPs can't directly index into multi-dimensional
VLAs, moving the GEP analysis out of client code and into the SCEV
framework makes it easier for clients to handle multi-dimensional
VLAs the same way as other arrays.

Some existing regression tests show improved optimization.
test/CodeGen/ARM/2007-03-13-InstrSched.ll in particular improved to
the point where if-conversion started kicking in; I turned it off
for this test to preserve the intent of the test.

llvm-svn: 69258
2009-04-16 03:18:22 +00:00
..
2008-02-17 20:02:20 +00:00
2007-07-19 23:13:04 +00:00
2007-03-19 18:27:35 +00:00
2007-07-19 23:13:04 +00:00
2007-04-16 17:36:08 +00:00
2007-04-16 17:36:08 +00:00
2007-07-19 23:13:04 +00:00
2007-05-05 23:44:41 +00:00
2008-04-10 23:49:09 +00:00
2008-04-10 23:49:09 +00:00
2007-04-16 15:15:52 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2007-03-08 19:27:32 +00:00
2007-04-16 17:36:08 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2007-04-16 17:36:08 +00:00
2008-02-17 20:02:20 +00:00
2007-05-03 00:31:40 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2007-04-16 17:36:08 +00:00
2008-02-17 20:02:20 +00:00
2008-04-01 02:18:22 +00:00
2008-02-17 20:02:20 +00:00
2007-08-15 22:13:27 +00:00
2007-04-16 15:15:52 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2008-02-17 20:02:20 +00:00
2007-04-04 00:15:17 +00:00
2007-04-28 06:03:12 +00:00
2008-02-17 20:02:20 +00:00
2007-04-30 05:11:58 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2009-01-15 20:18:42 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2007-04-27 21:23:17 +00:00
2007-04-27 21:08:48 +00:00
2007-11-05 18:33:37 +00:00
2007-10-13 06:56:18 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00