Skip to content
  1. Nov 10, 2009
  2. Oct 15, 2009
  3. Sep 24, 2009
  4. Sep 23, 2009
  5. Sep 22, 2009
  6. Aug 24, 2009
  7. Aug 23, 2009
  8. Jul 31, 2009
    • Dan Gohman's avatar
      Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsage · 5ea74d55
      Dan Gohman authored
      shouldn't do AU.setPreservesCFG(), because even though CodeGen passes
      don't modify the LLVM IR CFG, they may modify the MachineFunction CFG,
      and passes like MachineLoop are registered with isCFGOnly set to true.
      
      llvm-svn: 77691
      5ea74d55
    • Daniel Dunbar's avatar
      Revert r77654, it appears to be causing llvm-gcc bootstrap failures, and many · 54347565
      Daniel Dunbar authored
      failures when building assorted projects with clang.
      
      --- Reverse-merging r77654 into '.':
      U    include/llvm/CodeGen/Passes.h
      U    include/llvm/CodeGen/MachineFunctionPass.h
      U    include/llvm/CodeGen/MachineFunction.h
      U    include/llvm/CodeGen/LazyLiveness.h
      U    include/llvm/CodeGen/SelectionDAGISel.h
      D    include/llvm/CodeGen/MachineFunctionAnalysis.h
      U    include/llvm/Function.h
      U    lib/Target/CellSPU/SPUISelDAGToDAG.cpp
      U    lib/Target/PowerPC/PPCISelDAGToDAG.cpp
      U    lib/CodeGen/LLVMTargetMachine.cpp
      U    lib/CodeGen/MachineVerifier.cpp
      U    lib/CodeGen/MachineFunction.cpp
      U    lib/CodeGen/PrologEpilogInserter.cpp
      U    lib/CodeGen/MachineLoopInfo.cpp
      U    lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
      D    lib/CodeGen/MachineFunctionAnalysis.cpp
      D    lib/CodeGen/MachineFunctionPass.cpp
      U    lib/CodeGen/LiveVariables.cpp
      
      llvm-svn: 77661
      54347565
    • Dan Gohman's avatar
      Manage MachineFunctions with an analysis Pass instead of the Annotable · bcb44baa
      Dan Gohman authored
      mechanism. To support this, make MachineFunctionPass a little more
      complete.
      
      llvm-svn: 77654
      bcb44baa
  9. Jul 06, 2009
  10. Jun 20, 2009
  11. Jun 03, 2009
    • Evan Cheng's avatar
      If there is a def of a super-register followed by a use of a sub-register, do... · d29fc665
      Evan Cheng authored
      If there is a def of a super-register followed by a use of a sub-register, do *not* add an implicit def of the sub-register. e.g.
      EAX = ..., AX<imp-def>
      ...
          = AX
      
      This creates a double-def. Apparently this used to be necessary but is no longer needed.
      
      Thanks to Anton for pointing this out. Anton, I cannot create a test case without your uncommitted ARM patches. Please check in a test case for me.
      
      llvm-svn: 72755
      d29fc665
  12. May 26, 2009
  13. Jan 20, 2009
    • Evan Cheng's avatar
      Fix PR3243: a LiveVariables bug. When HandlePhysRegKill is checking whether... · f1e873a2
      Evan Cheng authored
      Fix PR3243: a LiveVariables bug. When HandlePhysRegKill is checking whether the last reference is also the last def (i.e. dead def), it should also check if last reference is the current machine instruction being processed. This can happen when it is processing a physical register use and setting the current machine instruction as sub-register's last ref.
      
      llvm-svn: 62617
      f1e873a2
  14. Nov 21, 2008
  15. Nov 13, 2008
  16. Oct 03, 2008
  17. Sep 21, 2008
  18. Aug 15, 2008
  19. Aug 05, 2008
    • Owen Anderson's avatar
      - Fix SelectionDAG to generate correct CFGs. · a102290b
      Owen Anderson authored
      - Add a basic machine-level dead block eliminator.
      
      These two have to go together, since many other parts of the code generator are unable to handle the unreachable blocks otherwise created.
      
      llvm-svn: 54333
      a102290b
  20. Jul 03, 2008
  21. Jun 27, 2008
  22. Jun 26, 2008
  23. Jun 24, 2008
    • Bill Wendling's avatar
      This situation can occur: · c44659b9
      Bill Wendling authored
          ,------.
          |      |
          |      v
          |   t2 = phi ... t1 ...
          |      |
          |      v
          |   t1 = ...
          |  ... = ... t1 ...
          |      |
          `------'
      
      where there is a use in a PHI node that's a predecessor to the defining
      block. We don't want to mark all predecessors as having the value "alive" in
      this case. Also, the assert was too restrictive and didn't handle this case.
      
      llvm-svn: 52655
      c44659b9
  24. Apr 16, 2008
    • Evan Cheng's avatar
      Rewrite LiveVariable liveness computation. The new implementation is much... · e45b8f89
      Evan Cheng authored
      Rewrite LiveVariable liveness computation. The new implementation is much simplified. It eliminated the nasty recursive routines and removed the partial def / use bookkeeping. There is also potential for performance improvement by replacing the conservative handling of partial physical register definitions. The code is currently disabled until live interval analysis is taught of the name scheme.
      
      This patch also fixed a couple of nasty corner cases.
      
      llvm-svn: 49784
      e45b8f89
  25. Apr 02, 2008
    • Evan Cheng's avatar
      Now that I am told MachineRegisterInfo also tracks physical register uses /... · d8616064
      Evan Cheng authored
      Now that I am told MachineRegisterInfo also tracks physical register uses / defs, I can do away with the horribleness I introduced a while back. It's impossible to detect if there is any use of a physical register below an instruction (and before any def of the register) with some cheap book keeping.
      
      llvm-svn: 49105
      d8616064
  26. Mar 19, 2008
    • Evan Cheng's avatar
      Fix live variables issues: · 44c0b4f7
      Evan Cheng authored
      1. If part of a register is re-defined, an implicit kill and an implicit def are added to denote read / mod / write. However, this should only be necessary if the register is actually read later. This is a performance issue.
      2. If a sub-register is being defined, and it doesn't have a previous use, do not add a implicit kill to the last use of a super-register:
         = EAX, AX<imp-use,kill>
      ...
      AX =
      In this case, EAX is live but AX is killed, this is wrong and will cause the coalescer to do bad things.
      
      llvm-svn: 48521
      44c0b4f7
  27. Mar 05, 2008
  28. Feb 21, 2008
  29. Feb 20, 2008
  30. Feb 10, 2008
Loading