From a9cf19670f50095eac7191a5360ed03839e87465 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 1 Mar 2010 19:24:17 +0000 Subject: remove anders-aa from mainline, it isn't maintained and is tantalyzing enough that people keep trying to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97483 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/Passes.html | 75 -------------------------------------------------------- 1 file changed, 75 deletions(-) (limited to 'docs/Passes.html') diff --git a/docs/Passes.html b/docs/Passes.html index bbf6b3d..a2bacf9 100644 --- a/docs/Passes.html +++ b/docs/Passes.html @@ -75,7 +75,6 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if ! ANALYSIS PASSES OptionName -aa-evalExhaustive Alias Analysis Precision Evaluator --anders-aaAndersen's Interprocedural Alias Analysis -basicaaBasic Alias Analysis (default AA impl) -basiccgBasic CallGraph Construction -codegenprepareOptimize for code generation @@ -204,80 +203,6 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- Andersen's Interprocedural Alias Analysis -
-
-

- This is an implementation of Andersen's interprocedural alias - analysis -

- -

- In pointer analysis terms, this is a subset-based, flow-insensitive, - field-sensitive, and context-insensitive algorithm pointer algorithm. -

- -

- This algorithm is implemented as three stages: -

- -
    -
  1. Object identification.
  2. -
  3. Inclusion constraint identification.
  4. -
  5. Offline constraint graph optimization.
  6. -
  7. Inclusion constraint solving.
  8. -
- -

- The object identification stage identifies all of the memory objects in the - program, which includes globals, heap allocated objects, and stack allocated - objects. -

- -

- The inclusion constraint identification stage finds all inclusion constraints - in the program by scanning the program, looking for pointer assignments and - other statements that effect the points-to graph. For a statement like - A = B, this statement is processed to - indicate that A can point to anything that B can point - to. Constraints can handle copies, loads, and stores, and address taking. -

- -

- The offline constraint graph optimization portion includes offline variable - substitution algorithms intended to computer pointer and location - equivalences. Pointer equivalences are those pointers that will have the - same points-to sets, and location equivalences are those variables that - always appear together in points-to sets. -

- -

- The inclusion constraint solving phase iteratively propagates the inclusion - constraints until a fixed point is reached. This is an O(n³) - algorithm. -

- -

- Function constraints are handled as if they were structs with X - fields. Thus, an access to argument X of function Y is - an access to node index getNode(Y) + X. - This representation allows handling of indirect calls without any issues. To - wit, an indirect call Y(a,b) is - equivalent to *(Y + 1) = a, *(Y + 2) = - b. The return node for a function F is always - located at getNode(F) + CallReturnPos. The arguments - start at getNode(F) + CallArgPos. -

- -

- Please keep in mind that the current andersen's pass has many known - problems and bugs. It should be considered "research quality". -

- -
- - -
Basic Alias Analysis (default AA impl)
-- cgit v1.1