Skip to content
  1. Oct 06, 2005
  2. Oct 05, 2005
  3. Oct 04, 2005
  4. Oct 03, 2005
    • Chris Lattner's avatar
      move some methods, no other changes · c4062ba6
      Chris Lattner authored
      llvm-svn: 23613
      c4062ba6
    • Chris Lattner's avatar
      minor microoptimizations · 0144fadc
      Chris Lattner authored
      llvm-svn: 23612
      0144fadc
    • Chris Lattner's avatar
      Use a map to cache the ModuleType information, so we can do logarithmic · bad09e71
      Chris Lattner authored
      lookups instead of linear time lookups.  This speeds up bc parsing of a
      large file from
      
      137.834u 118.256s 4:27.96
      to
      132.611u 114.436s 4:08.53
      
      with a release build.
      
      llvm-svn: 23611
      bad09e71
    • Jim Laskey's avatar
      Refactor gathering node info and emission. · 409a6b20
      Jim Laskey authored
      llvm-svn: 23610
      409a6b20
    • Chris Lattner's avatar
      clean up this code a bit, no functionality change · 57b21f9f
      Chris Lattner authored
      llvm-svn: 23609
      57b21f9f
    • Chris Lattner's avatar
      Speed up the asm printer a lot by not printing formatted LLVM asm output · afef68ba
      Chris Lattner authored
      for globals
      
      llvm-svn: 23608
      afef68ba
    • Chris Lattner's avatar
      Break the body of the loop out into a new method · 5f096e28
      Chris Lattner authored
      llvm-svn: 23606
      5f096e28
    • Chris Lattner's avatar
      Fix case of path · 16874595
      Chris Lattner authored
      llvm-svn: 23605
      16874595
    • Chris Lattner's avatar
      Make IVUseShouldUsePostIncValue more aggressive when the use is a PHI. In · f07a587c
      Chris Lattner authored
      particular, it should realize that phi's use their values in the pred block
      not the phi block itself.  This change turns our em3d loop from this:
      
      _test:
              cmpwi cr0, r4, 0
              bgt cr0, LBB_test_2     ; entry.no_exit_crit_edge
      LBB_test_1:     ; entry.loopexit_crit_edge
              li r2, 0
              b LBB_test_6    ; loopexit
      LBB_test_2:     ; entry.no_exit_crit_edge
              li r6, 0
      LBB_test_3:     ; no_exit
              or r2, r6, r6
              lwz r6, 0(r3)
              cmpw cr0, r6, r5
              beq cr0, LBB_test_6     ; loopexit
      LBB_test_4:     ; endif
              addi r3, r3, 4
              addi r6, r2, 1
              cmpw cr0, r6, r4
              blt cr0, LBB_test_3     ; no_exit
      LBB_test_5:     ; endif.loopexit.loopexit_crit_edge
              addi r3, r2, 1
              blr
      LBB_test_6:     ; loopexit
              or r3, r2, r2
              blr
      
      into:
      
      _test:
              cmpwi cr0, r4, 0
              bgt cr0, LBB_test_2     ; entry.no_exit_crit_edge
      LBB_test_1:     ; entry.loopexit_crit_edge
              li r2, 0
              b LBB_test_5    ; loopexit
      LBB_test_2:     ; entry.no_exit_crit_edge
              li r6, 0
      LBB_test_3:     ; no_exit
              lwz r2, 0(r3)
              cmpw cr0, r2, r5
              or r2, r6, r6
              beq cr0, LBB_test_5     ; loopexit
      LBB_test_4:     ; endif
              addi r3, r3, 4
              addi r6, r6, 1
              cmpw cr0, r6, r4
              or r2, r6, r6
              blt cr0, LBB_test_3     ; no_exit
      LBB_test_5:     ; loopexit
              or r3, r2, r2
              blr
      
      
      Unfortunately, this is actually worse code, because the register coallescer
      is getting confused somehow.  If it were doing its job right, it could turn the
      code into this:
      
      _test:
              cmpwi cr0, r4, 0
              bgt cr0, LBB_test_2     ; entry.no_exit_crit_edge
      LBB_test_1:     ; entry.loopexit_crit_edge
              li r6, 0
              b LBB_test_5    ; loopexit
      LBB_test_2:     ; entry.no_exit_crit_edge
              li r6, 0
      LBB_test_3:     ; no_exit
              lwz r2, 0(r3)
              cmpw cr0, r2, r5
              beq cr0, LBB_test_5     ; loopexit
      LBB_test_4:     ; endif
              addi r3, r3, 4
              addi r6, r6, 1
              cmpw cr0, r6, r4
              blt cr0, LBB_test_3     ; no_exit
      LBB_test_5:     ; loopexit
              or r3, r6, r6
              blr
      
      ... which I'll work on next. :)
      
      llvm-svn: 23604
      f07a587c
Loading