guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, master, updated. v2.1.0-37-g146c8e7


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, master, updated. v2.1.0-37-g146c8e7
Date: Fri, 16 May 2014 14:58:03 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=146c8e72a9ff4a1d38e3d5542587777ffe1d4f61

The branch, master has been updated
       via  146c8e72a9ff4a1d38e3d5542587777ffe1d4f61 (commit)
      from  e7f2fe1bb77f2949f94a786b38a899644d5800e1 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 146c8e72a9ff4a1d38e3d5542587777ffe1d4f61
Author: Andy Wingo <address@hidden>
Date:   Fri May 16 16:57:58 2014 +0200

    Update effects-analysis docstring.
    
    * module/language/cps/effects-analysis.scm: Update docs.

-----------------------------------------------------------------------

Summary of changes:
 module/language/cps/effects-analysis.scm |   32 +++++++++++++++---------------
 1 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/module/language/cps/effects-analysis.scm 
b/module/language/cps/effects-analysis.scm
index 5b85386..98b5757 100644
--- a/module/language/cps/effects-analysis.scm
+++ b/module/language/cps/effects-analysis.scm
@@ -18,24 +18,24 @@
 
 ;;; Commentary:
 ;;;
-;;; A helper module to compute the set of effects that an expression
-;;; depends on and causes.  This information is useful when writing
-;;; algorithms that move code around, while preserving the semantics of
-;;; an input program.
+;;; A helper module to compute the set of effects caused by an
+;;; expression.  This information is useful when writing algorithms that
+;;; move code around, while preserving the semantics of an input
+;;; program.
 ;;;
-;;; The effects set is represented by a bitfield, as a fixnum.  The set
-;;; of possible effects is modelled rather coarsely.  For example, a
-;;; "car" call modelled as depending on the &car effect, and causing a
-;;; &type-check effect.  If any intervening code sets the car of any
-;;; pair, that will block motion of the "car" call.
+;;; The effects set is represented as an integer with three parts.  The
+;;; low 4 bits indicate effects caused by an expression, as a bitfield.
+;;; The next 4 bits indicate the kind of memory accessed by the
+;;; expression, if it accesses mutable memory.  Finally the rest of the
+;;; bits indicate the field in the object being accessed, if known, or
+;;; -1 for unknown.
 ;;;
-;;; For each effect, two bits are reserved: one to indicate that an
-;;; expression depends on the effect, and the other to indicate that an
-;;; expression causes the effect.
-;;;
-;;; Since we have more bits in a fixnum on 64-bit systems, we can be
-;;; more precise without losing efficiency.  On a 32-bit system, some of
-;;; the more precise effects map to fewer bits.
+;;; In this way we embed a coarse type-based alias analysis in the
+;;; effects analysis.  For example, a "car" call is modelled as causing
+;;; a read to field 0 on a &pair, and causing a &type-check effect.  If
+;;; any intervening code sets the car of any pair, that will block
+;;; motion of the "car" call, because any write to field 0 of a pair is
+;;; seen by effects analysis as being a write to field 0 of all pairs.
 ;;;
 ;;; Code:
 


hooks/post-receive
-- 
GNU Guile



reply via email to

[Prev in Thread] Current Thread [Next in Thread]