class AAQueryInfo

Declaration

class AAQueryInfo { /* full declaration omitted */ };

Description

This class stores info we want to provide to or retain within an alias query. By default, the root query is stateless and starts with a freshly constructed info object. Specific alias analyses can use this query info to store per-query state that is important for recursive or nested queries to avoid recomputing. To enable preserving this state across multiple queries where safe (due to the IR not changing), use a `BatchAAResults` wrapper. The information stored in an `AAQueryInfo` is currently limitted to the caches used by BasicAA, but can further be extended to fit other AA needs.

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:462

Member Variables

public llvm::AAQueryInfo::AliasCacheT AliasCache
public llvm::CaptureInfo* CI
public unsigned int Depth = 0
Query depth used to distinguish recursive queries.
public int NumAssumptionUses = 0
How many active NoAlias assumption uses there are.
public SmallVector<AAQueryInfo::LocPair, 4> AssumptionBasedResults
Location pairs for which an assumption based result is currently stored. Used to remove all potentially incorrect results from the cache if an assumption is disproven.

Method Overview

Methods

AAQueryInfo(llvm::CaptureInfo* CI)

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:489

Parameters

llvm::CaptureInfo* CI

llvm::AAQueryInfo withEmptyCache()

Description

Create a new AAQueryInfo based on this one, but with the cache cleared. This is used for recursive queries across phis, where cache results may not be valid.

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:494