diff options
author | José Valim <[email protected]> | 2016-06-01 18:48:23 +0200 |
---|---|---|
committer | José Valim <[email protected]> | 2017-07-06 17:07:24 +0200 |
commit | d4a27e98cb1c11340b296004d784b15f80d015e9 (patch) | |
tree | 3a755e3ab90d8368ac2c653567dddfa55efc421e /bootstrap | |
parent | f52748254f17ba42e344798e8c787a1e3361fa33 (diff) | |
download | otp-d4a27e98cb1c11340b296004d784b15f80d015e9.tar.gz otp-d4a27e98cb1c11340b296004d784b15f80d015e9.tar.bz2 otp-d4a27e98cb1c11340b296004d784b15f80d015e9.zip |
Introduce a new core pass called sys_core_alias
The goal of this pass is to find values that are built from
patterns and generate aliases for those values to remove
pressure from the GC. For example, this code:
example({ok, Val}) ->
{ok, Val}.
shall become:
example({ok, Val} = Tuple) ->
Tuple.
Currently this pass aliases tuple and cons nodes made of literals,
variables and other cons. The tuple/cons may appear anywhere in the
pattern and it will be aliased if used later on.
Notice a tuple/cons made only of literals is not aliased as it may
be part of the literal pool.
Diffstat (limited to 'bootstrap')
-rw-r--r-- | bootstrap/lib/compiler/ebin/compiler.app | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/bootstrap/lib/compiler/ebin/compiler.app b/bootstrap/lib/compiler/ebin/compiler.app index 9c166b13e3..76858e0e7d 100644 --- a/bootstrap/lib/compiler/ebin/compiler.app +++ b/bootstrap/lib/compiler/ebin/compiler.app @@ -58,6 +58,7 @@ core_lib, erl_bifs, rec_env, + sys_core_alias, sys_core_bsm, sys_core_dsetel, sys_core_fold, |