Go to the source code of this file.
|
| STATISTIC (NumRemovedSExtW, "Number of removed sign-extensions") |
|
| STATISTIC (NumTransformedToWInstrs, "Number of instructions transformed to W-ops") |
|
| INITIALIZE_PASS (LoongArchOptWInstrs, DEBUG_TYPE, LOONGARCH_OPT_W_INSTRS_NAME, false, false) FunctionPass *llvm |
|
static bool | hasAllNBitUsers (const MachineInstr &OrigMI, const LoongArchSubtarget &ST, const MachineRegisterInfo &MRI, unsigned OrigBits) |
|
static bool | hasAllWUsers (const MachineInstr &OrigMI, const LoongArchSubtarget &ST, const MachineRegisterInfo &MRI) |
|
static bool | isSignExtendingOpW (const MachineInstr &MI, const MachineRegisterInfo &MRI, unsigned OpNo) |
|
static bool | isSignExtendedW (Register SrcReg, const LoongArchSubtarget &ST, const MachineRegisterInfo &MRI, SmallPtrSetImpl< MachineInstr * > &FixableDef) |
|
static unsigned | getWOp (unsigned Opcode) |
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "loongarch-opt-w-instrs" |
◆ LOONGARCH_OPT_W_INSTRS_NAME
#define LOONGARCH_OPT_W_INSTRS_NAME "LoongArch Optimize W Instructions" |
◆ getWOp()
◆ hasAllNBitUsers()
Definition at line 98 of file LoongArchOptWInstrs.cpp.
References llvm::bit_width(), llvm::SmallVectorBase< Size_T >::empty(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::SmallSet< T, N, C >::insert(), llvm::Register::isVirtual(), llvm::Log2_32(), MI, MRI, P, llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by hasAllWUsers().
◆ hasAllWUsers()
◆ INITIALIZE_PASS()
◆ isSignExtendedW()
Definition at line 477 of file LoongArchOptWInstrs.cpp.
References assert(), B, llvm::BitWidth, D, llvm::SmallVectorBase< Size_T >::empty(), llvm::MachineFunction::front(), llvm::MachineOperand::getGlobal(), llvm::MachineFunction::getInfo(), getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineFunction::getRegInfo(), hasAllWUsers(), I, II, llvm::SmallSet< T, N, C >::insert(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::MachineBasicBlock::instr_begin(), llvm::MachineInstr::isCall(), llvm::MachineOperand::isGlobal(), llvm::MachineRegisterInfo::isLiveIn(), llvm::LoongArchMachineFunctionInfo::isSExt32Register(), isSignExtendingOpW(), llvm::Register::isVirtual(), MBB, MI, MRI, llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
◆ isSignExtendingOpW()
◆ STATISTIC() [1/2]
STATISTIC |
( |
NumRemovedSExtW |
, |
|
|
"Number of removed sign-extensions" |
|
|
) |
| |
◆ STATISTIC() [2/2]
STATISTIC |
( |
NumTransformedToWInstrs |
, |
|
|
"Number of instructions transformed to W-ops" |
|
|
) |
| |
◆ DisableCvtToDSuffix
cl::opt< bool > DisableCvtToDSuffix("loongarch-disable-cvt-to-d-suffix", cl::desc("Disable convert to D suffix"), cl::init(false), cl::Hidden) |
( |
"loongarch-disable-cvt-to-d-suffix" |
, |
|
|
cl::desc("Disable convert to D suffix") |
, |
|
|
cl::init(false) |
, |
|
|
cl::Hidden |
|
|
) |
| |
|
static |
◆ DisableSExtWRemoval
cl::opt< bool > DisableSExtWRemoval("loongarch-disable-sextw-removal", cl::desc("Disable removal of sign-extend insn"), cl::init(false), cl::Hidden) |
( |
"loongarch-disable-sextw-removal" |
, |
|
|
cl::desc("Disable removal of sign-extend insn") |
, |
|
|
cl::init(false) |
, |
|
|
cl::Hidden |
|
|
) |
| |
|
static |