llvm::IsConstantOffsetFromGlobal

Return true if C is a constant offset from a global.

Synopsis

Declared in <llvm/Analysis/ConstantFolding.h>

bool
IsConstantOffsetFromGlobal(
    Constant* C,
    GlobalValue*& GV,
    APInt& Offset,
    DataLayout const& DL,
    DSOLocalEquivalent** DSOEquiv = nullptr);

Description

Because of constantexprs, this function is recursive. If the global is part of a dso_local_equivalent constant, return it through DSOEquiv if it is provided.

Return Value

True if C is a constant offset from a global.

Parameters

NameDescription
CConstant to inspect for a global-plus-offset form.
GVSet to the base global value on success.
OffsetSet to the constant byte offset from GV on success.
DLData layout used for type sizes and pointer widths.
DSOEquivOptional out-parameter for a dso_local_equivalent wrapper.