ModRef Function Effect Specifications
The include/Annotation/ModRef/ headers define the external mod/ref summary
format used to model library functions for alias and checker pipelines.
Location: include/Annotation/ModRef/
Main APIs:
ModRefEffectandModRefEffectSummarydescribe a function’s memory reads and writes.ExternalModRefTableloads and stores per-function summaries.ExternalModRefTablePrinteremits human-readable tables for debugging.
What it models:
Direct-memory versus reachable-memory effects.
Argument and return positions through
APosition.External summaries for functions whose bodies are unavailable.
Used by:
Alias analyses that need library-side memory effects.
Bug-finding and verification passes that need consistent side-effect models.
Modeling guidance
Use a direct-memory effect for the position itself and a reachable-memory effect when the function accesses memory through that position. Summaries are particularly important for declarations without an LLVM body: without one, a client must choose between an imprecise conservative model and skipping an effect it cannot justify. Keep shared library models in this format so alias, checker, and verification clients agree on call behavior.
See also Annotation Framework, Alias Specification Manager, and Alias Analysis Components.