aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_gc.c
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2016-07-26 10:19:31 +0200
committerBjörn-Egil Dahlberg <[email protected]>2016-08-01 10:58:59 +0200
commita2359927ca4e7c315e9849deec3375b1f2ae4170 (patch)
tree02858a93132a7da7acbd1487877259f63955445c /erts/emulator/beam/erl_gc.c
parent8d4560198239256587ccc55895eb8fe2b214e971 (diff)
downloadotp-a2359927ca4e7c315e9849deec3375b1f2ae4170.tar.gz
otp-a2359927ca4e7c315e9849deec3375b1f2ae4170.tar.bz2
otp-a2359927ca4e7c315e9849deec3375b1f2ae4170.zip
erts: Remove the need for copying of literals
* Literals are not copied between processes for messages or spawn Increases performance of message sent and processes spawned when literals are involved in messages or arguments.
Diffstat (limited to 'erts/emulator/beam/erl_gc.c')
-rw-r--r--erts/emulator/beam/erl_gc.c8
1 files changed, 0 insertions, 8 deletions
diff --git a/erts/emulator/beam/erl_gc.c b/erts/emulator/beam/erl_gc.c
index a224383493..22a7d430c8 100644
--- a/erts/emulator/beam/erl_gc.c
+++ b/erts/emulator/beam/erl_gc.c
@@ -2155,26 +2155,18 @@ copy_one_frag(Eterm** hpp, ErlOffHeap* off_heap,
*hp++ = val;
break;
case TAG_PRIMARY_LIST:
-#ifdef SHCOPY_SEND
if (erts_is_literal(val,list_val(val))) {
*hp++ = val;
} else {
*hp++ = offset_ptr(val, offs);
}
-#else
- *hp++ = offset_ptr(val, offs);
-#endif
break;
case TAG_PRIMARY_BOXED:
-#ifdef SHCOPY_SEND
if (erts_is_literal(val,boxed_val(val))) {
*hp++ = val;
} else {
*hp++ = offset_ptr(val, offs);
}
-#else
- *hp++ = offset_ptr(val, offs);
-#endif
break;
case TAG_PRIMARY_HEADER:
*hp++ = val;