diff options
author | Björn Gustavsson <[email protected]> | 2016-04-06 07:02:36 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2016-04-07 15:28:29 +0200 |
commit | 4f33597d52a0cef2e47b07578bc8a35a17c2f969 (patch) | |
tree | fb7dd1c6fe06bfe9f35ed128305b439cbdce5d17 | |
parent | 72bec464764c919cbfbd2db1c86cce227b2b9c42 (diff) | |
download | otp-4f33597d52a0cef2e47b07578bc8a35a17c2f969.tar.gz otp-4f33597d52a0cef2e47b07578bc8a35a17c2f969.tar.bz2 otp-4f33597d52a0cef2e47b07578bc8a35a17c2f969.zip |
Don't let the loader do the compiler's job
Optimizations that are possible to do by the compiler should be
done by the compiler and not by the loader.
If the compiler has done its job correctly, attempting to do the two
transformations only wastes time.
-rw-r--r-- | erts/emulator/beam/beam_load.c | 7 | ||||
-rw-r--r-- | erts/emulator/beam/ops.tab | 5 |
2 files changed, 0 insertions, 12 deletions
diff --git a/erts/emulator/beam/beam_load.c b/erts/emulator/beam/beam_load.c index bdb451a6fe..a98900460e 100644 --- a/erts/emulator/beam/beam_load.c +++ b/erts/emulator/beam/beam_load.c @@ -2736,13 +2736,6 @@ mixed_types(LoaderState* stp, GenOpArg Size, GenOpArg* Rest) } static int -same_label(LoaderState* stp, GenOpArg Target, GenOpArg Label) -{ - return Target.type = TAG_f && Label.type == TAG_u && - Target.val == Label.val; -} - -static int is_killed_apply(LoaderState* stp, GenOpArg Reg, GenOpArg Live) { return Reg.type == TAG_x && Live.type == TAG_u && diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab index 78000160e3..485c072540 100644 --- a/erts/emulator/beam/ops.tab +++ b/erts/emulator/beam/ops.tab @@ -181,11 +181,6 @@ i_jump_on_val_zero y f I i_jump_on_val x f I I i_jump_on_val y f I I -jump Target | label Lbl | same_label(Target, Lbl) => label Lbl - -is_ne_exact L1 S1 S2 | jump Fail | label L2 | same_label(L1, L2) => \ - is_eq_exact Fail S1 S2 | label L2 - %macro: get_list GetList -pack get_list x x x get_list x x y |