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().