LLVM  14.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/MIPatternMatch.h"
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
#include "llvm/CodeGen/GlobalISel/RegisterBankInfo.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineOptimizationRemarkEmitter.h"
#include "llvm/CodeGen/MachineSizeOpts.h"
#include "llvm/CodeGen/MachineRegisterInfo.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 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)
 
static bool shouldSkipDbgValueFor (MachineInstr &MI)
 These artifacts generally don't have any debug users because they don't directly originate from IR instructions, but instead usually from legalization. More...
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "globalisel-utils"

Definition at line 35 of file Utils.cpp.

Function Documentation

◆ getLCMSize()

static unsigned getLCMSize ( unsigned  OrigSize,
unsigned  TargetSize 
)
static

Definition at line 874 of file Utils.cpp.

References llvm::greatestCommonDivisor(), and llvm::Mul.

Referenced by llvm::getLCMType().

◆ isBuildVectorOp()

static bool isBuildVectorOp ( unsigned  Opcode)
static

Definition at line 991 of file Utils.cpp.

Referenced by llvm::getVectorSplat().

◆ reportGISelDiagnostic()

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

◆ shouldSkipDbgValueFor()

static bool shouldSkipDbgValueFor ( MachineInstr MI)
static

These artifacts generally don't have any debug users because they don't directly originate from IR instructions, but instead usually from legalization.

Avoiding checking for debug users improves compile time. Note that truncates or extends aren't included because they have IR counterparts which can have debug users after translation.

Definition at line 1192 of file Utils.cpp.

References MI.

Referenced by llvm::saveUsesAndErase().