LLVM 20.0.0git
|
#include "Mips.h"
#include "Mips16InstrInfo.h"
#include "MipsMachineFunction.h"
#include "MipsSubtarget.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallSet.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/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#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 60 of file MipsConstantIslandPass.cpp.
|
static |
BBHasFallthrough - Return true if the specified basic block can fallthrough into the block immediately after it.
Definition at line 588 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 994 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 134 of file MipsConstantIslandPass.cpp.
References llvm_unreachable.
|
static |
Definition at line 88 of file MipsConstantIslandPass.cpp.
References llvm_unreachable, and MI.
|
static |
CompareMBBNumbers - Little predicate function to sort the WaterList by MBB ID.
Definition at line 813 of file MipsConstantIslandPass.cpp.
|
inlinestatic |
getUnconditionalBrDisp - Returns the maximum displacement that can fit in the specific unconditional branch instruction.
Definition at line 1142 of file MipsConstantIslandPass.cpp.
Definition at line 107 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 |