aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/sys
diff options
context:
space:
mode:
authorLukas Larsson <lukas.larsson@erlang-solutions.com>2015-12-08 17:41:12 +0100
committerLukas Larsson <lukas@erlang.org>2016-03-29 10:56:21 +0200
commitda9b3a0825a3243aecfd849e11d1e37e5ccc96af (patch)
tree52c2bf0be7181b1a084e948d2dc5b1c2715f5587 /erts/emulator/sys
parentcee5b753e8dbd294b2677f684c404d16dcfcd643 (diff)
downloadotp-da9b3a0825a3243aecfd849e11d1e37e5ccc96af.tar.gz
otp-da9b3a0825a3243aecfd849e11d1e37e5ccc96af.tar.bz2
otp-da9b3a0825a3243aecfd849e11d1e37e5ccc96af.zip
erts: inline tag_val_def
The tag_val_def function was called and multiple switch statements had to be traversed in term.c, and then a big switch in the calling code to branch on the term types. By inlining the switches are merged by the compiler and a lot fewer branches have to be taken. Benchmarks show that this increases performance of enc_term by as much as 10%.
Diffstat (limited to 'erts/emulator/sys')
-rw-r--r--erts/emulator/sys/win32/sys.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/erts/emulator/sys/win32/sys.c b/erts/emulator/sys/win32/sys.c
index ea7523ddc2..391bbd4cbc 100644
--- a/erts/emulator/sys/win32/sys.c
+++ b/erts/emulator/sys/win32/sys.c
@@ -3079,6 +3079,8 @@ erl_bin_write(buf, sz, max)
}
}
+#endif /* DEBUG */
+
void
erl_assert_error(const char* expr, const char* func, const char* file, int line)
{
@@ -3094,7 +3096,6 @@ erl_assert_error(const char* expr, const char* func, const char* file, int line)
DebugBreak();
}
-#endif /* DEBUG */
static void
check_supported_os_version(void)