Skip to content
  1. Nov 10, 2005
  2. Nov 09, 2005
  3. Nov 08, 2005
  4. Nov 07, 2005
  5. Nov 06, 2005
  6. Nov 05, 2005
  7. Nov 04, 2005
  8. Nov 02, 2005
  9. Oct 31, 2005
    • Jim Laskey's avatar
      · 5ce05382
      Jim Laskey authored
      1. Embed and not inherit vector for NodeGroup.
      
      2. Iterate operands and not uses (performance.)
      
      3. Some long pending comment changes.
      
      llvm-svn: 24119
      5ce05382
  10. Oct 30, 2005
    • Chris Lattner's avatar
      Significantly simplify this code and make it more aggressive. Instead of having · 6871b23d
      Chris Lattner authored
      a special case hack for X86, make the hack more general: if an incoming argument
      register is not used in any block other than the entry block, don't copy it to
      a vreg.  This helps us compile code like this:
      
      %struct.foo = type { int, int, [0 x ubyte] }
      int %test(%struct.foo* %X) {
              %tmp1 = getelementptr %struct.foo* %X, int 0, uint 2, int 100
              %tmp = load ubyte* %tmp1                ; <ubyte> [#uses=1]
              %tmp2 = cast ubyte %tmp to int          ; <int> [#uses=1]
              ret int %tmp2
      }
      
      to:
      
      _test:
              lbz r3, 108(r3)
              blr
      
      instead of:
      
      _test:
              lbz r2, 108(r3)
              or r3, r2, r2
              blr
      
      The (dead) copy emitted to copy r3 into a vreg for extra-block uses was
      increasing the live range of r3 past the load, preventing the coallescing.
      
      This implements CodeGen/PowerPC/reg-coallesce-simple.ll
      
      llvm-svn: 24115
      6871b23d
    • Chris Lattner's avatar
      Reduce the number of copies emitted as machine instructions by · dd5663df
      Chris Lattner authored
      generating results in vregs that will need them.  In the case of something
      like this:  CopyToReg((add X, Y), reg1024), we no longer emit code like
      this:
      
         reg1025 = add X, Y
         reg1024 = reg 1025
      
      Instead, we emit:
      
         reg1024 = add X, Y
      
      Whoa! :)
      
      llvm-svn: 24111
      dd5663df
    • Chris Lattner's avatar
      Codegen mul by negative power of two with a shift and negate. · a70878d4
      Chris Lattner authored
      This implements test/Regression/CodeGen/PowerPC/mul-neg-power-2.ll,
      producing:
      
      _foo:
              slwi r2, r3, 1
              subfic r3, r2, 63
              blr
      
      instead of:
      
      _foo:
              mulli r2, r3, -2
              addi r3, r2, 63
              blr
      
      llvm-svn: 24106
      a70878d4
  11. Oct 27, 2005
  12. Oct 26, 2005
  13. Oct 25, 2005
  14. Oct 24, 2005
  15. Oct 23, 2005
    • Jeff Cohen's avatar
      When a function takes a variable number of pointer arguments, with a zero · 11e26b52
      Jeff Cohen authored
      pointer marking the end of the list, the zero *must* be cast to the pointer
      type.  An un-cast zero is a 32-bit int, and at least on x86_64, gcc will
      not extend the zero to 64 bits, thus allowing the upper 32 bits to be
      random junk.
      
      The new END_WITH_NULL macro may be used to annotate a such a function
      so that GCC (version 4 or newer) will detect the use of un-casted zero
      at compile time.
      
      llvm-svn: 23888
      11e26b52
    • Andrew Lenharth's avatar
      add TargetExternalSymbol · 4b3932aa
      Andrew Lenharth authored
      llvm-svn: 23886
      4b3932aa
  16. Oct 22, 2005
  17. Oct 21, 2005
Loading