Skip to content
  • Dan Gohman's avatar
    Expand GEPs in ScalarEvolution expressions. SCEV expressions can now · 0a40ad93
    Dan Gohman authored
    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
    0a40ad93
Loading