LLVM 22.0.0git
Classes | Public Member Functions | List of all members
llvm::VPIRFlags Class Reference

Class to record and manage LLVM IR flags. More...

#include "Transforms/Vectorize/VPlan.h"

Inheritance diagram for llvm::VPIRFlags:
[legend]

Classes

struct  DisjointFlagsTy
 
struct  NonNegFlagsTy
 
struct  TruncFlagsTy
 
struct  WrapFlagsTy
 

Public Member Functions

 VPIRFlags ()
 
 VPIRFlags (Instruction &I)
 
 VPIRFlags (CmpInst::Predicate Pred)
 
 VPIRFlags (WrapFlagsTy WrapFlags)
 
 VPIRFlags (FastMathFlags FMFs)
 
 VPIRFlags (DisjointFlagsTy DisjointFlags)
 
 VPIRFlags (NonNegFlagsTy NonNegFlags)
 
 VPIRFlags (GEPNoWrapFlags GEPFlags)
 
void transferFlags (VPIRFlags &Other)
 
void dropPoisonGeneratingFlags ()
 Drop all poison-generating flags.
 
void applyFlags (Instruction &I) const
 Apply the IR flags to I.
 
CmpInst::Predicate getPredicate () const
 
void setPredicate (CmpInst::Predicate Pred)
 
GEPNoWrapFlags getGEPNoWrapFlags () const
 
bool hasPredicate () const
 Returns true if the recipe has a comparison predicate.
 
bool hasFastMathFlags () const
 Returns true if the recipe has fast-math flags.
 
LLVM_ABI_FOR_TEST FastMathFlags getFastMathFlags () const
 
bool hasNonNegFlag () const
 Returns true if the recipe has non-negative flag.
 
bool isNonNeg () const
 
bool hasNoUnsignedWrap () const
 
bool hasNoSignedWrap () const
 
bool isDisjoint () const
 
bool flagsValidForOpcode (unsigned Opcode) const
 Returns true if the set flags are valid for Opcode.
 
void printFlags (raw_ostream &O) const
 

Detailed Description

Class to record and manage LLVM IR flags.

Definition at line 596 of file VPlan.h.

Constructor & Destructor Documentation

◆ VPIRFlags() [1/8]

llvm::VPIRFlags::VPIRFlags ( )
inline

Definition at line 665 of file VPlan.h.

References Other.

◆ VPIRFlags() [2/8]

llvm::VPIRFlags::VPIRFlags ( Instruction I)
inline

◆ VPIRFlags() [3/8]

llvm::VPIRFlags::VPIRFlags ( CmpInst::Predicate  Pred)
inline

Definition at line 698 of file VPlan.h.

◆ VPIRFlags() [4/8]

llvm::VPIRFlags::VPIRFlags ( WrapFlagsTy  WrapFlags)
inline

Definition at line 701 of file VPlan.h.

◆ VPIRFlags() [5/8]

llvm::VPIRFlags::VPIRFlags ( FastMathFlags  FMFs)
inline

Definition at line 704 of file VPlan.h.

◆ VPIRFlags() [6/8]

llvm::VPIRFlags::VPIRFlags ( DisjointFlagsTy  DisjointFlags)
inline

Definition at line 706 of file VPlan.h.

◆ VPIRFlags() [7/8]

llvm::VPIRFlags::VPIRFlags ( NonNegFlagsTy  NonNegFlags)
inline

Definition at line 709 of file VPlan.h.

◆ VPIRFlags() [8/8]

llvm::VPIRFlags::VPIRFlags ( GEPNoWrapFlags  GEPFlags)
inline

Definition at line 712 of file VPlan.h.

Member Function Documentation

◆ applyFlags()

void llvm::VPIRFlags::applyFlags ( Instruction I) const
inline

◆ dropPoisonGeneratingFlags()

void llvm::VPIRFlags::dropPoisonGeneratingFlags ( )
inline

◆ flagsValidForOpcode()

bool VPIRFlags::flagsValidForOpcode ( unsigned  Opcode) const

◆ getFastMathFlags()

FastMathFlags VPIRFlags::getFastMathFlags ( ) const

◆ getGEPNoWrapFlags()

GEPNoWrapFlags llvm::VPIRFlags::getGEPNoWrapFlags ( ) const
inline

◆ getPredicate()

CmpInst::Predicate llvm::VPIRFlags::getPredicate ( ) const
inline

◆ hasFastMathFlags()

bool llvm::VPIRFlags::hasFastMathFlags ( ) const
inline

Returns true if the recipe has fast-math flags.

Definition at line 812 of file VPlan.h.

Referenced by llvm::VPInstruction::execute(), and llvm::VPScalarIVStepsRecipe::execute().

◆ hasNonNegFlag()

bool llvm::VPIRFlags::hasNonNegFlag ( ) const
inline

Returns true if the recipe has non-negative flag.

Definition at line 817 of file VPlan.h.

◆ hasNoSignedWrap()

bool llvm::VPIRFlags::hasNoSignedWrap ( ) const
inline

◆ hasNoUnsignedWrap()

bool llvm::VPIRFlags::hasNoUnsignedWrap ( ) const
inline

◆ hasPredicate()

bool llvm::VPIRFlags::hasPredicate ( ) const
inline

Returns true if the recipe has a comparison predicate.

Definition at line 809 of file VPlan.h.

Referenced by scalarizeInstruction().

◆ isDisjoint()

bool llvm::VPIRFlags::isDisjoint ( ) const
inline

Definition at line 847 of file VPlan.h.

References assert(), DisjointFlags, and llvm::VPIRFlags::DisjointFlagsTy::IsDisjoint.

◆ isNonNeg()

bool llvm::VPIRFlags::isNonNeg ( ) const
inline

Definition at line 819 of file VPlan.h.

References assert(), llvm::VPIRFlags::NonNegFlagsTy::NonNeg, and NonNegFlags.

◆ printFlags()

void VPIRFlags::printFlags ( raw_ostream O) const

◆ setPredicate()

void llvm::VPIRFlags::setPredicate ( CmpInst::Predicate  Pred)
inline

Definition at line 800 of file VPlan.h.

References assert().

◆ transferFlags()

void llvm::VPIRFlags::transferFlags ( VPIRFlags Other)
inline

Definition at line 716 of file VPlan.h.

References AllFlags, and Other.

Member Data Documentation

◆ AllFlags

unsigned llvm::VPIRFlags::AllFlags

Definition at line 661 of file VPlan.h.

Referenced by transferFlags(), and VPIRFlags().

◆ CmpPredicate

CmpInst::Predicate llvm::VPIRFlags::CmpPredicate

Definition at line 653 of file VPlan.h.

Referenced by getPredicate().

◆ DisjointFlags

DisjointFlagsTy llvm::VPIRFlags::DisjointFlags

Definition at line 656 of file VPlan.h.

Referenced by applyFlags(), dropPoisonGeneratingFlags(), isDisjoint(), printFlags(), and VPIRFlags().

◆ ExactFlags

ExactFlagsTy llvm::VPIRFlags::ExactFlags

Definition at line 657 of file VPlan.h.

Referenced by applyFlags(), dropPoisonGeneratingFlags(), printFlags(), and VPIRFlags().

◆ FMFs

FastMathFlagsTy llvm::VPIRFlags::FMFs

◆ GEPFlags

GEPNoWrapFlags llvm::VPIRFlags::GEPFlags

◆ NonNegFlags

NonNegFlagsTy llvm::VPIRFlags::NonNegFlags

Definition at line 659 of file VPlan.h.

Referenced by applyFlags(), dropPoisonGeneratingFlags(), isNonNeg(), printFlags(), and VPIRFlags().

◆ TruncFlags

TruncFlagsTy llvm::VPIRFlags::TruncFlags

◆ WrapFlags

WrapFlagsTy llvm::VPIRFlags::WrapFlags

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