LLVM 20.0.0git
Macros | Functions
GISelKnownBits.cpp File Reference
#include "llvm/CodeGen/GlobalISel/GISelKnownBits.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Analysis/ValueTracking.h"
#include "llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"
#include "llvm/CodeGen/GlobalISel/Utils.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/IR/ConstantRange.h"
#include "llvm/IR/Module.h"
#include "llvm/Target/TargetMachine.h"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "gisel-known-bits"
 Provides analysis for querying information about KnownBits during GISel passes.
 

Functions

 INITIALIZE_PASS (GISelKnownBitsAnalysis, DEBUG_TYPE, "Analysis for ComputingKnownBits", false, true) GISelKnownBits
 
static LLVM_ATTRIBUTE_UNUSED void dumpResult (const MachineInstr &MI, const KnownBits &Known, unsigned Depth)
 
static KnownBits extractBits (unsigned BitWidth, const KnownBits &SrcOpKnown, const KnownBits &OffsetKnown, const KnownBits &WidthKnown)
 
static unsigned computeNumSignBitsFromRangeMetadata (const GAnyLoad *Ld, unsigned TyBits)
 Compute the known number of sign bits with attached range metadata in the memory operand.
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "gisel-known-bits"

Provides analysis for querying information about KnownBits during GISel passes.

Definition at line 26 of file GISelKnownBits.cpp.

Function Documentation

◆ computeNumSignBitsFromRangeMetadata()

static unsigned computeNumSignBitsFromRangeMetadata ( const GAnyLoad Ld,
unsigned  TyBits 
)
static

Compute the known number of sign bits with attached range metadata in the memory operand.

If this is an extending load, accounts for the behavior of the high bits.

Definition at line 629 of file GISelKnownBits.cpp.

References llvm::ConstantRange::getBitWidth(), llvm::getConstantRangeFromMetadata(), llvm::APInt::getNumSignBits(), llvm::MachineInstr::getOpcode(), llvm::GAnyLoad::getRanges(), llvm::ConstantRange::getSignedMax(), llvm::ConstantRange::getSignedMin(), llvm::ConstantRange::signExtend(), and llvm::ConstantRange::zeroExtend().

Referenced by llvm::GISelKnownBits::computeNumSignBits().

◆ dumpResult()

static LLVM_ATTRIBUTE_UNUSED void dumpResult ( const MachineInstr MI,
const KnownBits Known,
unsigned  Depth 
)
static

◆ extractBits()

static KnownBits extractBits ( unsigned  BitWidth,
const KnownBits SrcOpKnown,
const KnownBits OffsetKnown,
const KnownBits WidthKnown 
)
static

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( GISelKnownBitsAnalysis  ,
DEBUG_TYPE  ,
"Analysis for ComputingKnownBits"  ,
false  ,
true   
)

Definition at line 32 of file GISelKnownBits.cpp.