LLVM 19.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/GISelKnownBits.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" |
Functions | |
static void | reportGISelDiagnostic (DiagnosticSeverity Severity, MachineFunction &MF, const TargetPassConfig &TPC, 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 | 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) |
bool canCreatePoison | ( | Register | Reg, |
const MachineRegisterInfo & | MRI, | ||
bool | ConsiderFlagsAndMetadata = true |
||
) |
Definition at line 1769 of file Utils.cpp.
References MRI, and PoisonOnly.
|
static |
Definition at line 1731 of file Utils.cpp.
References llvm::MachineInstr::getOpcode(), and MRI.
|
static |
Definition at line 1723 of file Utils.cpp.
References PoisonOnly.
|
static |
Definition at line 1727 of file Utils.cpp.
References UndefOnly.
Referenced by isGuaranteedNotToBeUndefOrPoison().
Definition at line 1309 of file Utils.cpp.
Referenced by llvm::getVectorSplat(), and llvm::isConstantOrConstantVector().
|
static |
Definition at line 1440 of file Utils.cpp.
References MI.
Referenced by llvm::isConstantOrConstantVector().
|
static |
Definition at line 1744 of file Utils.cpp.
References llvm::Depth, llvm::MachineInstr::getOpcode(), includesUndef(), llvm::MaxAnalysisRecursionDepth, and MRI.
|
static |
Definition at line 251 of file Utils.cpp.
References llvm::DS_Error, llvm::MachineFunction::getName(), llvm::TargetPassConfig::isGlobalISelAbortEnabled(), MORE, and llvm::report_fatal_error().
Referenced by llvm::reportGISelFailure(), and llvm::reportGISelWarning().