Skip to content
  1. Oct 29, 2009
  2. Oct 28, 2009
    • Dale Johannesen's avatar
      When we generate spill code, then decide we don't need · 14f162d9
      Dale Johannesen authored
      to spill after all, we weren't handling 2-instruction
      spill sequences correctly (PPC Altivec).  We need to
      remove the store in this case.  Removing the other
      instruction(s) would be goodness but is not needed for
      correctness, and isn't done here.  7331562.
      
      llvm-svn: 85437
      14f162d9
  3. Oct 26, 2009
    • Evan Cheng's avatar
      - Revert some changes from 85044, 85045, and 85047 that broke x86_64 tests and · b81cb2a9
      Evan Cheng authored
        bootstrapping. It's not safe to leave identity subreg_to_reg and insert_subreg
        around.
      - Relax register scavenging to allow use of partially "not-live" registers. It's
        common for targets to operate on registers where the top bits are undef. e.g.
        s0 =
        d0 = insert_subreg d0<undef>, s0, 1
        ...
           = d0
        When the insert_subreg is eliminated by the coalescer, the scavenger used to
        complain. The previous fix was to keep to insert_subreg around. But that's
        brittle and it's overly conservative when we want to use the scavenger to 
        allocate registers. It's actually legal and desirable for other instructions
        to use the "undef" part of d0. e.g.
        s0 =
        d0 = insert_subreg d0<undef>, s0, 1
        ...
        s1 =
           = s1
           = d0
        We probably need add a "partial-undef" marker on machine operand so the
        machine verifier would not complain.
      
      llvm-svn: 85091
      b81cb2a9
  4. Oct 25, 2009
  5. Oct 12, 2009
  6. Sep 06, 2009
  7. Sep 03, 2009
    • Lang Hames's avatar
      · 0b3720b3
      Lang Hames authored
      Fixed a test that ensures the LocalRewriter does not attempt to
      avoid reloads by reusing clobbered registers.
      
      This was causing issues in 256.bzip2 when compiled with PIC for
      a while (starting at r78217), though the problem has since been masked. 
      
      llvm-svn: 80872
      0b3720b3
  8. Aug 23, 2009
  9. Aug 15, 2009
  10. Aug 07, 2009
  11. Jul 28, 2009
    • David Greene's avatar
      · 71ab2fdd
      David Greene authored
      Add reload and remat backscheduling.  This is disabled by default.  Use
      -schedule-spills=true to enable.
      
      llvm-svn: 77327
      71ab2fdd
  12. Jul 25, 2009
    • Daniel Dunbar's avatar
      More migration to raw_ostream, the water has dried up around the iostream hole. · 0dd5e1ed
      Daniel Dunbar authored
       - Some clients which used DOUT have moved to DEBUG. We are deprecating the
         "magic" DOUT behavior which avoided calling printing functions when the
         statement was disabled. In addition to being unnecessary magic, it had the
         downside of leaving code in -Asserts builds, and of hiding potentially
         unnecessary computations.
      
      llvm-svn: 77019
      0dd5e1ed
  13. Jul 22, 2009
    • Evan Cheng's avatar
      Let each target determines whether a machine instruction is dead. If true,... · 4dc848f3
      Evan Cheng authored
      Let each target determines whether a machine instruction is dead. If true, that allows late codeine passes to delete it.
      
      This is considered a workaround. The problem is some targets are not modeling side effects correctly. PPC is apparently one of those. This patch allows ppc llvm-gcc to bootstrap on Darwin. Once we find out which instruction definitions are wrong, we can remove the PPCInstrInfo workaround.
      
      llvm-svn: 76703
      4dc848f3
  14. Jul 21, 2009
  15. Jul 18, 2009
  16. Jul 17, 2009
  17. Jul 16, 2009
  18. Jul 14, 2009
  19. Jul 11, 2009
    • Torok Edwin's avatar
      assert(0) -> LLVM_UNREACHABLE. · 56d06597
      Torok Edwin authored
      Make llvm_unreachable take an optional string, thus moving the cerr<< out of
      line.
      LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
      NDEBUG builds.
      
      llvm-svn: 75379
      56d06597
  20. Jul 10, 2009
  21. Jul 01, 2009
  22. Jun 30, 2009
    • Evan Cheng's avatar
      Add a bit IsUndef to MachineOperand. This indicates the def / use register... · 0dc101b8
      Evan Cheng authored
      Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them.
      
      The register allocator, when it allocates a register to a virtual register defined by an implicit_def, can allocate any physical register without worrying about overlapping live ranges. It should mark all of operands of the said virtual register so later passes will do the right thing.
      
      This is not the best solution. But it should be a lot less fragile to having the scavenger try to track what is defined by implicit_def.
      
      llvm-svn: 74518
      0dc101b8
  23. Jun 04, 2009
  24. Jun 03, 2009
  25. Jun 02, 2009
  26. May 15, 2009
  27. May 13, 2009
  28. May 06, 2009
Loading