X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FAliasAnalysis.html;h=6663f0caa75fb1d7f1a4b49ca24c8225872677fa;hb=bb318c073e0442ad86aa499ed329058ebce9b4c7;hp=25a27f36e46f1c2f2acacd48e685d27356fe8483;hpb=05d5c9dc284275f13cde6aa6d1698d7ba83779dc;p=oota-llvm.git diff --git a/docs/AliasAnalysis.html b/docs/AliasAnalysis.html index 25a27f36e46..6663f0caa75 100644 --- a/docs/AliasAnalysis.html +++ b/docs/AliasAnalysis.html @@ -50,6 +50,7 @@ implementations +
  • Memory Dependence Analysis
  • @@ -70,12 +71,12 @@ memory. There are many different algorithms for alias analysis and many different ways of classifying them: flow-sensitive vs flow-insensitive, context-sensitive vs context-insensitive, field-sensitive vs field-insensitive, unification-based vs subset-based, etc. Traditionally, alias analyses respond -to a query with a Must, May, or No alias response, +to a query with a Must, May, or No alias response, indicating that two pointers always point to the same object, might point to the same object, or are known to never point to the same object.

    The LLVM AliasAnalysis +href="http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis class is the primary interface used by clients and implementations of alias analyses in the LLVM system. This class is the common interface between clients of alias analysis information and the implementations providing it, and is @@ -102,7 +103,7 @@ know.

    The AliasAnalysis +href="http://llvm.org/doxygen/classllvm_1_1AliasAnalysis.html">AliasAnalysis class defines the interface that the various alias analysis implementations should support. This class exports two important enums: AliasResult and ModRefResult which represent the result of an alias query or a @@ -755,6 +756,9 @@ field-sensitive" version of Steensgaard's algorithm using the Data Structure Analysis framework. This gives it substantially more precision than the standard algorithm while maintaining excellent analysis scalability.

    +

    Note that -steens-aa is available in the optional "poolalloc" +module, it is not part of the LLVM core.

    +
    @@ -775,6 +779,9 @@ queries, and can provide context-sensitive mod/ref information as well. The only major facility not implemented so far is support for must-alias information.

    +

    Note that -ds-aa is available in the optional "poolalloc" +module, it is not part of the LLVM core.

    +
    @@ -941,6 +948,24 @@ algorithm will have a lower number of may aliases).

    + +
    + Memory Dependence Analysis +
    + + +
    + +

    If you're just looking to be a client of alias analysis information, consider +using the Memory Dependence Analysis interface instead. MemDep is a lazy, +caching layer on top of alias analysis that is able to answer the question of +what preceding memory operations a given instruction depends on, either at an +intra- or inter-block level. Because of its laziness and caching +policy, using MemDep can be a significant performance win over accessing alias +analysis directly.

    + +
    +
    @@ -951,7 +976,7 @@ algorithm will have a lower number of may aliases).

    src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"> Chris Lattner
    - LLVM Compiler Infrastructure
    + LLVM Compiler Infrastructure
    Last modified: $Date$