Skip to content
  1. Jun 02, 2004
  2. Mar 14, 2004
  3. Feb 26, 2004
  4. Feb 25, 2004
  5. 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
  6. Feb 22, 2004
  7. Feb 21, 2004
  8. Feb 19, 2004
  9. Feb 17, 2004
  10. Feb 15, 2004
  11. Feb 13, 2004
  12. Feb 12, 2004
  13. Feb 10, 2004
  14. 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
  15. Jan 31, 2004
  16. 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
  17. Dec 18, 2003
  18. 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
  19. Dec 13, 2003
  20. Dec 05, 2003
  21. Nov 11, 2003
  22. Oct 24, 2003
  23. Oct 20, 2003
  24. Oct 08, 2003
    • Alkis Evlogimenos's avatar
      Change MRegisterDesc::AliasSet, TargetInstrDescriptor::ImplicitDefs · 5f1f337d
      Alkis Evlogimenos authored
      and TargetInstrDescriptor::ImplicitUses to always point to a null
      terminated array and never be null. So there is no need to check for
      pointer validity when iterating over those sets. Code that looked
      like:
      
      if (const unsigned* AS = TID.ImplicitDefs) {
        for (int i = 0; AS[i]; ++i) {
          // use AS[i]
        }
      }
      
      was changed to:
      
      for (const unsigned* AS = TID.ImplicitDefs; *AS; ++AS) {
        // use *AS
      }
      
      llvm-svn: 8960
      5f1f337d
  25. Aug 24, 2003
  26. Aug 17, 2003
  27. Aug 15, 2003
  28. Aug 13, 2003
  29. Aug 05, 2003
Loading