Skip to content
  1. Feb 23, 2004
  2. Feb 22, 2004
  3. Feb 21, 2004
  4. Feb 20, 2004
    • Alkis Evlogimenos's avatar
      Some more statistics improvements. · 6ad63f8d
      Alkis Evlogimenos authored
      llvm-svn: 11676
      6ad63f8d
    • Alkis Evlogimenos's avatar
      Disambiguate statistic descriptions. · 71751de2
      Alkis Evlogimenos authored
      llvm-svn: 11675
      71751de2
    • Alkis Evlogimenos's avatar
      Rename statistic and add another one. · f3e77fb7
      Alkis Evlogimenos authored
      llvm-svn: 11674
      f3e77fb7
    • Alkis Evlogimenos's avatar
      Fix crash in debug output. · 22de21ea
      Alkis Evlogimenos authored
      llvm-svn: 11659
      22de21ea
    • Alkis Evlogimenos's avatar
      Fix instruction numbering in debug output. · bcc99a83
      Alkis Evlogimenos authored
      llvm-svn: 11655
      bcc99a83
    • Alkis Evlogimenos's avatar
      Too many changes in one commit: · 76eca062
      Alkis Evlogimenos authored
      1. LiveIntervals now implement a 4 slot per instruction model. Load,
         Use, Def and a Store slot. This is required in order to correctly
         represent caller saved register clobbering on function calls,
         register reuse in the same instruction (def resues last use) and
         also spill code added later by the allocator. The previous
         representation (2 slots per instruction) was insufficient and as a
         result was causing subtle bugs.
      
      2. Fixes in spill code generation. This was the major cause of
         failures in the test suite.
      
      3. Linear scan now has core support for folding memory operands. This
         is untested and not enabled (the live interval update function does
         not attempt to fold loads/stores in instructions).
      
      4. Lots of improvements in the debugging output of both live intervals
         and linear scan. Give it a try... it is beautiful :-)
      
      In summary the above fixes all the issues with the recent reserved
      register elimination changes and get the allocator very close to the
      next big step: folding memory operands.
      
      llvm-svn: 11654
      76eca062
  5. Feb 19, 2004
  6. Feb 18, 2004
  7. Feb 17, 2004
    • Chris Lattner's avatar
      Remove the -disable-kill option. The register allocator is buggy with it, · 3d894dd3
      Chris Lattner authored
      and it was only for debugging in the first place.
      
      llvm-svn: 11557
      3d894dd3
    • Chris Lattner's avatar
      Add support to the local allocator for fusing spill code into the instructions · 4e21b235
      Chris Lattner authored
      that need them.  This is very useful on CISCy targets like the X86 because it
      reduces the total spill pressure, and makes better use of it's (large)
      instruction set.  Though the X86 backend doesn't know how to rewrite many
      instructions yet, this already makes a substantial difference on 176.gcc for
      example:
      
      Before:
      Time:
         8.0099 ( 31.2%)   0.0100 ( 12.5%)   8.0199 ( 31.2%)   7.7186 ( 30.0%)  Local Register Allocator
      
      Code quality:
      734559 asm-printer           - Number of machine instrs printed
      111395 ra-local              - Number of registers reloaded
       79902 ra-local              - Number of registers spilled
      231554 x86-peephole          - Number of peephole optimization performed
      
      After:
      Time:
         7.8700 ( 30.6%)   0.0099 ( 19.9%)   7.8800 ( 30.6%)   7.7892 ( 30.2%)  Local Register Allocator
      Code quality:
      733083 asm-printer           - Number of machine instrs printed
        2379 ra-local              - Number of reloads fused into instructions
      109046 ra-local              - Number of registers reloaded
       79881 ra-local              - Number of registers spilled
      230658 x86-peephole          - Number of peephole optimization performed
      
      So by fusing 2300 instructions, we reduced the  static number of instructions
      by 1500, and reduces the number of peepholes (and thus the work) by about 900.
      This also clearly reduces the number of reload/spill instructions that are
      emitted.
      
      llvm-svn: 11542
      4e21b235
    • Chris Lattner's avatar
      Fix a bug in my previous refactoring change... arg! · d1289d0f
      Chris Lattner authored
      llvm-svn: 11535
      d1289d0f
Loading