Go to file
rossberg@chromium.org 02649f08bc 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
2013-07-19 12:54:27 +00:00
benchmarks More fixes for V8 benchmark version 7. 2012-03-15 17:13:50 +00:00
build Fix gyp_v8 to work with use_system_icu=1 2013-07-15 15:41:21 +00:00
include Deprecate some debugger methods 2013-07-19 09:38:18 +00:00
preparser Factor out toolset definitions in a separate gypi file 2013-07-10 11:15:16 +00:00
samples Only depend on icudata on windows. 2013-07-11 11:01:00 +00:00
src Implement simple effect typing for variables 2013-07-19 12:54:27 +00:00
test Add support for explicit octal and binary integer literals 2013-07-19 09:57:35 +00:00
tools Implement simple effect typing for variables 2013-07-19 12:54:27 +00:00
.gitignore Migrate blink tests that are not relevant to blink into a new V8 test suite called 'blink'. 2013-06-26 14:23:30 +00:00
AUTHORS Add methods to allow resuming execution after calling TerminateExecution(). 2013-04-22 15:01:45 +00:00
ChangeLog Prepare push to trunk. Now working on version 3.20.7. 2013-07-17 08:19:34 +00:00
DEPS Roll ICU to 210659 2013-07-11 11:34:46 +00:00
LICENSE Update LICENSE file 2012-01-03 16:38:42 +00:00
LICENSE.strongtalk Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.v8 Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.valgrind Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
Makefile Enable building for android on x86_64 machines. 2013-07-17 08:37:48 +00:00
Makefile.android Enable building for android on x86_64 machines. 2013-07-17 08:37:48 +00:00
Makefile.nacl Fix gyp_v8 to work with use_system_icu=1 2013-07-15 15:41:21 +00:00
OWNERS Add myself to OWNERS. 2013-06-27 11:37:47 +00:00
PRESUBMIT.py Keep two empty lines between declarations for cpp files 2013-07-05 09:52:11 +00:00