Reviewers: Jakob, titzer,
Description:
Implement simple effect typing for variables. For that, we maintain
an abstract store typing of all variables with LOCAL location
(i.e., those that do not escape the function's own scope). We treat
assignments as sequential effects that modify this store.
When control flow branches, we have to compute the disjunction of
possible effects. To that end, we represent the store as a stack of
effect sets, such that we can cheaply push and pop "local" effects
when control flow has to branch.
In cases of non-local control transfer from an unknown source, we
currently erase all knowledge about the store.
The 'switch' statement is still to come.
For a formulation of the typing rules, see:
https://docs.google.com/a/google.com/file/d/0B3wuXSv9YKuKeUNkVXZDemZ0Z1E
;)
[email protected], [email protected]
BUG=
Please review this at https://codereview.chromium.org/19054006/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/ast.h
M src/splay-tree-inl.h
M src/splay-tree.h
M src/types.h
M src/typing.h
M src/typing.cc
M src/zone-inl.h
M src/zone.h
M tools/gyp/v8.gyp
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.