LLVM API Documentation

Defines | Functions | Variables
MipsDelaySlotFiller.cpp File Reference
#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"
Include dependency graph for MipsDelaySlotFiller.cpp:

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< boolDisableDelaySlotFiller ("disable-mips-delay-filler", cl::init(false), cl::desc("Fill all delay slots with NOPs."), cl::Hidden)
static cl::opt< boolDisableForwardSearch ("disable-mips-df-forward-search", cl::init(true), cl::desc("Disallow MIPS delay filler to search forward."), cl::Hidden)
static cl::opt< boolDisableSuccBBSearch ("disable-mips-df-succbb-search", cl::init(true), cl::desc("Disallow MIPS delay filler to search successor basic blocks."), cl::Hidden)
static cl::opt< boolDisableBackwardSearch ("disable-mips-df-backward-search", cl::init(false), cl::desc("Disallow MIPS delay filler to search backward."), cl::Hidden)

Define Documentation

#define DEBUG_TYPE   "delay-slot-filler"

Definition at line 35 of file MipsDelaySlotFiller.cpp.


Function Documentation

static void addLiveInRegs ( Iter  Filler,
MachineBasicBlock MBB 
) [static]
static bool hasUnoccupiedSlot ( const MachineInstr MI) [static]
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 ( FilledSlots  ,
"Number of delay slots filled"   
)
STATISTIC ( UsefulSlots  ,
"Number of delay slots filled with instructions that"" are not NOP."   
)

Variable Documentation

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]