Skip to content
  • Andrew Trick's avatar
    indvars -disable-iv-rewrite: Adds support for eliminating identity · 69d4452f
    Andrew Trick authored
    ops.
    
    This is a rewrite of the IV simplification algorithm used by
    -disable-iv-rewrite. To avoid perturbing the default mode, I
    temporarily split the driver and created SimplifyIVUsersNoRewrite. The
    idea is to avoid doing opcode/pattern matching inside
    IndVarSimplify. SCEV already does it. We want to optimize with the
    full generality of SCEV, but optimize def-use chains top down on-demand rather
    than rewriting the entire expression bottom-up. This was easy to do
    for operations that SCEV can prove are identity function. So we're now
    eliminating bitmasks and zero extends this way.
    
    A result of this rewrite is that indvars -disable-iv-rewrite no longer
    requires IVUsers.
    
    llvm-svn: 133502
    69d4452f
Loading