LLVM API Documentation
#include "Mips.h"#include "MCTargetDesc/MipsBaseInfo.h"#include "Mips16InstrInfo.h"#include "MipsMachineFunction.h"#include "MipsTargetMachine.h"#include "llvm/ADT/Statistic.h"#include "llvm/CodeGen/MachineBasicBlock.h"#include "llvm/CodeGen/MachineConstantPool.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/IR/Function.h"#include "llvm/IR/InstIterator.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/Debug.h"#include "llvm/Support/Format.h"#include "llvm/Support/MathExtras.h"#include "llvm/Support/raw_ostream.h"#include "llvm/Target/TargetInstrInfo.h"#include "llvm/Target/TargetMachine.h"#include "llvm/Target/TargetRegisterInfo.h"#include <algorithm>
Go to the source code of this file.
Defines | |
| #define | DEBUG_TYPE "mips-constant-islands" |
Functions | |
| STATISTIC (NumCPEs,"Number of constpool entries") | |
| STATISTIC (NumSplit,"Number of uncond branches inserted") | |
| STATISTIC (NumCBrFixed,"Number of cond branches fixed") | |
| STATISTIC (NumUBrFixed,"Number of uncond branches fixed") | |
| static unsigned int | branchTargetOperand (MachineInstr *MI) |
| static bool | isUnconditionalBranch (unsigned int Opcode) |
| static unsigned int | longformBranchOpcode (unsigned int Opcode) |
| static unsigned int | branchMaxOffsets (unsigned int Opcode) |
| static bool | BBHasFallthrough (MachineBasicBlock *MBB) |
| static bool | CompareMBBNumbers (const MachineBasicBlock *LHS, const MachineBasicBlock *RHS) |
| static bool | BBIsJumpedOver (MachineBasicBlock *MBB) |
| static unsigned | getUnconditionalBrDisp (int Opc) |
Variables | |
| static cl::opt< bool > | AlignConstantIslands ("mips-align-constant-islands", cl::Hidden, cl::init(true), cl::desc("Align constant islands in code")) |
| static cl::opt< int > | ConstantIslandsSmallOffset ("mips-constant-islands-small-offset", cl::init(0), cl::desc("Make small offsets be this amount for testing purposes"), cl::Hidden) |
| static cl::opt< bool > | NoLoadRelaxation ("mips-constant-islands-no-load-relaxation", cl::init(false), cl::desc("Don't relax loads to long loads - for testing purposes"), cl::Hidden) |
| #define DEBUG_TYPE "mips-constant-islands" |
Definition at line 49 of file MipsConstantIslandPass.cpp.
| static bool BBHasFallthrough | ( | MachineBasicBlock * | MBB | ) | [static] |
BBHasFallthrough - Return true if the specified basic block can fallthrough into the block immediately after it.
Definition at line 605 of file MipsConstantIslandPass.cpp.
References llvm::MachineFunction::end(), llvm::MachineBasicBlock::getParent(), I, llvm::MachineBasicBlock::succ_begin(), and llvm::MachineBasicBlock::succ_end().
| static bool BBIsJumpedOver | ( | MachineBasicBlock * | MBB | ) | [static] |
BBIsJumpedOver - Return true of the specified basic block's only predecessor unconditionally branches to its only successor.
Definition at line 1036 of file MipsConstantIslandPass.cpp.
References llvm::MachineBasicBlock::back(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::pred_begin(), llvm::MachineBasicBlock::pred_size(), llvm::MachineBasicBlock::succ_begin(), and llvm::MachineBasicBlock::succ_size().
| static unsigned int branchMaxOffsets | ( | unsigned int | Opcode | ) | [static] |
Definition at line 139 of file MipsConstantIslandPass.cpp.
References llvm::tgtok::Bits, and llvm_unreachable.
| static unsigned int branchTargetOperand | ( | MachineInstr * | MI | ) | [static] |
Definition at line 81 of file MipsConstantIslandPass.cpp.
References llvm::MachineInstr::getOpcode(), and llvm_unreachable.
| static bool CompareMBBNumbers | ( | const MachineBasicBlock * | LHS, |
| const MachineBasicBlock * | RHS | ||
| ) | [static] |
CompareMBBNumbers - Little predicate function to sort the WaterList by MBB ID.
Definition at line 849 of file MipsConstantIslandPass.cpp.
References llvm::MachineBasicBlock::getNumber().
| static unsigned getUnconditionalBrDisp | ( | int | Opc | ) | [inline, static] |
getUnconditionalBrDisp - Returns the maximum displacement that can fit in the specific unconditional branch instruction.
Definition at line 1185 of file MipsConstantIslandPass.cpp.
| static bool isUnconditionalBranch | ( | unsigned int | Opcode | ) | [static] |
Definition at line 100 of file MipsConstantIslandPass.cpp.
| static unsigned int longformBranchOpcode | ( | unsigned int | Opcode | ) | [static] |
Definition at line 110 of file MipsConstantIslandPass.cpp.
References llvm_unreachable.
| STATISTIC | ( | NumCPEs | , |
| "Number of constpool entries" | |||
| ) |
| STATISTIC | ( | NumSplit | , |
| "Number of uncond branches inserted" | |||
| ) |
| STATISTIC | ( | NumCBrFixed | , |
| "Number of cond branches fixed" | |||
| ) |
| STATISTIC | ( | NumUBrFixed | , |
| "Number of uncond branches fixed" | |||
| ) |
cl::opt<bool> AlignConstantIslands("mips-align-constant-islands", cl::Hidden, cl::init(true), cl::desc("Align constant islands in code")) [static] |
cl::opt<int> ConstantIslandsSmallOffset("mips-constant-islands-small-offset", cl::init(0), cl::desc("Make small offsets be this amount for testing purposes"), cl::Hidden) [static] |
cl::opt<bool> NoLoadRelaxation("mips-constant-islands-no-load-relaxation", cl::init(false), cl::desc("Don't relax loads to long loads - for testing purposes"), cl::Hidden) [static] |