enum FunctionModRefBehavior

Description

Summary of how a function affects memory in the program. Loads from constant globals are not considered memory accesses for this interface. Also, functions may freely modify stack space local to their invocation without having to report it through these interfaces.

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

Enumerators

NameValueComment
FMRB_DoesNotAccessMemory4This function does not perform any non-local loads or stores to memory.This property corresponds to the GCC 'const' attribute. This property corresponds to the LLVM IR 'readnone' attribute. This property corresponds to the IntrNoMem LLVM intrinsic flag.
FMRB_OnlyReadsArgumentPointees13The only memory references in this function (if it has any) are non-volatile loads from objects pointed to by its pointer-typed arguments, with arbitrary offsets.This property corresponds to the combination of the IntrReadMem and IntrArgMemOnly LLVM intrinsic flags.
FMRB_OnlyWritesArgumentPointees14The only memory references in this function (if it has any) are non-volatile stores from objects pointed to by its pointer-typed arguments, with arbitrary offsets.This property corresponds to the combination of the IntrWriteMem and IntrArgMemOnly LLVM intrinsic flags.
FMRB_OnlyAccessesArgumentPointees15The only memory references in this function (if it has any) are non-volatile loads and stores from objects pointed to by its pointer-typed arguments, with arbitrary offsets.This property corresponds to the IntrArgMemOnly LLVM intrinsic flag.
FMRB_OnlyReadsInaccessibleMem21The only memory references in this function (if it has any) are reads of memory that is otherwise inaccessible via LLVM IR.This property corresponds to the LLVM IR inaccessiblememonly attribute.
FMRB_OnlyWritesInaccessibleMem22The only memory references in this function (if it has any) are writes to memory that is otherwise inaccessible via LLVM IR.This property corresponds to the LLVM IR inaccessiblememonly attribute.
FMRB_OnlyAccessesInaccessibleMem23The only memory references in this function (if it has any) are references of memory that is otherwise inaccessible via LLVM IR.This property corresponds to the LLVM IR inaccessiblememonly attribute.
FMRB_OnlyReadsInaccessibleOrArgMem29The function may perform non-volatile loads from objects pointed to by its pointer-typed arguments, with arbitrary offsets, and it may also perform loads of memory that is otherwise inaccessible via LLVM IR.This property corresponds to the LLVM IR inaccessiblemem_or_argmemonly attribute.
FMRB_OnlyWritesInaccessibleOrArgMem30The function may perform non-volatile stores to objects pointed to by its pointer-typed arguments, with arbitrary offsets, and it may also perform stores of memory that is otherwise inaccessible via LLVM IR.This property corresponds to the LLVM IR inaccessiblemem_or_argmemonly attribute.
FMRB_OnlyAccessesInaccessibleOrArgMem31The function may perform non-volatile loads and stores of objects pointed to by its pointer-typed arguments, with arbitrary offsets, and it may also perform loads and stores of memory that is otherwise inaccessible via LLVM IR.This property corresponds to the LLVM IR inaccessiblemem_or_argmemonly attribute.
FMRB_OnlyReadsMemory61This function does not perform any non-local stores or volatile loads, but may read from any memory location.This property corresponds to the GCC 'pure' attribute. This property corresponds to the LLVM IR 'readonly' attribute. This property corresponds to the IntrReadMem LLVM intrinsic flag.
FMRB_OnlyWritesMemory62This function does not perform any non-local stores or volatile loads, but may read from any memory location.This property corresponds to the GCC 'pure' attribute. This property corresponds to the LLVM IR 'readonly' attribute. This property corresponds to the IntrReadMem LLVM intrinsic flag.
FMRB_UnknownModRefBehavior63This indicates that the function could not be classified into one of the behaviors above.