diff --git a/llvm/docs/LangRef.html b/llvm/docs/LangRef.html index 9ab62c03492f..7858e6373d33 100644 --- a/llvm/docs/LangRef.html +++ b/llvm/docs/LangRef.html @@ -48,6 +48,7 @@
  • Garbage Collector Names
  • Module-Level Inline Assembly
  • Data Layout
  • +
  • Pointer Aliasing Rules
  • Type System @@ -1243,6 +1244,54 @@ target datalayout = "layout specification" + +
    + Pointer Aliasing Rules +
    + +
    + +

    Any memory access must be done though a pointer value associated +with with address range of the memory access, otherwise the behavior +is undefined. Pointer values are associated with address ranges +according to the following rules:

    + + + +

    LLVM IR does not associate types with memory. The result type of a +load merely indicates the size and alignment of the memory from +which to load, as well as the interpretation of the value. The first +operand of a store similarly only indicates the size and +alignment of the store.

    + +

    Consequently, type-based alias analysis, aka TBAA, aka +-fstrict-aliasing, is not applicable to general unadorned +LLVM IR. Metadata may be used to encode +additional information which specialized optimization passes may use +to implement type-based alias analysis.

    + +
    +
    Type System