Skip to content
  1. Apr 15, 2004
    • Chris Lattner's avatar
      Fix a bug in the previous checkin: if the exit block is not the same as · d7a559e3
      Chris Lattner authored
      the back-edge block, we must check the preincremented value.
      
      llvm-svn: 12968
      d7a559e3
    • Chris Lattner's avatar
      Change the canonical induction variable that we insert. · 0cec5cb9
      Chris Lattner authored
      Instead of producing code like this:
      
      Loop:
        X = phi 0, X2
        ...
      
        X2 = X + 1
        if (X != N-1) goto Loop
      
      We now generate code that looks like this:
      
      Loop:
        X = phi 0, X2
        ...
      
        X2 = X + 1
        if (X2 != N) goto Loop
      
      This has two big advantages:
        1. The trip count of the loop is now explicit in the code, allowing
           the direct implementation of Loop::getTripCount()
        2. This reduces register pressure in the loop, and allows X and X2 to be
           put into the same register.
      
      As a consequence of the second point, the code we generate for loops went
      from:
      
      .LBB2:  # no_exit.1
      	...
              mov %EDI, %ESI
              inc %EDI
              cmp %ESI, 2
              mov %ESI, %EDI
              jne .LBB2 # PC rel: no_exit.1
      
      To:
      
      .LBB2:  # no_exit.1
      	...
              inc %ESI
              cmp %ESI, 3
              jne .LBB2 # PC rel: no_exit.1
      
      ... which has two fewer moves, and uses one less register.
      
      llvm-svn: 12961
      0cec5cb9
  2. Apr 14, 2004
  3. Apr 13, 2004
  4. Apr 12, 2004
  5. Apr 11, 2004
  6. Apr 10, 2004
  7. Apr 09, 2004
  8. Apr 08, 2004
  9. Apr 07, 2004
  10. Apr 05, 2004
  11. Apr 02, 2004
  12. Apr 01, 2004
  13. Mar 30, 2004
  14. Mar 26, 2004
  15. Mar 25, 2004
    • Chris Lattner's avatar
      Two changes: · 57c67b06
      Chris Lattner authored
      #1 is to unconditionally strip constantpointerrefs out of
      instruction operands where they are absolutely pointless and inhibit
      optimization.  GRRR!
      
      #2 is to implement InstCombine/getelementptr_const.ll
      
      llvm-svn: 12519
      57c67b06
  16. Mar 19, 2004
  17. Mar 17, 2004
Loading