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 ;) R=jkummerow@chromium.org BUG= Review URL: https://codereview.chromium.org/19054006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Showing
src/effects.h
0 → 100644
This diff is collapsed.
This diff is collapsed.
Please
register
or
sign in
to comment