Skip to content
  1. Mar 05, 2006
    • Chris Lattner's avatar
      Implemented. · 8d8b4cf6
      Chris Lattner authored
      llvm-svn: 26536
      8d8b4cf6
    • Chris Lattner's avatar
      fold (mul (add x, c1), c2) -> (add (mul x, c2), c1*c2) · f29f5204
      Chris Lattner authored
      fold (shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2)
      
      This allows us to compile CodeGen/PowerPC/addi-reassoc.ll into:
      
      _test1:
              slwi r2, r4, 4
              add r2, r2, r3
              lwz r3, 36(r2)
              blr
      _test2:
              mulli r2, r4, 5
              add r2, r2, r3
              lbz r2, 11(r2)
              extsb r3, r2
              blr
      
      instead of:
      
      _test1:
              addi r2, r4, 2
              slwi r2, r2, 4
              add r2, r3, r2
              lwz r3, 4(r2)
              blr
      _test2:
              addi r2, r4, 2
              mulli r2, r2, 5
              add r2, r3, r2
              lbz r2, 1(r2)
              extsb r3, r2
              blr
      
      llvm-svn: 26535
      f29f5204
  2. Mar 04, 2006
  3. Mar 03, 2006
  4. Mar 02, 2006
    • Chris Lattner's avatar
      add a note · 9067500e
      Chris Lattner authored
      llvm-svn: 26472
      9067500e
    • Evan Cheng's avatar
      - Fixed some priority calculation bugs that were causing bug 478. Among them: · 4e3904f6
      Evan Cheng authored
        a predecessor appearing more than once in the operand list was counted as
        multiple predecessor; priority1 should be updated during scheduling;
        CycleBound was updated after the node is inserted into priority queue; one
        of the tie breaking condition was flipped.
      - Take into consideration of two address opcodes. If a predecessor is a def&use
        operand, it should have a higher priority.
      - Scheduler should also favor floaters, i.e. nodes that do not have real
        predecessors such as MOV32ri.
      - The scheduling fixes / tweaks fixed bug 478:
              .text
              .align  4
              .globl  _f
      _f:
              movl 4(%esp), %eax
              movl 8(%esp), %ecx
              movl %eax, %edx
              imull %ecx, %edx
              imull %eax, %eax
              imull %ecx, %ecx
              addl %eax, %ecx
              leal (%ecx,%edx,2), %eax
              ret
      
        It is also a slight performance win (1% - 3%) for most tests.
      
      llvm-svn: 26470
      4e3904f6
    • Chris Lattner's avatar
      Generalize the REM folding code to handle another case Nick Lewycky · 85dda9a2
      Chris Lattner authored
      pointed out: realize the AND can provide factors and look through Casts.
      
      llvm-svn: 26469
      85dda9a2
    • Jim Laskey's avatar
      Support for enumerations. · 862001ad
      Jim Laskey authored
      llvm-svn: 26466
      862001ad
  5. Mar 01, 2006
Loading