LLVM  15.0.0git
Macros | Functions
Utils.cpp File Reference
#include "llvm/CodeGen/GlobalISel/Utils.h"
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/Optional.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/TargetPassConfig.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/IR/Constants.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Transforms/Utils/SizeOpts.h"
Include dependency graph for Utils.cpp:

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 unsigned getLCMSize (unsigned OrigSize, unsigned TargetSize)
 
static bool isBuildVectorOp (unsigned Opcode)
 
Optional< APIntgetIConstantSplatVal (const MachineInstr &MI, const MachineRegisterInfo &MRI)
 
static bool isConstantScalar (const MachineInstr &MI, const MachineRegisterInfo &MRI, bool AllowFP=true, bool AllowOpaqueConstants=true)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "globalisel-utils"

Definition at line 37 of file Utils.cpp.

Function Documentation

◆ getIConstantSplatVal()

Optional<APInt> getIConstantSplatVal ( const MachineInstr MI,
const MachineRegisterInfo MRI 
)
Returns
the scalar integral splat value defined by MI if possible.

Definition at line 1086 of file Utils.cpp.

References llvm::getIConstantSplatVal(), MI, and MRI.

◆ getLCMSize()

static unsigned getLCMSize ( unsigned  OrigSize,
unsigned  TargetSize 
)
static

Definition at line 883 of file Utils.cpp.

References llvm::greatestCommonDivisor(), and Mul.

Referenced by llvm::getLCMType().

◆ isBuildVectorOp()

static bool isBuildVectorOp ( unsigned  Opcode)
static

Definition at line 1015 of file Utils.cpp.

Referenced by llvm::getVectorSplat(), and llvm::isConstantOrConstantVector().

◆ isConstantScalar()

static bool isConstantScalar ( const MachineInstr MI,
const MachineRegisterInfo MRI,
bool  AllowFP = true,
bool  AllowOpaqueConstants = true 
)
static

Definition at line 1140 of file Utils.cpp.

References MI.

Referenced by llvm::isConstantOrConstantVector().

◆ reportGISelDiagnostic()

static void reportGISelDiagnostic ( DiagnosticSeverity  Severity,
MachineFunction MF,
const TargetPassConfig TPC,
MachineOptimizationRemarkEmitter MORE,
MachineOptimizationRemarkMissed R 
)
static