Skip to content
  1. Aug 16, 2004
  2. Aug 15, 2004
  3. Jul 21, 2004
  4. Jun 16, 2004
  5. Jun 02, 2004
  6. Mar 14, 2004
  7. Feb 26, 2004
  8. Feb 25, 2004
  9. Feb 23, 2004
    • Alkis Evlogimenos's avatar
      Refactor rewinding code for finding the first terminator of a basic · af2de484
      Alkis Evlogimenos authored
      block into MachineBasicBlock::getFirstTerminator().
      
      This also fixes a bug in the implementation of the above in both
      RegAllocLocal and InstrSched, where instructions where added after the
      terminator if the basic block's only instruction was a terminator (it
      shouldn't matter for RegAllocLocal since this case never occurs in
      practice).
      
      llvm-svn: 11748
      af2de484
  10. Feb 22, 2004
  11. Feb 21, 2004
  12. Feb 19, 2004
  13. Feb 17, 2004
  14. Feb 15, 2004
  15. Feb 13, 2004
  16. Feb 12, 2004
  17. Feb 10, 2004
  18. Feb 09, 2004
    • Chris Lattner's avatar
      Another nice speedup for the register allocator. This time, we replace · 80cbed4f
      Chris Lattner authored
      the Virt2PhysRegMap std::map with an std::vector.  This speeds up the
      register allocator another (almost) 40%, from .72->.45s in a release build
      of LLC on 253.perlbmk.
      
      llvm-svn: 11219
      80cbed4f
    • Chris Lattner's avatar
      Change the PhysRegsUsed map into a dense array. Seeing that this is a mapping · 490627a4
      Chris Lattner authored
      from physical registers, and they are always dense, it makes sense to not have
      a ton of RBtree overhead.  This change speeds up regalloclocal about ~30% on
      253.perlbmk, from .35s -> .27s in the JIT (in LLC, it goes from .74 -> .55).
      
      Now live variable analysis is the slowest codegen pass.  Of course it doesn't
      help that we have to run it twice, because regalloclocal doesn't update it,
      but even if it did it would be the slowest pass (now it's just the 2x slowest
      pass :(
      
      llvm-svn: 11215
      490627a4
  19. Jan 31, 2004
  20. Jan 13, 2004
    • Alkis Evlogimenos's avatar
      Correctly compute live variable information for physical registers · ebbd66c0
      Alkis Evlogimenos authored
      when an implicitely defined register is later used by an alias. For example:
      
               call foo
               %reg1024 = mov %AL
      
      The call implicitely defines EAX but only AL is used. Before this fix
      no information was available on AL. Now EAX and all its aliases except
      AL get defined and die at the call instruction whereas AL lives to be
      killed by the assignment.
      
      llvm-svn: 10813
      ebbd66c0
  21. Dec 18, 2003
  22. Dec 14, 2003
    • Alkis Evlogimenos's avatar
      Change interface of MachineOperand as follows: · aaba4639
      Alkis Evlogimenos authored
          a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse()
          b) add isUse(), isDef()
          c) rename opHiBits32() to isHiBits32(),
                    opLoBits32() to isLoBits32(),
                    opHiBits64() to isHiBits64(),
                    opLoBits64() to isLoBits64().
      
      This results to much more readable code, for example compare
      "op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used
      very often in the code.
      
      llvm-svn: 10461
      aaba4639
  23. Dec 13, 2003
  24. Dec 05, 2003
  25. Nov 11, 2003
  26. Oct 24, 2003
  27. Oct 20, 2003
Loading