LLVM 22.0.0git
ReachabilityQueryInfo< ToTy > Struct Template Reference

----------------—AAIntraFnReachability Attribute-----------------------— More...

Public Types

enum class  Reachable { No , Yes }

Public Member Functions

unsigned computeHashValue () const
 ReachabilityQueryInfo (const Instruction *From, const ToTy *To)
 ReachabilityQueryInfo (Attributor &A, const Instruction &From, const ToTy &To, const AA::InstExclusionSetTy *ES, bool MakeUnique)
 Constructor replacement to ensure unique and stable sets are used for the cache.
 ReachabilityQueryInfo (const ReachabilityQueryInfo &RQI)

Public Attributes

const InstructionFrom = nullptr
 Start here,.
const ToTy * To = nullptr
 reach this place,
const AA::InstExclusionSetTyExclusionSet = nullptr
 without going through any of these instructions,
Reachable Result = Reachable::No
 and remember if it worked:
unsigned Hash = 0
 Precomputed hash for this RQI.

Detailed Description

template<typename ToTy>
struct ReachabilityQueryInfo< ToTy >

----------------—AAIntraFnReachability Attribute-----------------------—

All information associated with a reachability query. This boilerplate code is used by both AAIntraFnReachability and AAInterFnReachability, with different ToTy values.

Definition at line 3412 of file AttributorAttributes.cpp.

Member Enumeration Documentation

◆ Reachable

template<typename ToTy>
enum class ReachabilityQueryInfo::Reachable
strong
Enumerator
No 
Yes 

Definition at line 3413 of file AttributorAttributes.cpp.

Constructor & Destructor Documentation

◆ ReachabilityQueryInfo() [1/3]

template<typename ToTy>
ReachabilityQueryInfo< ToTy >::ReachabilityQueryInfo ( const Instruction * From,
const ToTy * To )
inline

Definition at line 3439 of file AttributorAttributes.cpp.

References From, and To.

Referenced by computeHashValue(), and ReachabilityQueryInfo().

◆ ReachabilityQueryInfo() [2/3]

template<typename ToTy>
ReachabilityQueryInfo< ToTy >::ReachabilityQueryInfo ( Attributor & A,
const Instruction & From,
const ToTy & To,
const AA::InstExclusionSetTy * ES,
bool MakeUnique )
inline

Constructor replacement to ensure unique and stable sets are used for the cache.

Definition at line 3444 of file AttributorAttributes.cpp.

References A(), llvm::SmallPtrSetImplBase::empty(), ExclusionSet, From, if(), and To.

◆ ReachabilityQueryInfo() [3/3]

template<typename ToTy>
ReachabilityQueryInfo< ToTy >::ReachabilityQueryInfo ( const ReachabilityQueryInfo< ToTy > & RQI)
inline

Definition at line 3455 of file AttributorAttributes.cpp.

References ExclusionSet, From, ReachabilityQueryInfo(), and To.

Member Function Documentation

◆ computeHashValue()

template<typename ToTy>
unsigned ReachabilityQueryInfo< ToTy >::computeHashValue ( ) const
inline

Member Data Documentation

◆ ExclusionSet

template<typename ToTy>
const AA::InstExclusionSetTy* ReachabilityQueryInfo< ToTy >::ExclusionSet = nullptr

without going through any of these instructions,

Definition at line 3423 of file AttributorAttributes.cpp.

Referenced by computeHashValue(), ReachabilityQueryInfo(), and ReachabilityQueryInfo().

◆ From

template<typename ToTy>
const Instruction* ReachabilityQueryInfo< ToTy >::From = nullptr

◆ Hash

template<typename ToTy>
unsigned ReachabilityQueryInfo< ToTy >::Hash = 0

Precomputed hash for this RQI.

Definition at line 3428 of file AttributorAttributes.cpp.

Referenced by computeHashValue(), and llvm::DenseMapInfo< ReachabilityQueryInfo< ToTy > * >::getHashValue().

◆ Result

template<typename ToTy>
Reachable ReachabilityQueryInfo< ToTy >::Result = Reachable::No

and remember if it worked:

Definition at line 3425 of file AttributorAttributes.cpp.

◆ To

template<typename ToTy>
const ToTy* ReachabilityQueryInfo< ToTy >::To = nullptr

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