Skip to content
  1. Apr 13, 2010
  2. Mar 26, 2010
  3. Mar 05, 2010
    • Jakob Stoklund Olesen's avatar
      Better handling of dead super registers in LiveVariables. We used to do this: · 2664d295
      Jakob Stoklund Olesen authored
         CALL ... %RAX<imp-def>
         ... [not using %RAX]
         %EAX = ..., %RAX<imp-use, kill>
         RET %EAX<imp-use,kill>
      
      Now we do this:
      
         CALL ... %RAX<imp-def, dead>
         ... [not using %RAX]
         %EAX = ...
         RET %EAX<imp-use,kill>
      
      By not artificially keeping %RAX alive, we lower register pressure a bit.
      
      The correct number of instructions for 2008-08-05-SpillerBug.ll is obviously
      55, anybody can see that. Sheesh.
      
      llvm-svn: 97838
      2664d295
  4. Feb 23, 2010
  5. Feb 09, 2010
  6. Jan 07, 2010
  7. Jan 05, 2010
    • David Greene's avatar
      · d599dcd7
      David Greene authored
      Change errs() to dbgs().
      
      llvm-svn: 92532
      d599dcd7
  8. Dec 01, 2009
  9. Nov 21, 2009
  10. Nov 13, 2009
    • Evan Cheng's avatar
      Fix PR5410: LiveVariables lost subreg def: · d190b821
      Evan Cheng authored
      D0<def,dead> = ...
      ...
                   = S0<use, kill>
      S0<def>      = ...
      ...
      D0<def>      = 
      
      The first D0 def is correctly marked dead, however, livevariables should have
      added an implicit def of S0 or we end up with a use without a def.
      
      llvm-svn: 88690
      d190b821
  11. Nov 11, 2009
    • Jakob Stoklund Olesen's avatar
      Fix liveness calculation when splitting critical edges during PHI elimination. · 4f7fd3ba
      Jakob Stoklund Olesen authored
      - Edges are split before any phis are eliminated, so the code is SSA.
      
      - Create a proper IR BasicBlock for the split edges.
      
      - LiveVariables::addNewBlock now has same syntax as
        MachineDominatorTree::addNewBlock. Algorithm calculates predecessor live-out
        set rather than successor live-in set.
      
      This feature still causes some miscompilations.
      
      llvm-svn: 86867
      4f7fd3ba
  12. Nov 10, 2009
  13. Oct 15, 2009
  14. Sep 24, 2009
  15. Sep 23, 2009
  16. Sep 22, 2009
  17. Aug 24, 2009
  18. Aug 23, 2009
  19. 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
  20. Jul 06, 2009
  21. Jun 20, 2009
  22. 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
  23. May 26, 2009
  24. 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
  25. Nov 21, 2008
  26. Nov 13, 2008
  27. Oct 03, 2008
  28. Sep 21, 2008
  29. Aug 15, 2008
  30. 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
  31. Jul 03, 2008
  32. Jun 27, 2008
  33. Jun 26, 2008
Loading