[pypy-svn] r18111 - pypy/dist/pypy/doc

arigo at codespeak.net arigo at codespeak.net
Mon Oct 3 18:19:34 CEST 2005


Author: arigo
Date: Mon Oct  3 18:19:31 2005
New Revision: 18111

Modified:
   pypy/dist/pypy/doc/draft-dynamic-language-translation.txt
Log:
Forgot phi operations in the rules.


Modified: pypy/dist/pypy/doc/draft-dynamic-language-translation.txt
==============================================================================
--- pypy/dist/pypy/doc/draft-dynamic-language-translation.txt	(original)
+++ pypy/dist/pypy/doc/draft-dynamic-language-translation.txt	Mon Oct  3 18:19:31 2005
@@ -856,10 +856,20 @@
 
 where ``\/`` is the union in the lattice *A*.
 
+The above operator is first of all used to propagate bindings of
+variables across links between basic block in the control flow graphs.
+For every link mapping a variable *x* in the source block to a variable
+*y* in the target block, we generate the following rule (``phi`` is not
+a normal operation in our `Flow graph model`_; we abuse the notation)::
+
+         y = phi(x)
+      ----------------------------------------
+               merge_into(x,y)
+
 The purpose of the equivalence relation *E* is to force two identified
-variables to keep the same binding, as defined by the following rule
-(which is actually a schema of rules, one each pair of variables
-*(x,y)*)::
+variables to keep the same binding.  The rationale for this is explained
+in the `Mutable objects`_ section below.  It is enforced by the
+following family of rules (one for each pair *(x,y)*)::
 
          (x~y) in E
       ----------------------------------------
@@ -1020,15 +1030,13 @@
     lookup_filter(NonPbcAnnotation, class) = NonPbcAnnotation
 
 
-XXX model and rules
-
-XXX constant propagation
-
 Prebuilt constants
 ~~~~~~~~~~~~~~~~~~
 
 XXX
 
+XXX constant arguments to operations
+
 Mutable objects
 ~~~~~~~~~~~~~~~
 



More information about the Pypy-commit mailing list