LLVM 22.0.0git
|
#include "Mips.h"
#include "Mips16InstrInfo.h"
#include "MipsMachineFunction.h"
#include "MipsSubtarget.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineConstantPool.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Type.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cstdint>
#include <iterator>
#include <vector>
Go to the source code of this file.
Macros | |
#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 unsigned int | longformBranchOpcode (unsigned int Opcode) |
static unsigned int | branchMaxOffsets (unsigned int Opcode) |
static bool | BBHasFallthrough (MachineBasicBlock *MBB) |
BBHasFallthrough - Return true if the specified basic block can fallthrough into the block immediately after it. | |
static bool | CompareMBBNumbers (const MachineBasicBlock *LHS, const MachineBasicBlock *RHS) |
CompareMBBNumbers - Little predicate function to sort the WaterList by MBB ID. | |
static bool | BBIsJumpedOver (MachineBasicBlock *MBB) |
BBIsJumpedOver - Return true of the specified basic block's only predecessor unconditionally branches to its only successor. | |
static unsigned | getUnconditionalBrDisp (int Opc) |
getUnconditionalBrDisp - Returns the maximum displacement that can fit in the specific unconditional branch instruction. | |
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 57 of file MipsConstantIslandPass.cpp.
|
static |
BBHasFallthrough - Return true if the specified basic block can fallthrough into the block immediately after it.
Definition at line 585 of file MipsConstantIslandPass.cpp.
References llvm::MachineFunction::end(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineBasicBlock::getParent(), llvm::is_contained(), MBB, MBBI, and llvm::MachineBasicBlock::successors().
|
static |
BBIsJumpedOver - Return true of the specified basic block's only predecessor unconditionally branches to its only successor.
Definition at line 991 of file MipsConstantIslandPass.cpp.
References llvm::MachineBasicBlock::back(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), MBB, llvm::MachineBasicBlock::pred_begin(), llvm::MachineBasicBlock::pred_size(), llvm::MachineBasicBlock::succ_begin(), and llvm::MachineBasicBlock::succ_size().
Definition at line 131 of file MipsConstantIslandPass.cpp.
References llvm_unreachable.
|
static |
Definition at line 85 of file MipsConstantIslandPass.cpp.
References llvm_unreachable, and MI.
|
static |
CompareMBBNumbers - Little predicate function to sort the WaterList by MBB ID.
Definition at line 810 of file MipsConstantIslandPass.cpp.
|
inlinestatic |
getUnconditionalBrDisp - Returns the maximum displacement that can fit in the specific unconditional branch instruction.
Definition at line 1139 of file MipsConstantIslandPass.cpp.
References Opc.
Definition at line 104 of file MipsConstantIslandPass.cpp.
References llvm_unreachable.
STATISTIC | ( | NumCBrFixed | , |
"Number of cond branches fixed" | |||
) |
STATISTIC | ( | NumCPEs | , |
"Number of constpool entries" | |||
) |
STATISTIC | ( | NumSplit | , |
"Number of uncond branches inserted" | |||
) |
STATISTIC | ( | NumUBrFixed | , |
"Number of uncond branches fixed" | |||
) |
|
static |
|
static |
|
static |