- Nov 18, 2009
-
-
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
-
- Nov 13, 2009
-
-
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
-
- Nov 11, 2009
-
-
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
-
- Nov 10, 2009
-
-
Jakob Stoklund Olesen authored
Critical edges leading to a PHI node are split when the PHI source variable is live out from the predecessor block. This help the coalescer eliminate more PHI joins. llvm-svn: 86725
-
Jakob Stoklund Olesen authored
Clean up some whitespace. No functional changes. llvm-svn: 86724
-
- Sep 04, 2009
-
-
Evan Cheng authored
llvm-svn: 80993
-
- Jul 23, 2009
-
-
Lang Hames authored
llvm-svn: 76849
-
- Jul 22, 2009
-
-
Lang Hames authored
llvm-svn: 76688
-