LLVM 20.0.0git
|
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/CodeGen/LiveIntervals.h"
#include "llvm/CodeGen/LivePhysRegs.h"
#include "llvm/CodeGen/LiveVariables.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineJumpTableInfo.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/SlotIndexes.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/DebugInfoMetadata.h"
#include "llvm/IR/ModuleSlotTracker.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetMachine.h"
#include <algorithm>
#include <cmath>
Go to the source code of this file.
Classes | |
class | SlotIndexUpdateDelegate |
Macros | |
#define | DEBUG_TYPE "codegen" |
#define | GET_RESULT(RESULT, GETTER, INFIX) |
Functions | |
static int | findJumpTableIndex (const MachineBasicBlock &MBB) |
static bool | jumpTableHasOtherUses (const MachineFunction &MF, const MachineBasicBlock &IgnoreMBB, int JumpTableIndex) |
static void | unbundleSingleMI (MachineInstr *MI) |
Prepare MI to be removed from its bundle. | |
Variables | |
static cl::opt< bool > | PrintSlotIndexes ("print-slotindexes", cl::desc("When printing machine IR, annotate instructions and blocks with " "SlotIndexes when available"), cl::init(true), cl::Hidden) |
#define DEBUG_TYPE "codegen" |
Definition at line 43 of file MachineBasicBlock.cpp.
#define GET_RESULT | ( | RESULT, | |
GETTER, | |||
INFIX | |||
) |
Definition at line 1138 of file MachineBasicBlock.cpp.
|
static |
Definition at line 682 of file MachineBasicBlock.cpp.
References llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::getFirstTerminator(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getSubtarget(), MBB, and TII.
Referenced by llvm::MachineBasicBlock::canSplitCriticalEdge(), and jumpTableHasOtherUses().
|
static |
Definition at line 1066 of file MachineBasicBlock.cpp.
References llvm::HexagonInstrInfo::analyzeBranch(), assert(), B, Cond, findJumpTableIndex(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineFunction::getJumpTableInfo(), llvm::MachineJumpTableInfo::getJumpTables(), llvm::MachineFunction::getSubtarget(), MBB, llvm::MachineJumpTableEntry::MBBs, llvm::MachineBasicBlock::predecessors(), and TII.
Referenced by llvm::MachineBasicBlock::canSplitCriticalEdge().
|
static |
Prepare MI to be removed from its bundle.
This fixes bundle flags on MI's neighboring instructions so the bundle won't be broken by removing MI.
Definition at line 1429 of file MachineBasicBlock.cpp.
References MI.
Referenced by llvm::MachineBasicBlock::erase(), and llvm::MachineBasicBlock::remove_instr().
|
static |
Referenced by llvm::MachineBasicBlock::print().