LLVM 19.0.0git
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
llvm::ByteProvider< ISelOp > Class Template Reference

Represents known origin of an individual byte in combine pattern. More...

#include "llvm/CodeGen/ByteProvider.h"

Public Member Functions

 ByteProvider ()=default
 
bool isConstantZero () const
 
bool hasSrc () const
 
bool hasSameSrc (const ByteProvider &Other) const
 
bool operator== (const ByteProvider &Other) const
 

Static Public Member Functions

static ByteProvider getSrc (std::optional< ISelOp > Val, int64_t ByteOffset, int64_t VectorOffset)
 
static ByteProvider getConstantZero ()
 

Public Attributes

std::optional< ISelOp > Src = std::nullopt
 
int64_t DestOffset = 0
 
int64_t SrcOffset = 0
 

Detailed Description

template<typename ISelOp>
class llvm::ByteProvider< ISelOp >

Represents known origin of an individual byte in combine pattern.

The value of the byte is either constant zero, or comes from memory / some other productive instruction (e.g. arithmetic instructions). Bit manipulation instructions like shifts are not ByteProviders, rather are used to extract Bytes.

Definition at line 30 of file ByteProvider.h.

Constructor & Destructor Documentation

◆ ByteProvider()

template<typename ISelOp >
llvm::ByteProvider< ISelOp >::ByteProvider ( )
default

Member Function Documentation

◆ getConstantZero()

template<typename ISelOp >
static ByteProvider llvm::ByteProvider< ISelOp >::getConstantZero ( )
inlinestatic

Definition at line 73 of file ByteProvider.h.

Referenced by calculateByteProvider().

◆ getSrc()

template<typename ISelOp >
static ByteProvider llvm::ByteProvider< ISelOp >::getSrc ( std::optional< ISelOp >  Val,
int64_t  ByteOffset,
int64_t  VectorOffset 
)
inlinestatic

◆ hasSameSrc()

template<typename ISelOp >
bool llvm::ByteProvider< ISelOp >::hasSameSrc ( const ByteProvider< ISelOp > &  Other) const
inline

Definition at line 80 of file ByteProvider.h.

References llvm::Other, and llvm::ByteProvider< ISelOp >::Src.

◆ hasSrc()

template<typename ISelOp >
bool llvm::ByteProvider< ISelOp >::hasSrc ( ) const
inline

Definition at line 78 of file ByteProvider.h.

References llvm::ByteProvider< ISelOp >::Src.

◆ isConstantZero()

template<typename ISelOp >
bool llvm::ByteProvider< ISelOp >::isConstantZero ( ) const
inline

Definition at line 76 of file ByteProvider.h.

References llvm::ByteProvider< ISelOp >::Src.

◆ operator==()

template<typename ISelOp >
bool llvm::ByteProvider< ISelOp >::operator== ( const ByteProvider< ISelOp > &  Other) const
inline

Member Data Documentation

◆ DestOffset

template<typename ISelOp >
int64_t llvm::ByteProvider< ISelOp >::DestOffset = 0

Definition at line 59 of file ByteProvider.h.

Referenced by llvm::ByteProvider< ISelOp >::operator==().

◆ Src

template<typename ISelOp >
std::optional<ISelOp> llvm::ByteProvider< ISelOp >::Src = std::nullopt

◆ SrcOffset

template<typename ISelOp >
int64_t llvm::ByteProvider< ISelOp >::SrcOffset = 0

Definition at line 62 of file ByteProvider.h.

Referenced by llvm::ByteProvider< ISelOp >::operator==(), and placeSources().


The documentation for this class was generated from the following file: