Skip to content
  1. 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
  2. Nov 12, 2009
  3. 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
  4. Nov 10, 2009
  5. Aug 01, 2009
  6. Jul 23, 2009
  7. Jul 22, 2009
  8. Jul 07, 2009
  9. May 26, 2009
  10. Mar 17, 2009
  11. 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
  12. Mar 13, 2009
  13. Feb 03, 2009
  14. Jan 28, 2009
  15. Sep 04, 2008
  16. Jul 08, 2008
    • Dan Gohman's avatar
      Pool-allocation for MachineInstrs, MachineBasicBlocks, and · 3b460303
      Dan Gohman authored
      MachineMemOperands. The pools are owned by MachineFunctions.
      
      This drastically reduces the number of calls to malloc/free made
      during the "Emit" phase of scheduling, as well as later phases
      in CodeGen. Combined with other changes, this speeds up the
      "instruction selection" phase of CodeGen by 10% in some cases.
      
      llvm-svn: 53212
      3b460303
  17. Jul 03, 2008
    • Evan Cheng's avatar
      - Remove calls to copyKillDeadInfo which is an N^2 function. Instead,... · 7d98a48f
      Evan Cheng authored
      - Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc.
      - Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list.
      
      llvm-svn: 53097
      7d98a48f
  18. Jun 19, 2008
  19. May 13, 2008
  20. May 10, 2008
  21. Apr 11, 2008
  22. Apr 04, 2008
  23. Apr 03, 2008
  24. Apr 02, 2008
  25. Mar 05, 2008
  26. Feb 10, 2008
  27. Jan 15, 2008
  28. Jan 04, 2008
  29. Dec 31, 2007
  30. Dec 29, 2007
  31. Nov 08, 2007
Loading