Do jump table adjustment before constant island allocation

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86857 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Grosbach 2009-11-11 19:04:24 +00:00
parent cdc06ba5df
commit f4997e87e3

View File

@ -294,6 +294,11 @@ bool ARMConstantIslands::runOnMachineFunction(MachineFunction &MF) {
// sizes of each block, the location of all the water, and finding all of the
// constant pool users.
InitialFunctionScan(MF, CPEMIs);
bool MadeChange = false;
if (isThumb2)
MadeChange |= OptimizeThumb2JumpTables(MF);
CPEMIs.clear();
/// Remove dead constant pool entries.
@ -301,7 +306,6 @@ bool ARMConstantIslands::runOnMachineFunction(MachineFunction &MF) {
// Iteratively place constant pool entries and fix up branches until there
// is no change.
bool MadeChange = false;
unsigned NoCPIters = 0, NoBRIters = 0;
while (true) {
bool CPChange = false;
@ -1476,7 +1480,6 @@ bool ARMConstantIslands::OptimizeThumb2Instructions(MachineFunction &MF) {
}
MadeChange |= OptimizeThumb2Branches(MF);
MadeChange |= OptimizeThumb2JumpTables(MF);
return MadeChange;
}
@ -1722,8 +1725,8 @@ AdjustJTTargetBlockForward(MachineBasicBlock *BB, MachineBasicBlock *JTBB)
JTBB->addSuccessor(NewBB);
// Update internal data structures to account for the newly inserted MBB.
// This is almost the same as UpdateForInsertedWaterBlock, except that
// the Water goes after OrigBB, not NewBB.
// Don't mark the new block as having water following it, as we want the
// blocks following the jump table to be as close together as possible.
MF.RenumberBlocks(NewBB);
// Insert a size into BBSizes to align it properly with the (newly