From f4997e87e3131a5609b54b18c6d94833827e9dce Mon Sep 17 00:00:00 2001 From: Jim Grosbach Date: Wed, 11 Nov 2009 19:04:24 +0000 Subject: [PATCH] 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 --- lib/Target/ARM/ARMConstantIslandPass.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/Target/ARM/ARMConstantIslandPass.cpp b/lib/Target/ARM/ARMConstantIslandPass.cpp index 9ea9c9c128a..73cf414b5c1 100644 --- a/lib/Target/ARM/ARMConstantIslandPass.cpp +++ b/lib/Target/ARM/ARMConstantIslandPass.cpp @@ -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