LLVM 24.0.0git
MipsConstantIslandPass.cpp File Reference
#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/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.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "mips-constant-islands"

Definition at line 56 of file MipsConstantIslandPass.cpp.

Function Documentation

◆ BBHasFallthrough()

bool ARMConstantIslands::BBHasFallthrough ( MachineBasicBlock * MBB)
static

BBHasFallthrough - Return true if the specified basic block can fallthrough into the block immediately after it.

Definition at line 564 of file MipsConstantIslandPass.cpp.

References llvm::is_contained(), MBB, and MBBI.

◆ BBIsJumpedOver()

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 970 of file MipsConstantIslandPass.cpp.

References llvm::MachineOperand::getMBB(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), and MBB.

◆ branchMaxOffsets()

unsigned int branchMaxOffsets ( unsigned int Opcode)
static

Definition at line 109 of file MipsConstantIslandPass.cpp.

References llvm_unreachable.

◆ branchTargetOperand()

unsigned int branchTargetOperand ( MachineInstr * MI)
static

Definition at line 63 of file MipsConstantIslandPass.cpp.

References llvm_unreachable, and MI.

◆ CompareMBBNumbers()

bool CompareMBBNumbers ( const MachineBasicBlock * LHS,
const MachineBasicBlock * RHS )
static

CompareMBBNumbers - Little predicate function to sort the WaterList by MBB ID.

Definition at line 789 of file MipsConstantIslandPass.cpp.

References LHS, and RHS.

◆ getUnconditionalBrDisp()

unsigned getUnconditionalBrDisp ( int Opc)
inlinestatic

getUnconditionalBrDisp - Returns the maximum displacement that can fit in the specific unconditional branch instruction.

Definition at line 1118 of file MipsConstantIslandPass.cpp.

References Opc.

◆ longformBranchOpcode()

unsigned int longformBranchOpcode ( unsigned int Opcode)
static

Definition at line 82 of file MipsConstantIslandPass.cpp.

References llvm_unreachable.

◆ STATISTIC() [1/4]

STATISTIC ( NumCBrFixed ,
"Number of cond branches fixed"  )

◆ STATISTIC() [2/4]

STATISTIC ( NumCPEs ,
"Number of constpool entries"  )

◆ STATISTIC() [3/4]

STATISTIC ( NumSplit ,
"Number of uncond branches inserted"  )

◆ STATISTIC() [4/4]

STATISTIC ( NumUBrFixed ,
"Number of uncond branches fixed"  )