class AliasSet

Declaration

class AliasSet : public ilist_node { /* full declaration omitted */ };

Description

An intrusive list node. A base class to enable membership in intrusive lists, including \a simple_ilist, \a iplist, and \a ilist. The first template parameter is the\a value_type for the list. An ilist node can be configured with compile-time options to change behaviour and/or add API. By default, an \a ilist_node knows whether it is the list sentinel (an instance of \a ilist_sentinel) if and only if LLVM_ENABLE_ABI_BREAKING_CHECKS. The function \a isKnownSentinel() always returns \c false tracking is off. Sentinel tracking steals a bit from the "prev" link, which adds a mask operation when decrementing an iterator, but enables bug-finding assertions in \a ilist_iterator. To turn sentinel tracking on all the time, pass in the ilist_sentinel_tracking <true > template parameter. This also enables the \a isSentinel() function. The same option must be passed to the intrusive list. (ilist_sentinel_tracking <false > turns sentinel tracking off all the time.) A type can inherit from ilist_node multiple times by passing in different\a ilist_tag options. This allows a single instance to be inserted into multiple lists simultaneously, where each list is given the same tag. struct A {}; struct B {}; struct N : ilist_node <N , ilist_tag <A >>, ilist_node <N , ilist_tag <B >> {}; void foo() { simple_ilist <N , ilist_tag <A >> ListA; simple_ilist <N , ilist_tag <B >> ListB; N N1; ListA.push_back(N1); ListB.push_back(N1); }\endexample See \a is_valid_option for steps on adding a new option.

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:48

Inherits from: ilist_node

Method Overview

  • public AliasSet(const llvm::AliasSet &)
  • public llvm::AliasResult aliasesPointer(const llvm::Value * Ptr, llvm::LocationSize Size, const llvm::AAMDNodes & AAInfo, llvm::AliasAnalysis & AA) const
  • public bool aliasesUnknownInst(const llvm::Instruction * Inst, llvm::AliasAnalysis & AA) const
  • public llvm::AliasSet::iterator begin() const
  • public void dump() const
  • public bool empty() const
  • public llvm::AliasSet::iterator end() const
  • public llvm::Instruction * getUniqueInstruction()
  • public bool isForwardingAliasSet() const
  • public bool isMayAlias() const
  • public bool isMod() const
  • public bool isMustAlias() const
  • public bool isRef() const
  • public void mergeSetIn(llvm::AliasSet & AS, llvm::AliasSetTracker & AST)
  • public void print(llvm::raw_ostream & OS) const
  • public unsigned int size()

Methods

AliasSet(const llvm::AliasSet&)

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:204

Parameters

const llvm::AliasSet&

llvm::AliasResult aliasesPointer(
    const llvm::Value* Ptr,
    llvm::LocationSize Size,
    const llvm::AAMDNodes& AAInfo,
    llvm::AliasAnalysis& AA) const

Description

If the specified pointer "may" (or must) alias one of the members in the set return the appropriate AliasResult. Otherwise return NoAlias.

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:318

Parameters

const llvm::Value* Ptr
llvm::LocationSize Size
const llvm::AAMDNodes& AAInfo
llvm::AliasAnalysis& AA

bool aliasesUnknownInst(
    const llvm::Instruction* Inst,
    llvm::AliasAnalysis& AA) const

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:320

Parameters

const llvm::Instruction* Inst
llvm::AliasAnalysis& AA

llvm::AliasSet::iterator begin() const

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:223

void dump() const

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:236

bool empty() const

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:225

llvm::AliasSet::iterator end() const

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:224

llvm::Instruction* getUniqueInstruction()

Description

If this alias set is known to contain a single instruction and *only* a single unique instruction, return it. Otherwise, return nullptr.

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:233

bool isForwardingAliasSet() const

Description

Return true if this alias set should be ignored as part of the AliasSetTracker object.

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:215

bool isMayAlias() const

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:211

bool isMod() const

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:209

bool isMustAlias() const

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:210

bool isRef() const

Description

Accessors...

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:208

void mergeSetIn(llvm::AliasSet& AS,
                llvm::AliasSetTracker& AST)

Description

Merge the specified alias set into this alias set.

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:218

Parameters

llvm::AliasSet& AS
llvm::AliasSetTracker& AST

void print(llvm::raw_ostream& OS) const

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:235

Parameters

llvm::raw_ostream& OS

unsigned int size()

Declared at: llvm/include/llvm/Analysis/AliasSetTracker.h:229