Skip to content
  1. Dec 31, 2006
    • Reid Spencer's avatar
      For PR950: · c635f47d
      Reid Spencer authored
      This patch replaces signed integer types with signless ones:
      1. [US]Byte -> Int8
      2. [U]Short -> Int16
      3. [U]Int   -> Int32
      4. [U]Long  -> Int64.
      5. Removal of isSigned, isUnsigned, getSignedVersion, getUnsignedVersion
         and other methods related to signedness. In a few places this warranted
         identifying the signedness information from other sources.
      
      llvm-svn: 32785
      c635f47d
  2. Dec 23, 2006
    • Reid Spencer's avatar
      For PR950: · 266e42b3
      Reid Spencer authored
      This patch removes the SetCC instructions and replaces them with the ICmp
      and FCmp instructions. The SetCondInst instruction has been removed and
      been replaced with ICmpInst and FCmpInst.
      
      llvm-svn: 32751
      266e42b3
  3. Dec 19, 2006
  4. Dec 13, 2006
  5. Dec 12, 2006
  6. Dec 07, 2006
  7. Dec 06, 2006
  8. Nov 27, 2006
    • Reid Spencer's avatar
      For PR950: · 6c38f0bb
      Reid Spencer authored
      The long awaited CAST patch. This introduces 12 new instructions into LLVM
      to replace the cast instruction. Corresponding changes throughout LLVM are
      provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
      exception of 175.vpr which fails only on a slight floating point output
      difference.
      
      llvm-svn: 31931
      6c38f0bb
  9. Nov 26, 2006
  10. Nov 17, 2006
    • Chris Lattner's avatar
      If an indvar with a variable stride is used by the exit condition, go ahead · 21eba2da
      Chris Lattner authored
      and handle it like constant stride vars.  This fixes some bad codegen in
      variable stride cases.  For example, it compiles this:
      
      void foo(int k, int i) {
        for (k=i+i; k <= 8192; k+=i)
          flags2[k] = 0;
      }
      
      to:
      
      LBB1_1: #bb.preheader
              movl %eax, %ecx
              addl %ecx, %ecx
              movl L_flags2$non_lazy_ptr, %edx
      LBB1_2: #bb
              movb $0, (%edx,%ecx)
              addl %eax, %ecx
              cmpl $8192, %ecx
              jle LBB1_2      #bb
      LBB1_5: #return
              ret
      
      or (if the array is local and we are in dynamic-nonpic or static mode):
      
      LBB3_2: #bb
              movb $0, _flags2(%ecx)
              addl %eax, %ecx
              cmpl $8192, %ecx
              jle LBB3_2      #bb
      
      and:
      
              lis r2, ha16(L_flags2$non_lazy_ptr)
              lwz r2, lo16(L_flags2$non_lazy_ptr)(r2)
              slwi r3, r4, 1
      LBB1_2: ;bb
              li r5, 0
              add r6, r4, r3
              stbx r5, r2, r3
              cmpwi cr0, r6, 8192
              bgt cr0, LBB1_5 ;return
      
      instead of:
      
              leal (%eax,%eax,2), %ecx
              movl %eax, %edx
              addl %edx, %edx
              addl L_flags2$non_lazy_ptr, %edx
              xorl %esi, %esi
      LBB1_2: #bb
              movb $0, (%edx,%esi)
              movl %eax, %edi
              addl %esi, %edi
              addl %ecx, %esi
              cmpl $8192, %esi
              jg LBB1_5       #return
      
      and:
      
              lis r2, ha16(L_flags2$non_lazy_ptr)
              lwz r2, lo16(L_flags2$non_lazy_ptr)(r2)
              mulli r3, r4, 3
              slwi r5, r4, 1
              li r6, 0
              add r2, r2, r5
      LBB1_2: ;bb
              li r5, 0
              add r7, r3, r6
              stbx r5, r2, r6
              add r6, r4, r6
              cmpwi cr0, r7, 8192
              ble cr0, LBB1_2 ;bb
      
      This speeds up Benchmarks/Shootout/sieve from 8.533s to 6.464s and
      implements LoopStrengthReduce/var_stride_used_by_compare.ll
      
      llvm-svn: 31809
      21eba2da
  11. Nov 02, 2006
    • Reid Spencer's avatar
      For PR786: · de46e484
      Reid Spencer authored
      Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
      fall out by removing unused variables. Remaining warnings have to do with
      unused functions (I didn't want to delete code without review) and unused
      variables in generated code. Maintainers should clean up the remaining
      issues when they see them. All changes pass DejaGnu tests and Olden.
      
      llvm-svn: 31380
      de46e484
  12. Oct 28, 2006
  13. Oct 20, 2006
    • Reid Spencer's avatar
      For PR950: · e0fc4dfc
      Reid Spencer authored
      This patch implements the first increment for the Signless Types feature.
      All changes pertain to removing the ConstantSInt and ConstantUInt classes
      in favor of just using ConstantInt.
      
      llvm-svn: 31063
      e0fc4dfc
  14. Aug 28, 2006
  15. Aug 27, 2006
  16. Aug 03, 2006
    • Chris Lattner's avatar
      · 3ff62017
      Chris Lattner authored
      Changes:
        1. Update an obsolete comment.
        2. Make the sorting by base an explicit (though still N^2) step, so
           that the code is more clear on what it is doing.
        3. Partition uses so that uses inside the loop are handled before uses
           outside the loop.
      
      Note that none of these changes currently changes the code inserted by LSR,
      but they are a stepping stone to getting there.
      
      This code is the result of some crazy pair programming with Nate. :)
      
      llvm-svn: 29493
      3ff62017
  17. Jul 18, 2006
  18. Jun 29, 2006
  19. Jun 09, 2006
  20. Apr 12, 2006
  21. Mar 24, 2006
  22. Mar 22, 2006
  23. Mar 18, 2006
  24. Mar 17, 2006
  25. Mar 16, 2006
    • Evan Cheng's avatar
      For each loop, keep track of all the IV expressions inserted indexed by · 3df447d3
      Evan Cheng authored
      stride. For a set of uses of the IV of a stride which is a multiple
      of another stride, do not insert a new IV expression. Rather, reuse the
      previous IV and rewrite the uses as uses of IV expression multiplied by
      the factor.
      
      e.g.
      x = 0 ...; x ++
      y = 0 ...; y += 4
      then use of y can be rewritten as use of 4*x for x86.
      
      llvm-svn: 26803
      3df447d3
  26. Mar 14, 2006
  27. Feb 04, 2006
  28. Jan 23, 2006
  29. Jan 11, 2006
  30. Dec 05, 2005
  31. Oct 21, 2005
  32. Oct 20, 2005
    • Chris Lattner's avatar
      Do NOT touch FP ops with LSR. This fixes a testcase Nate sent me from an · 0c0b38bb
      Chris Lattner authored
      inner loop like this:
      
      LBB_RateConvertMono8AltiVec_2:  ; no_exit
              lis r2, ha16(.CPI_RateConvertMono8AltiVec_0)
              lfs f3, lo16(.CPI_RateConvertMono8AltiVec_0)(r2)
              fmr f3, f3
              fadd f0, f2, f0
              fadd f3, f0, f3
              fcmpu cr0, f3, f1
              bge cr0, LBB_RateConvertMono8AltiVec_2  ; no_exit
      
      to an inner loop like this:
      
      LBB_RateConvertMono8AltiVec_1:  ; no_exit
              fsub f2, f2, f1
              fcmpu cr0, f2, f1
              fmr f0, f2
              bge cr0, LBB_RateConvertMono8AltiVec_1  ; no_exit
      
      Doh! good catch!
      
      llvm-svn: 23838
      0c0b38bb
  33. Oct 11, 2005
  34. Oct 09, 2005
Loading