LLVM 23.0.0git
llvm::SCEVUseT< SCEVPtrT > Struct Template Reference

#include "llvm/Analysis/ScalarEvolution.h"

Inheritance diagram for llvm::SCEVUseT< SCEVPtrT >:
[legend]

Public Types

using Base = PointerIntPair<SCEVPtrT, 2>

Public Member Functions

 SCEVUseT ()
 SCEVUseT (SCEVPtrT S)
 SCEVUseT (SCEVPtrT S, SCEVNoWrapFlags Flags)
 Construct with NoWrapFlags; only NUW/NSW are encoded, NW is dropped.
template<typename OtherPtrT, typename = std::enable_if_t< std::is_convertible_v<OtherPtrT, SCEVPtrT>>>
 SCEVUseT (const SCEVUseT< OtherPtrT > &Other)
 operator SCEVPtrT () const
SCEVPtrT operator-> () const
bool isCanonical () const
 Returns true if the SCEVUse is canonical, i.e.
const SCEVgetCanonical () const
 Return the canonical SCEV for this SCEVUse.
SCEVNoWrapFlags getNoWrapFlags (SCEVNoWrapFlags Mask=SCEVNoWrapFlags::NoWrapMask) const
 Return the no-wrap flags for this SCEVUse, which is the union of the use-specific flags and the underlying SCEV's flags, masked by Mask.
SCEVNoWrapFlags getUseNoWrapFlags () const
 Return only the use-specific no-wrap flags (NUW/NSW) without the underlying SCEV's flags.
bool operator== (const SCEVUseT &RHS) const
bool operator!= (const SCEVUseT &RHS) const
bool operator> (const SCEVUseT &RHS) const
bool operator== (const SCEV *RHS) const
bool operator!= (const SCEV *RHS) const
void print (raw_ostream &OS) const
 Print out the internal representation of this scalar to the specified stream.
void dump () const
 This method is used for debugging.
const SCEVgetCanonical () const
void * getOpaqueValue () const
SCEVPtrT getPointer () const

Friends

struct PointerLikeTypeTraits< SCEVUseT >

Detailed Description

template<typename SCEVPtrT = const SCEV *>
struct llvm::SCEVUseT< SCEVPtrT >

Definition at line 118 of file ScalarEvolution.h.

Member Typedef Documentation

◆ Base

template<typename SCEVPtrT = const SCEV *>
using llvm::SCEVUseT< SCEVPtrT >::Base = PointerIntPair<SCEVPtrT, 2>

Definition at line 119 of file ScalarEvolution.h.

Constructor & Destructor Documentation

◆ SCEVUseT() [1/4]

template<typename SCEVPtrT = const SCEV *>
llvm::SCEVUseT< SCEVPtrT >::SCEVUseT ( )
inline

Definition at line 123 of file ScalarEvolution.h.

◆ SCEVUseT() [2/4]

template<typename SCEVPtrT = const SCEV *>
llvm::SCEVUseT< SCEVPtrT >::SCEVUseT ( SCEVPtrT S)
inline

Definition at line 124 of file ScalarEvolution.h.

◆ SCEVUseT() [3/4]

template<typename SCEVPtrT = const SCEV *>
llvm::SCEVUseT< SCEVPtrT >::SCEVUseT ( SCEVPtrT S,
SCEVNoWrapFlags Flags )
inline

Construct with NoWrapFlags; only NUW/NSW are encoded, NW is dropped.

Definition at line 126 of file ScalarEvolution.h.

◆ SCEVUseT() [4/4]

template<typename SCEVPtrT = const SCEV *>
template<typename OtherPtrT, typename = std::enable_if_t< std::is_convertible_v<OtherPtrT, SCEVPtrT>>>
llvm::SCEVUseT< SCEVPtrT >::SCEVUseT ( const SCEVUseT< OtherPtrT > & Other)
inline

Definition at line 130 of file ScalarEvolution.h.

Member Function Documentation

◆ dump()

template<typename SCEVPtrT>
LLVM_DUMP_METHOD void llvm::SCEVUseT< SCEVPtrT >::dump ( ) const

This method is used for debugging.

Definition at line 2742 of file ScalarEvolution.h.

References llvm::dbgs(), LLVM_DUMP_METHOD, and llvm::print().

◆ getCanonical() [1/2]

template<typename SCEVPtrT = const SCEV *>
const SCEV * llvm::SCEVUseT< SCEVPtrT >::getCanonical ( ) const

Return the canonical SCEV for this SCEVUse.

Referenced by llvm::SCEVUseT< const SCEV * >::isCanonical().

◆ getCanonical() [2/2]

const SCEV * llvm::SCEVUseT< constSCEV * >::getCanonical ( ) const
inline

Definition at line 2726 of file ScalarEvolution.h.

◆ getNoWrapFlags()

template<typename SCEVPtrT>
SCEVNoWrapFlags llvm::SCEVUseT< SCEVPtrT >::getNoWrapFlags ( SCEVNoWrapFlags Mask = SCEVNoWrapFlags::NoWrapMask) const
inline

Return the no-wrap flags for this SCEVUse, which is the union of the use-specific flags and the underlying SCEV's flags, masked by Mask.

Definition at line 1055 of file ScalarEvolutionExpressions.h.

References llvm::dyn_cast(), llvm::FlagAnyWrap, llvm::PointerIntPair< SCEVPtrT, 2 >::getPointer(), and getUseNoWrapFlags().

◆ getOpaqueValue()

template<typename SCEVPtrT = const SCEV *>
void * llvm::PointerIntPair< SCEVPtrT, IntBits, unsigned, PointerLikeTypeTraits<SCEVPtrT>, PointerIntPairInfo<SCEVPtrT, IntBits, PointerLikeTypeTraits<SCEVPtrT>> >::getOpaqueValue ( ) const
inline

◆ getPointer()

template<typename SCEVPtrT = const SCEV *>
SCEVPtrT llvm::PointerIntPair< SCEVPtrT, IntBits, unsigned, PointerLikeTypeTraits<SCEVPtrT>, PointerIntPairInfo<SCEVPtrT, IntBits, PointerLikeTypeTraits<SCEVPtrT>> >::getPointer ( ) const
inline

◆ getUseNoWrapFlags()

template<typename SCEVPtrT = const SCEV *>
SCEVNoWrapFlags llvm::SCEVUseT< SCEVPtrT >::getUseNoWrapFlags ( ) const
inline

Return only the use-specific no-wrap flags (NUW/NSW) without the underlying SCEV's flags.

Definition at line 150 of file ScalarEvolution.h.

Referenced by getNoWrapFlags(), and print().

◆ isCanonical()

template<typename SCEVPtrT = const SCEV *>
bool llvm::SCEVUseT< SCEVPtrT >::isCanonical ( ) const
inline

Returns true if the SCEVUse is canonical, i.e.

no SCEVUse flags set in any operands.

Definition at line 138 of file ScalarEvolution.h.

◆ operator SCEVPtrT()

template<typename SCEVPtrT = const SCEV *>
llvm::SCEVUseT< SCEVPtrT >::operator SCEVPtrT ( ) const
inline

Definition at line 133 of file ScalarEvolution.h.

◆ operator!=() [1/2]

template<typename SCEVPtrT = const SCEV *>
bool llvm::SCEVUseT< SCEVPtrT >::operator!= ( const SCEV * RHS) const
inline

Definition at line 167 of file ScalarEvolution.h.

◆ operator!=() [2/2]

template<typename SCEVPtrT = const SCEV *>
bool llvm::SCEVUseT< SCEVPtrT >::operator!= ( const SCEVUseT< SCEVPtrT > & RHS) const
inline

Definition at line 162 of file ScalarEvolution.h.

◆ operator->()

template<typename SCEVPtrT = const SCEV *>
SCEVPtrT llvm::SCEVUseT< SCEVPtrT >::operator-> ( ) const
inline

Definition at line 134 of file ScalarEvolution.h.

◆ operator==() [1/2]

template<typename SCEVPtrT = const SCEV *>
bool llvm::SCEVUseT< SCEVPtrT >::operator== ( const SCEV * RHS) const
inline

Definition at line 166 of file ScalarEvolution.h.

◆ operator==() [2/2]

template<typename SCEVPtrT = const SCEV *>
bool llvm::SCEVUseT< SCEVPtrT >::operator== ( const SCEVUseT< SCEVPtrT > & RHS) const
inline

Definition at line 158 of file ScalarEvolution.h.

◆ operator>()

template<typename SCEVPtrT = const SCEV *>
bool llvm::SCEVUseT< SCEVPtrT >::operator> ( const SCEVUseT< SCEVPtrT > & RHS) const
inline

Definition at line 164 of file ScalarEvolution.h.

◆ print()

template<typename SCEVPtrT>
void llvm::SCEVUseT< SCEVPtrT >::print ( raw_ostream & OS) const

Print out the internal representation of this scalar to the specified stream.

This should really only be used for debugging purposes.

Definition at line 2731 of file ScalarEvolution.h.

References llvm::SCEV::FlagNSW, llvm::SCEV::FlagNUW, getPointer(), getUseNoWrapFlags(), and llvm::Value::print().

◆ PointerLikeTypeTraits< SCEVUseT >

template<typename SCEVPtrT = const SCEV *>
friend struct PointerLikeTypeTraits< SCEVUseT >
friend

Definition at line 174 of file ScalarEvolution.h.


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