Skip to content
  1. Dec 01, 2009
  2. Nov 21, 2009
  3. Nov 18, 2009
    • Jakob Stoklund Olesen's avatar
      Don't require LiveVariables for PHIElimination. Enable critical edge splitting · 736888f7
      Jakob Stoklund Olesen authored
      when LiveVariables is available.
      
      The -split-phi-edges is now gone, and so is the hack to disable it when using
      the local register allocator. The PHIElimination pass no longer has
      LiveVariables as a prerequisite - that is what broke the local allocator.
      Instead we do critical edge splitting when possible - that is when
      LiveVariables is available.
      
      llvm-svn: 89213
      736888f7
  4. 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
  5. 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
  6. Nov 10, 2009
  7. Sep 04, 2009
  8. Jul 23, 2009
  9. Jul 22, 2009
Loading