Skip to content
  1. Apr 24, 2004
  2. Apr 23, 2004
  3. Apr 22, 2004
    • Misha Brukman's avatar
      Add a space before result for readability on the command line. · 324e9e06
      Misha Brukman authored
      llvm-svn: 13109
      324e9e06
    • Chris Lattner's avatar
      c27302c7
    • Chris Lattner's avatar
      Add an ugly cast · 8f02e9c5
      Chris Lattner authored
      llvm-svn: 13107
      8f02e9c5
    • Chris Lattner's avatar
      c1a682dd
    • Chris Lattner's avatar
      Add a method · 334bee87
      Chris Lattner authored
      llvm-svn: 13105
      334bee87
    • Chris Lattner's avatar
      Implement a todo, rewriting all possible scev expressions inside of the · af532f27
      Chris Lattner authored
      loop.  This eliminates the extra add from the previous case, but it's
      not clear that this will be a performance win overall.  Tommorows test
      results will tell. :)
      
      llvm-svn: 13103
      af532f27
    • Chris Lattner's avatar
      This code really wants to iterate over the OPERANDS of an instruction, not · fb9a299f
      Chris Lattner authored
      over its USES.  If it's dead it doesn't have any uses!  :)
      
      Thanks to the fabulous and mysterious Bill Wendling for pointing this out.  :)
      
      llvm-svn: 13102
      fb9a299f
    • Chris Lattner's avatar
      Implement a fixme. The helps loops that have induction variables of different · dc7cc350
      Chris Lattner authored
      types in them.  Instead of creating an induction variable for all types, it
      creates a single induction variable and casts to the other sizes.  This generates
      this code:
      
      no_exit:                ; preds = %entry, %no_exit
              %indvar = phi uint [ %indvar.next, %no_exit ], [ 0, %entry ]            ; <uint> [#uses=4]
      ***     %j.0.0 = cast uint %indvar to short             ; <short> [#uses=1]
              %indvar = cast uint %indvar to int              ; <int> [#uses=1]
              %tmp.7 = getelementptr short* %P, uint %indvar          ; <short*> [#uses=1]
              store short %j.0.0, short* %tmp.7
              %inc.0 = add int %indvar, 1             ; <int> [#uses=2]
              %tmp.2 = setlt int %inc.0, %N           ; <bool> [#uses=1]
              %indvar.next = add uint %indvar, 1              ; <uint> [#uses=1]
              br bool %tmp.2, label %no_exit, label %loopexit
      
      instead of:
      
      no_exit:                ; preds = %entry, %no_exit
              %indvar = phi ushort [ %indvar.next, %no_exit ], [ 0, %entry ]          ; <ushort> [#uses=2]
      ***     %indvar = phi uint [ %indvar.next, %no_exit ], [ 0, %entry ]            ; <uint> [#uses=3]
              %indvar = cast uint %indvar to int              ; <int> [#uses=1]
              %indvar = cast ushort %indvar to short          ; <short> [#uses=1]
              %tmp.7 = getelementptr short* %P, uint %indvar          ; <short*> [#uses=1]
              store short %indvar, short* %tmp.7
              %inc.0 = add int %indvar, 1             ; <int> [#uses=2]
              %tmp.2 = setlt int %inc.0, %N           ; <bool> [#uses=1]
              %indvar.next = add uint %indvar, 1
      ***     %indvar.next = add ushort %indvar, 1
              br bool %tmp.2, label %no_exit, label %loopexit
      
      This is an improvement in register pressure, but probably doesn't happen that
      often.
      
      The more important fix will be to get rid of the redundant add.
      
      llvm-svn: 13101
      dc7cc350
  4. Apr 21, 2004
Loading