struct AAInstanceInfo

Declaration

struct AAInstanceInfo : public StateWrapper { /* full declaration omitted */ };

Description

An abstract interface to track if a value leaves it's defining function instance. TODO: We should make it a ternary AA tracking uniqueness, and uniqueness wrt. the Attributor analysis separately.

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:3769

Inherits from: StateWrapper

Member Variables

public static const char ID
Unique ID (due to the unique address)

Method Overview

Methods

AAInstanceInfo(const llvm::IRPosition& IRP,
               llvm::Attributor& A)

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:3770

Parameters

const llvm::IRPosition& IRP
llvm::Attributor& A

static bool classof(
    const llvm::AbstractAttribute* AA)

Description

This function should return true if the type of the \p AA is AAInstanceInfo

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:3797

Parameters

const llvm::AbstractAttribute* AA

static llvm::AAInstanceInfo& createForPosition(
    const llvm::IRPosition& IRP,
    llvm::Attributor& A)

Description

Create an abstract attribute view for the position \p IRP.

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:3786

Parameters

const llvm::IRPosition& IRP
llvm::Attributor& A

const char* getIdAddr() const

Description

See AbstractAttribute::getIdAddr()

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:3793

const std::string getName() const

Description

See AbstractAttribute::getName()

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:3790

bool isAssumedUniqueForAnalysis() const

Description

Return true if we assume that the underlying value is unique in its scope wrt. the Attributor analysis. That means it might not be unique but we can still use pointer equality without risking to represent two instances with one `llvm::Value`.

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:3783

bool isKnownUniqueForAnalysis() const

Description

Return true if we know that the underlying value is unique in its scope wrt. the Attributor analysis. That means it might not be unique but we can still use pointer equality without risking to represent two instances with one `llvm::Value`.

Declared at: llvm/include/llvm/Transforms/IPO/Attributor.h:3777