LLVM 22.0.0git
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 (CmpInst::Predicate Pred, FastMathFlags FMFs)
 VPIRFlags (WrapFlagsTy WrapFlags)
 VPIRFlags (TruncFlagsTy TruncFlags)
 VPIRFlags (FastMathFlags FMFs)
 VPIRFlags (DisjointFlagsTy DisjointFlags)
 VPIRFlags (NonNegFlagsTy NonNegFlags)
 VPIRFlags (GEPNoWrapFlags GEPFlags)
void transferFlags (VPIRFlags &Other)
void intersectFlags (const VPIRFlags &Other)
 Only keep flags also present in 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
LLVM_ABI_FOR_TEST 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 608 of file VPlan.h.

Constructor & Destructor Documentation

◆ VPIRFlags() [1/10]

◆ VPIRFlags() [2/10]

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

◆ VPIRFlags() [3/10]

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

Definition at line 722 of file VPlan.h.

References CmpPredicate.

◆ VPIRFlags() [4/10]

llvm::VPIRFlags::VPIRFlags ( CmpInst::Predicate Pred,
FastMathFlags FMFs )
inline

Definition at line 725 of file VPlan.h.

References FCmpFlags, and FMFs.

◆ VPIRFlags() [5/10]

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

Definition at line 731 of file VPlan.h.

References WrapFlags.

◆ VPIRFlags() [6/10]

llvm::VPIRFlags::VPIRFlags ( TruncFlagsTy TruncFlags)
inline

Definition at line 734 of file VPlan.h.

References TruncFlags.

◆ VPIRFlags() [7/10]

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

Definition at line 737 of file VPlan.h.

References FMFs.

◆ VPIRFlags() [8/10]

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

Definition at line 739 of file VPlan.h.

References DisjointFlags.

◆ VPIRFlags() [9/10]

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

Definition at line 742 of file VPlan.h.

References NonNegFlags.

◆ VPIRFlags() [10/10]

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

Definition at line 745 of file VPlan.h.

References GEPFlags.

Member Function Documentation

◆ applyFlags()

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

◆ dropPoisonGeneratingFlags()

void llvm::VPIRFlags::dropPoisonGeneratingFlags ( )
inline

Drop all poison-generating flags.

Definition at line 758 of file VPlan.h.

References DisjointFlags, ExactFlags, GEPFlags, llvm::GEPNoWrapFlags::none(), NonNegFlags, TruncFlags, and WrapFlags.

◆ flagsValidForOpcode()

◆ getFastMathFlags()

◆ getGEPNoWrapFlags()

◆ 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 857 of file VPlan.h.

Referenced by llvm::VPScalarIVStepsRecipe::clone(), 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 864 of file VPlan.h.

◆ hasNoSignedWrap()

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

Definition at line 883 of file VPlan.h.

References llvm_unreachable, TruncFlags, and WrapFlags.

◆ hasNoUnsignedWrap()

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

Definition at line 872 of file VPlan.h.

References llvm_unreachable, TruncFlags, and WrapFlags.

◆ hasPredicate()

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

Returns true if the recipe has a comparison predicate.

Definition at line 852 of file VPlan.h.

Referenced by scalarizeInstruction().

◆ intersectFlags()

void VPIRFlags::intersectFlags ( const VPIRFlags & Other)

Only keep flags also present in Other.

Other must have the same OpType as the current object.

Definition at line 314 of file VPlanRecipes.cpp.

References AllFlags, assert(), CmpPredicate, DisjointFlags, ExactFlags, FCmpFlags, GEPFlags, NonNegFlags, TruncFlags, VPIRFlags(), and WrapFlags.

◆ isDisjoint()

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

Definition at line 894 of file VPlan.h.

References assert(), and DisjointFlags.

◆ isNonNeg()

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

Definition at line 866 of file VPlan.h.

References assert(), and NonNegFlags.

◆ printFlags()

◆ setPredicate()

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

Definition at line 840 of file VPlan.h.

References assert(), CmpPredicate, and FCmpFlags.

◆ transferFlags()

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

Definition at line 748 of file VPlan.h.

References AllFlags, and VPIRFlags().

Member Data Documentation

◆ AllFlags

unsigned llvm::VPIRFlags::AllFlags

Definition at line 681 of file VPlan.h.

Referenced by intersectFlags(), transferFlags(), VPIRFlags(), and VPIRFlags().

◆ CmpPredicate

CmpInst::Predicate llvm::VPIRFlags::CmpPredicate

Definition at line 672 of file VPlan.h.

Referenced by getPredicate(), intersectFlags(), setPredicate(), VPIRFlags(), and VPIRFlags().

◆ DisjointFlags

DisjointFlagsTy llvm::VPIRFlags::DisjointFlags

◆ ExactFlags

ExactFlagsTy llvm::VPIRFlags::ExactFlags

Definition at line 676 of file VPlan.h.

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

◆ FCmpFlags

FCmpFlagsTy llvm::VPIRFlags::FCmpFlags

Definition at line 680 of file VPlan.h.

Referenced by getPredicate(), intersectFlags(), setPredicate(), VPIRFlags(), and VPIRFlags().

◆ FMFs

◆ GEPFlags

◆ NonNegFlags

NonNegFlagsTy llvm::VPIRFlags::NonNegFlags

◆ TruncFlags

◆ WrapFlags


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