Skip to content
  1. Mar 25, 2010
  2. Mar 04, 2010
  3. Feb 23, 2010
  4. Feb 17, 2010
  5. Feb 09, 2010
  6. Jan 05, 2010
  7. Dec 18, 2009
    • Bill Wendling's avatar
      Turn off critical edge splitting for landing pads. The introduction of a · 819c356a
      Bill Wendling authored
      non-landing pad basic block as the successor to a block that ends in an
      unconditional jump will cause block folding to remove the added block as a
      successor. Thus eventually removing it AND the landing pad entirely. Critical
      edge splitting is an optimization, so we can safely turn it off when dealing
      with landing pads.
      
      llvm-svn: 91634
      819c356a
  8. Dec 16, 2009
    • Jakob Stoklund Olesen's avatar
      Reuse lowered phi nodes. · ec20a88a
      Jakob Stoklund Olesen authored
      Tail duplication produces lots of identical phi nodes in different basic
      blocks. Teach PHIElimination to reuse the join registers when lowering a phi
      node that is identical to an already lowered node. This saves virtual
      registers, and more importantly it avoids creating copies the the coalescer
      doesn't know how to eliminate.
      
      Teach LiveIntervalAnalysis about the phi joins with multiple uses.
      
      This patch significantly reduces code size produced by -pre-regalloc-taildup.
      
      llvm-svn: 91549
      ec20a88a
  9. Dec 03, 2009
  10. Dec 01, 2009
  11. Nov 21, 2009
  12. Nov 19, 2009
  13. Nov 18, 2009
  14. Nov 17, 2009
  15. Nov 16, 2009
  16. Nov 14, 2009
  17. Nov 13, 2009
    • Jakob Stoklund Olesen's avatar
      Fix PHIElimination optimization that uses MBB->getBasicBlock. · ad205d61
      Jakob Stoklund Olesen authored
      The BasicBlock associated with a MachineBasicBlock does not necessarily
      correspond to the code in the MBB.
      
      Don't insert a new IR BasicBlock when splitting critical edges. We are not
      supposed to modify the IR during codegen, and we should be able to do just
      fine with a NULL BB.
      
      llvm-svn: 88707
      ad205d61
  18. Nov 12, 2009
  19. 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
  20. Nov 10, 2009
  21. Aug 01, 2009
  22. Jul 23, 2009
  23. Jul 22, 2009
  24. Jul 07, 2009
  25. May 26, 2009
  26. Mar 17, 2009
  27. Mar 16, 2009
    • Bill Wendling's avatar
      --- Reverse-merging (from foreign repository) r67049 into '.': · dadaf54e
      Bill Wendling authored
      U    test/CodeGen/X86/2009-03-13-PHIElimBug.ll
      D    test/CodeGen/X86/2009-03-16-PHIElimInLPad.ll
      U    lib/CodeGen/PHIElimination.cpp
      
      r67049 was causing this failure:
      
      Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/dg.exp ...
      FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll for PR3784
      Failed with exit(1) at line 1
      while running:  llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/X86/2009-03-13-PHIElimBug.ll |  llc -march=x86 | /usr/bin/grep -A 2 {call f} | /usr/bin/grep movl
      child process exited abnormally
      
      llvm-svn: 67051
      dadaf54e
    • Duncan Sands's avatar
      Tweak the fix for PR3784: be less sensitive about just · d3e07c9d
      Duncan Sands authored
      how invokes are set up.  The fix could be disturbed by
      register copies coming after the EH_LABEL, and also didn't
      behave quite right when it was the invoke result that
      was used in a phi node.  Also (see new testcase) fix
      another phi elimination bug while there: register copies
      in the landing pad need to come after the EH_LABEL, because
      that's where execution branches to when unwinding.  If they
      come before the EH_LABEL then they will never be executed...
      Also tweak the original testcase so it doesn't use a no-longer
      existing counter.
      The accumulated phi elimination changes fix two of seven Ada
      testsuite failures that turned up after landing pad critical
      edge splitting was turned off.  So there's probably more to come.
      
      llvm-svn: 67049
      d3e07c9d
  28. Mar 13, 2009
Loading