mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-16 16:48:02 +00:00
Do jump table adjustment before constant island allocation
llvm-svn: 86857
This commit is contained in:
parent
b0f32c095c
commit
9ecdde2be4
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user