struct GlobalValueSummary::GVFlags

Declaration

struct GlobalValueSummary::GVFlags { /* full declaration omitted */ };

Description

Group flags (Linkage, NotEligibleToImport, etc.) as a bitfield.

Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:295

Member Variables

public unsigned int Linkage
One use is to flag values that have local linkage types and need to have module identifier appended before placing into the combined index, to disambiguate from other values with the same name. In the future this will be used to update and optimize linkage types based on global summary-based analysis.
public unsigned int Visibility
Indicates the visibility.
public unsigned int NotEligibleToImport
Indicate if the global value cannot be imported (e.g. it cannot be renamed or references something that can't be renamed).
public unsigned int Live
In combined summary, indicate that the global value is live.
public unsigned int DSOLocal
Indicates that the linker resolved the symbol to a definition from within the same linkage unit.
public unsigned int CanAutoHide
In the per-module summary, indicates that the global value is linkonce_odr and global unnamed addr (so eligible for auto-hiding via hidden visibility). In the combined summary, indicates that the prevailing linkonce_odr copy can be auto-hidden via hidden visibility when it is upgraded to weak_odr in the backend. This is legal when all copies are eligible for auto-hiding (i.e. all copies were linkonce_odr global unnamed addr. If any copy is not (e.g. it was originally weak_odr, we cannot auto-hide the prevailing copy as it means the symbol was externally visible.

Method Overview

  • public GVFlags(GlobalValue::LinkageTypes Linkage, GlobalValue::VisibilityTypes Visibility, bool NotEligibleToImport, bool Live, bool IsLocal, bool CanAutoHide)

Methods

ΒΆGVFlags(GlobalValue::LinkageTypes Linkage,
        GlobalValue::VisibilityTypes Visibility,
        bool NotEligibleToImport,
        bool Live,
        bool IsLocal,
        bool CanAutoHide)

Description

Convenience Constructors

Declared at: llvm/include/llvm/IR/ModuleSummaryIndex.h:335

Parameters

GlobalValue::LinkageTypes Linkage
GlobalValue::VisibilityTypes Visibility
bool NotEligibleToImport
bool Live
bool IsLocal
bool CanAutoHide