|
LLVM 22.0.0git
|
#include "llvm/CodeGen/GlobalISel/Utils.h"#include "llvm/ADT/APFloat.h"#include "llvm/ADT/APInt.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/CodeGen/CodeGenCommonISel.h"#include "llvm/CodeGen/GlobalISel/GISelChangeObserver.h"#include "llvm/CodeGen/GlobalISel/GISelValueTracking.h"#include "llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"#include "llvm/CodeGen/GlobalISel/LostDebugLocObserver.h"#include "llvm/CodeGen/GlobalISel/MIPatternMatch.h"#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineOptimizationRemarkEmitter.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/MachineSizeOpts.h"#include "llvm/CodeGen/RegisterBankInfo.h"#include "llvm/CodeGen/StackProtector.h"#include "llvm/CodeGen/TargetInstrInfo.h"#include "llvm/CodeGen/TargetLowering.h"#include "llvm/CodeGen/TargetOpcodes.h"#include "llvm/CodeGen/TargetPassConfig.h"#include "llvm/CodeGen/TargetRegisterInfo.h"#include "llvm/IR/Constants.h"#include "llvm/Target/TargetMachine.h"#include "llvm/Transforms/Utils/SizeOpts.h"#include <numeric>#include <optional>Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "globalisel-utils" |
| bool canCreatePoison | ( | Register | Reg, |
| const MachineRegisterInfo & | MRI, | ||
| bool | ConsiderFlagsAndMetadata = true ) |
Definition at line 2005 of file Utils.cpp.
References MRI, PoisonOnly, and Reg.
|
static |
Definition at line 1846 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().
|
static |
Definition at line 1838 of file Utils.cpp.
References PoisonOnly.
Referenced by canCreateUndefOrPoison().
|
static |
Definition at line 1842 of file Utils.cpp.
References UndefOnly.
Referenced by isGuaranteedNotToBeUndefOrPoison().
Definition at line 1351 of file Utils.cpp.
Referenced by llvm::getVectorSplat(), and llvm::isConstantOrConstantVector().
|
static |
Definition at line 1507 of file Utils.cpp.
Referenced by llvm::isConstantOrConstantVector().
|
static |
Definition at line 1950 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().
|
static |
Definition at line 235 of file Utils.cpp.
References llvm::DS_Error, llvm::MachineFunction::getName(), llvm::TargetPassConfig::isGlobalISelAbortEnabled(), MORE, and llvm::reportFatalUsageError().
Referenced by llvm::reportGISelFailure(), and llvm::reportGISelWarning().
|
static |
Shifts return poison if shiftwidth is larger than the bitwidth.
Definition at line 1798 of file Utils.cpp.
References llvm::getIConstantVRegValWithLookThrough(), llvm::GMergeLikeInstr::getNumSources(), llvm::getOpcodeDef(), llvm::GMergeLikeInstr::getSourceReg(), I, and MRI.
Referenced by canCreateUndefOrPoison().