diff options
author | Dan Gohman <gohman@apple.com> | 2009-04-16 03:18:22 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2009-04-16 03:18:22 +0000 |
commit | 0a40ad93a9fb476ff4205bb29a075dc572c37e47 (patch) | |
tree | 33467367832f7437cd56d6917cfe4f068ec2d717 /llvm/test/CodeGen/ARM/2007-03-13-InstrSched.ll | |
parent | 1e86593b6a24f7fcf558275648bc291b07544b26 (diff) | |
download | bcm5719-llvm-0a40ad93a9fb476ff4205bb29a075dc572c37e47.tar.gz bcm5719-llvm-0a40ad93a9fb476ff4205bb29a075dc572c37e47.zip |
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
Diffstat (limited to 'llvm/test/CodeGen/ARM/2007-03-13-InstrSched.ll')
-rw-r--r-- | llvm/test/CodeGen/ARM/2007-03-13-InstrSched.ll | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/ARM/2007-03-13-InstrSched.ll b/llvm/test/CodeGen/ARM/2007-03-13-InstrSched.ll index 8fdff52f015..1b917f0ac2b 100644 --- a/llvm/test/CodeGen/ARM/2007-03-13-InstrSched.ll +++ b/llvm/test/CodeGen/ARM/2007-03-13-InstrSched.ll @@ -1,5 +1,5 @@ ; RUN: llvm-as < %s | llc -mtriple=arm-apple-darwin -relocation-model=pic \ -; RUN: -mattr=+v6 -stats |& grep asm-printer | grep 41 +; RUN: -mattr=+v6 -ifcvt-limit=0 -stats |& grep asm-printer | grep 35 define void @test(i32 %tmp56222, i32 %tmp36224, i32 %tmp46223, i32 %i.0196.0.ph, i32 %tmp8, i32* %tmp1011, i32** %tmp1, i32* %d2.1.out, i32* %d3.1.out, i32* %d0.1.out, i32* %d1.1.out) { newFuncRoot: |