LLVM API Documentation
#include "MCTargetDesc/MipsMCNaCl.h"#include "Mips.h"#include "MipsInstrInfo.h"#include "MipsTargetMachine.h"#include "llvm/ADT/BitVector.h"#include "llvm/ADT/SmallPtrSet.h"#include "llvm/ADT/Statistic.h"#include "llvm/Analysis/AliasAnalysis.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/CodeGen/MachineBranchProbabilityInfo.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/PseudoSourceValue.h"#include "llvm/Support/CommandLine.h"#include "llvm/Target/TargetInstrInfo.h"#include "llvm/Target/TargetMachine.h"#include "llvm/Target/TargetRegisterInfo.h"
Go to the source code of this file.
Defines | |
| #define | DEBUG_TYPE "delay-slot-filler" |
Functions | |
| STATISTIC (FilledSlots,"Number of delay slots filled") | |
| STATISTIC (UsefulSlots,"Number of delay slots filled with instructions that"" are not NOP.") | |
| static bool | hasUnoccupiedSlot (const MachineInstr *MI) |
| static void | insertDelayFiller (Iter Filler, const BB2BrMap &BrMap) |
| This function inserts clones of Filler into predecessor blocks. | |
| static void | addLiveInRegs (Iter Filler, MachineBasicBlock &MBB) |
| This function adds registers Filler defines to MBB's live-in register list. | |
Variables | |
| static cl::opt< bool > | DisableDelaySlotFiller ("disable-mips-delay-filler", cl::init(false), cl::desc("Fill all delay slots with NOPs."), cl::Hidden) |
| static cl::opt< bool > | DisableForwardSearch ("disable-mips-df-forward-search", cl::init(true), cl::desc("Disallow MIPS delay filler to search forward."), cl::Hidden) |
| static cl::opt< bool > | DisableSuccBBSearch ("disable-mips-df-succbb-search", cl::init(true), cl::desc("Disallow MIPS delay filler to search successor basic blocks."), cl::Hidden) |
| static cl::opt< bool > | DisableBackwardSearch ("disable-mips-df-backward-search", cl::init(false), cl::desc("Disallow MIPS delay filler to search backward."), cl::Hidden) |
| #define DEBUG_TYPE "delay-slot-filler" |
Definition at line 35 of file MipsDelaySlotFiller.cpp.
| static void addLiveInRegs | ( | Iter | Filler, |
| MachineBasicBlock & | MBB | ||
| ) | [static] |
This function adds registers Filler defines to MBB's live-in register list.
Definition at line 268 of file MipsDelaySlotFiller.cpp.
References llvm::MachineBasicBlock::addLiveIn(), llvm::TargetRegisterInfo::getAllocatableSet(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::TargetMachine::getSubtargetImpl(), llvm::MachineFunction::getTarget(), I, llvm::MachineOperand::isDef(), llvm::MachineBasicBlock::isLiveIn(), llvm::MachineOperand::isReg(), and llvm::BitVector::test().
| static bool hasUnoccupiedSlot | ( | const MachineInstr * | MI | ) | [static] |
Definition at line 249 of file MipsDelaySlotFiller.cpp.
References llvm::MachineInstr::hasDelaySlot(), and llvm::MachineInstr::isBundledWithSucc().
| static void insertDelayFiller | ( | Iter | Filler, |
| const BB2BrMap & | BrMap | ||
| ) | [static] |
This function inserts clones of Filler into predecessor blocks.
Definition at line 254 of file MipsDelaySlotFiller.cpp.
References llvm::MIBundleBuilder::append(), llvm::MachineFunction::CloneMachineInstr(), and I.
| STATISTIC | ( | UsefulSlots | , |
| "Number of delay slots filled with instructions that"" are not NOP." | |||
| ) |
cl::opt<bool> DisableBackwardSearch("disable-mips-df-backward-search", cl::init(false), cl::desc("Disallow MIPS delay filler to search backward."), cl::Hidden) [static] |
cl::opt<bool> DisableDelaySlotFiller("disable-mips-delay-filler", cl::init(false), cl::desc("Fill all delay slots with NOPs."), cl::Hidden) [static] |
cl::opt<bool> DisableForwardSearch("disable-mips-df-forward-search", cl::init(true), cl::desc("Disallow MIPS delay filler to search forward."), cl::Hidden) [static] |
cl::opt<bool> DisableSuccBBSearch("disable-mips-df-succbb-search", cl::init(true), cl::desc("Disallow MIPS delay filler to search successor basic blocks."), cl::Hidden) [static] |