aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/beam_load.c
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-01-17 20:00:49 +0100
committerSverker Eriksson <[email protected]>2018-01-17 20:00:49 +0100
commitd57d91427e1ddb09cbf55cac2014a368fe717b46 (patch)
tree472f228c23ba7bb03f32a91d05c4e6f2e7e50960 /erts/emulator/beam/beam_load.c
parent19b7ccfe076d88a96b62f3222f38be31bb087df2 (diff)
downloadotp-d57d91427e1ddb09cbf55cac2014a368fe717b46.tar.gz
otp-d57d91427e1ddb09cbf55cac2014a368fe717b46.tar.bz2
otp-d57d91427e1ddb09cbf55cac2014a368fe717b46.zip
Fix slow hipe execution
particularly slow erlc when compiler is hipe compiled. hipe_unified_loader:load did not patch external call sites and instead caused a double hipe mode switch per call. hipe_unified_loader:load is only used for early modules first loaded as beam and by code:atomic_load and friends.
Diffstat (limited to 'erts/emulator/beam/beam_load.c')
-rw-r--r--erts/emulator/beam/beam_load.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/erts/emulator/beam/beam_load.c b/erts/emulator/beam/beam_load.c
index adf8779f11..5b1aa6f128 100644
--- a/erts/emulator/beam/beam_load.c
+++ b/erts/emulator/beam/beam_load.c
@@ -6621,6 +6621,8 @@ int erts_commit_hipe_patch_load(Eterm hipe_magic_bin)
hipe_stp->new_hipe_refs = NULL;
hipe_stp->new_hipe_sdesc = NULL;
+ hipe_redirect_to_module(modp);
+
return 1;
}