mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
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
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
; RUN: llvm-as < %s | llc -march=x86-64 -f -o %t
|
||||
; RUN: grep inc %t | count 2
|
||||
; RUN: grep addq %t | count 13
|
||||
; RUN: grep leaq %t | count 9
|
||||
; RUN: grep leaq %t | count 8
|
||||
; RUN: grep leal %t | count 4
|
||||
; RUN: grep movq %t | count 5
|
||||
|
||||
; IV users in each of the loops from other loops shouldn't cause LSR
|
||||
|
Reference in New Issue
Block a user