| OLD | NEW |
| 1 //===-- ARMConstantIslandPass.cpp - ARM constant islands ------------------===// | 1 //===-- ARMConstantIslandPass.cpp - ARM constant islands ------------------===// |
| 2 // | 2 // |
| 3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 // | 9 // |
| 10 // This file contains a pass that splits the constant pool up into 'islands' | 10 // This file contains a pass that splits the constant pool up into 'islands' |
| (...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 DEBUG(dbgs() << "***** ARMConstantIslands: " | 382 DEBUG(dbgs() << "***** ARMConstantIslands: " |
| 383 << MCP->getConstants().size() << " CP entries, aligned to " | 383 << MCP->getConstants().size() << " CP entries, aligned to " |
| 384 << MCP->getConstantPoolAlignment() << " bytes *****\n"); | 384 << MCP->getConstantPoolAlignment() << " bytes *****\n"); |
| 385 | 385 |
| 386 TII = (const ARMBaseInstrInfo *)MF->getTarget() | 386 TII = (const ARMBaseInstrInfo *)MF->getTarget() |
| 387 .getSubtargetImpl() | 387 .getSubtargetImpl() |
| 388 ->getInstrInfo(); | 388 ->getInstrInfo(); |
| 389 AFI = MF->getInfo<ARMFunctionInfo>(); | 389 AFI = MF->getInfo<ARMFunctionInfo>(); |
| 390 STI = &MF->getTarget().getSubtarget<ARMSubtarget>(); | 390 STI = &MF->getTarget().getSubtarget<ARMSubtarget>(); |
| 391 | 391 |
| 392 if (!STI->useConstIslands()) return false; // @LOCALMOD |
| 393 |
| 392 isThumb = AFI->isThumbFunction(); | 394 isThumb = AFI->isThumbFunction(); |
| 393 isThumb1 = AFI->isThumb1OnlyFunction(); | 395 isThumb1 = AFI->isThumb1OnlyFunction(); |
| 394 isThumb2 = AFI->isThumb2Function(); | 396 isThumb2 = AFI->isThumb2Function(); |
| 395 | 397 |
| 396 HasFarJump = false; | 398 HasFarJump = false; |
| 397 | 399 |
| 398 // This pass invalidates liveness information when it splits basic blocks. | 400 // This pass invalidates liveness information when it splits basic blocks. |
| 399 MF->getRegInfo().invalidateLiveness(); | 401 MF->getRegInfo().invalidateLiveness(); |
| 400 | 402 |
| 401 // Renumber all of the machine basic blocks in the function, guaranteeing that | 403 // Renumber all of the machine basic blocks in the function, guaranteeing that |
| (...skipping 1666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2068 MF->RenumberBlocks(NewBB); | 2070 MF->RenumberBlocks(NewBB); |
| 2069 | 2071 |
| 2070 // Update the CFG. | 2072 // Update the CFG. |
| 2071 NewBB->addSuccessor(BB); | 2073 NewBB->addSuccessor(BB); |
| 2072 JTBB->removeSuccessor(BB); | 2074 JTBB->removeSuccessor(BB); |
| 2073 JTBB->addSuccessor(NewBB); | 2075 JTBB->addSuccessor(NewBB); |
| 2074 | 2076 |
| 2075 ++NumJTInserted; | 2077 ++NumJTInserted; |
| 2076 return NewBB; | 2078 return NewBB; |
| 2077 } | 2079 } |
| OLD | NEW |