aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/rtl/hipe_rtl_primops.erl
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2016-09-29 17:38:54 +0200
committerSverker Eriksson <[email protected]>2016-10-14 14:29:16 +0200
commit870d49f0f8d383e62ea231700089933c4cf8fe2a (patch)
tree0f6076b91cff9b43db4964a7cff537f5e443177b /lib/hipe/rtl/hipe_rtl_primops.erl
parente77d7a8417368617c4c228af9556a7f6a8f3e84c (diff)
downloadotp-870d49f0f8d383e62ea231700089933c4cf8fe2a.tar.gz
otp-870d49f0f8d383e62ea231700089933c4cf8fe2a.tar.bz2
otp-870d49f0f8d383e62ea231700089933c4cf8fe2a.zip
hipe,erts: Remove cached fun 'native_address'
Did not work with purge and made worse by new purge strategy. Did yield terrible performance when fun thing is created *before* fun code is loaded. Like when receiving not yet loaded fun from other node. The cached 'native_address' in ErlFunThing will not be updated leading to mode switch and error_handler being called for every call to the fun from native code.
Diffstat (limited to 'lib/hipe/rtl/hipe_rtl_primops.erl')
-rw-r--r--lib/hipe/rtl/hipe_rtl_primops.erl3
1 files changed, 0 insertions, 3 deletions
diff --git a/lib/hipe/rtl/hipe_rtl_primops.erl b/lib/hipe/rtl/hipe_rtl_primops.erl
index 835f489ec0..154c2a8c57 100644
--- a/lib/hipe/rtl/hipe_rtl_primops.erl
+++ b/lib/hipe/rtl/hipe_rtl_primops.erl
@@ -760,12 +760,9 @@ gen_fun_thing_skeleton(FunP, FunName={_Mod,_FunId,Arity}, NumFree,
%% And creates a fe (at load time).
FeVar = hipe_rtl:mk_new_reg(),
PidVar = hipe_rtl:mk_new_reg_gcsafe(),
- NativeVar = hipe_rtl:mk_new_reg(),
[hipe_rtl:mk_load_address(FeVar, {FunName, MagicNr, Index}, closure),
store_struct_field(FunP, ?EFT_FE, FeVar),
- load_struct_field(NativeVar, FeVar, ?EFE_NATIVE_ADDRESS),
- store_struct_field(FunP, ?EFT_NATIVE_ADDRESS, NativeVar),
store_struct_field(FunP, ?EFT_ARITY, hipe_rtl:mk_imm(Arity-NumFree)),