LLVM: lib/CodeGen/GlobalISel/Utils.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "globalisel-utils"
Functions
static void reportGISelDiagnostic (DiagnosticSeverity Severity, MachineFunction &MF, MachineOptimizationRemarkEmitter &MORE, MachineOptimizationRemarkMissed &R)
static bool isBuildVectorOp (unsigned Opcode)
static bool isConstantScalar (const MachineInstr &MI, const MachineRegisterInfo &MRI, bool AllowFP=true, bool AllowOpaqueConstants=true)
static bool shiftAmountKnownInRange (Register ShiftAmount, const MachineRegisterInfo &MRI)
Shifts return poison if shiftwidth is larger than the bitwidth.
static bool includesPoison (UndefPoisonKind Kind)
static bool includesUndef (UndefPoisonKind Kind)
static bool canCreateUndefOrPoison (Register Reg, const MachineRegisterInfo &MRI, bool ConsiderFlagsAndMetadata, UndefPoisonKind Kind)
static bool isGuaranteedNotToBeUndefOrPoison (Register Reg, const MachineRegisterInfo &MRI, unsigned Depth, UndefPoisonKind Kind)
bool canCreatePoison (Register Reg, const MachineRegisterInfo &MRI, bool ConsiderFlagsAndMetadata=true)

DEBUG_TYPE

#define DEBUG_TYPE "globalisel-utils"

canCreatePoison()

canCreateUndefOrPoison()

Definition at line 1851 of file Utils.cpp.

References llvm::cast(), llvm::dyn_cast(), llvm::LLT::getElementCount(), llvm::getIConstantVRegValWithLookThrough(), llvm::GExtractVectorElement::getIndexReg(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::GShuffleVector::getMask(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::GExtractVectorElement::getVectorReg(), includesPoison(), llvm::is_contained(), llvm::isa(), MRI, Reg, and shiftAmountKnownInRange().

includesPoison()

includesUndef()

isBuildVectorOp()

isConstantScalar()

isGuaranteedNotToBeUndefOrPoison()

Definition at line 1957 of file Utils.cpp.

References llvm::all_of(), llvm::canCreateUndefOrPoison(), llvm::cast(), llvm::Depth, llvm::GMergeLikeInstr::getNumSources(), llvm::MachineInstr::getOpcode(), llvm::GMergeLikeInstr::getSourceReg(), I, includesUndef(), llvm::isGuaranteedNotToBeUndefOrPoison(), llvm::MaxAnalysisRecursionDepth, MRI, Reg, and llvm::MachineInstr::uses().

reportGISelDiagnostic()

shiftAmountKnownInRange()