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/MachineDomTreeUpdater.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/MachinePostDominators.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 45 of file MachineBasicBlock.cpp.
#define GET_RESULT | ( | RESULT, | |
GETTER, | |||
INFIX | |||
) |
Definition at line 1140 of file MachineBasicBlock.cpp.
|
static |
Definition at line 684 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(), jumpTableHasOtherUses(), and llvm::MachineBasicBlock::SplitCriticalEdge().
|
static |
Definition at line 1068 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 1431 of file MachineBasicBlock.cpp.
References MI.
Referenced by llvm::MachineBasicBlock::erase(), and llvm::MachineBasicBlock::remove_instr().
|
static |
Referenced by llvm::MachineBasicBlock::print().