Dan Gohman
2d1be87ee4
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69258 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-16 03:18:22 +00:00
..
2009-03-31 18:20:47 +00:00
2009-03-31 18:20:47 +00:00
2009-03-25 20:20:11 +00:00
2009-03-23 08:01:15 +00:00
2009-03-31 18:20:47 +00:00
2009-03-12 16:10:08 +00:00
2009-03-23 08:01:15 +00:00
2009-03-23 08:01:15 +00:00
2009-02-27 00:02:22 +00:00
2009-03-10 06:53:54 +00:00
2009-03-04 00:18:06 +00:00
2009-03-06 02:23:01 +00:00
2009-03-11 05:08:08 +00:00
2009-03-09 20:22:18 +00:00
2009-03-09 19:00:05 +00:00
2009-03-11 00:03:21 +00:00
2009-03-11 22:18:44 +00:00
2009-03-13 07:51:59 +00:00
2009-03-17 09:46:22 +00:00
2009-03-31 18:20:47 +00:00
2009-03-17 01:23:09 +00:00
2009-03-23 21:16:53 +00:00
2009-03-23 22:57:19 +00:00
2009-03-24 16:38:27 +00:00
2009-03-26 23:03:32 +00:00
2009-03-30 06:17:34 +00:00
2009-04-09 16:50:43 +00:00
2009-04-12 07:51:14 +00:00
2009-04-12 23:00:38 +00:00
2009-04-14 00:32:25 +00:00
2009-04-13 20:04:24 +00:00
2009-04-14 16:57:43 +00:00
2009-03-25 20:20:11 +00:00
2009-04-12 23:00:38 +00:00
2009-03-25 01:47:28 +00:00
2009-03-17 20:23:43 +00:00
2009-04-03 20:11:30 +00:00
2009-04-09 03:51:29 +00:00
2009-03-17 02:45:40 +00:00
2009-04-08 00:15:30 +00:00
2009-03-18 00:43:52 +00:00
2009-03-25 20:20:11 +00:00
2009-04-04 10:24:24 +00:00
2009-04-08 00:54:40 +00:00
2009-03-01 23:44:07 +00:00
2009-04-07 20:40:11 +00:00
2009-03-13 20:42:20 +00:00
2009-03-13 23:53:06 +00:00
2009-03-13 23:53:06 +00:00
2009-03-13 23:54:51 +00:00
2009-03-13 02:25:09 +00:00
2009-04-13 16:09:41 +00:00
2009-04-13 16:09:41 +00:00
2009-04-13 16:09:41 +00:00
2009-04-14 22:17:14 +00:00
2009-04-14 22:17:14 +00:00
2009-04-14 22:50:17 +00:00
2009-03-12 17:07:39 +00:00
2009-03-23 18:27:36 +00:00
2009-03-28 05:57:29 +00:00
2009-03-30 21:34:07 +00:00
2009-03-04 02:47:25 +00:00
2009-04-13 16:09:41 +00:00
2009-03-17 23:43:59 +00:00
2009-04-16 03:18:22 +00:00
2009-03-31 01:38:29 +00:00
2009-03-05 19:31:32 +00:00
2009-03-12 05:59:15 +00:00
2009-03-12 06:52:53 +00:00
2009-03-05 19:32:48 +00:00
2009-03-05 19:32:48 +00:00
2009-03-07 01:58:32 +00:00
2009-03-25 01:47:28 +00:00
2009-03-11 05:08:08 +00:00
2009-04-16 03:18:22 +00:00
2009-03-31 08:27:09 +00:00
2009-03-04 08:52:31 +00:00
2009-02-27 00:51:50 +00:00
2009-03-14 02:33:41 +00:00
2009-03-30 15:28:40 +00:00
2009-03-13 05:53:31 +00:00
2009-03-25 20:30:19 +00:00
2009-03-25 20:20:11 +00:00
2009-03-31 19:39:24 +00:00
2009-03-31 19:39:24 +00:00
2009-03-25 20:20:11 +00:00
2009-04-16 03:18:22 +00:00
2009-04-14 00:32:25 +00:00
2009-03-23 07:19:58 +00:00
2009-04-08 00:15:30 +00:00
2009-04-08 00:15:30 +00:00
2009-04-08 00:15:30 +00:00
2009-04-08 00:15:30 +00:00
2009-04-09 03:51:29 +00:00
2009-03-28 08:33:27 +00:00
2009-03-28 08:33:27 +00:00
2009-03-28 12:36:29 +00:00
2009-04-12 10:43:41 +00:00
2009-04-13 13:02:49 +00:00
2009-04-12 10:43:41 +00:00
2009-04-13 13:02:49 +00:00
2009-04-12 10:43:41 +00:00
2009-04-13 13:02:49 +00:00
2009-04-12 10:43:41 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-04-13 13:02:49 +00:00
2009-03-01 02:03:43 +00:00
2009-04-08 00:15:30 +00:00
2009-04-03 02:43:30 +00:00
2009-03-11 06:35:11 +00:00
2009-03-11 18:47:57 +00:00
2009-03-17 19:36:00 +00:00