aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
authorDmitry Antipov2014-06-08 19:06:03 +0400
committerDmitry Antipov2014-06-08 19:06:03 +0400
commit83f1450065c55a3e5dce5db0da737cb7a6a4d60c (patch)
tree92d118deaa0a9a24d48aa22353c5c413377267d7 /src/ChangeLog
parent36cf8493aff99b652b2ad8c9e4d55a18688e8484 (diff)
downloademacs-83f1450065c55a3e5dce5db0da737cb7a6a4d60c.tar.gz
emacs-83f1450065c55a3e5dce5db0da737cb7a6a4d60c.zip
Change object marking routines to minimize stack usage.
This change moves a few cold paths from mark_object to NO_INLINE functions and adjusts symbol marking loop. According to GCC 4.8.2 -Wstack-usage, this reduces mark_object's stack usage from 80 to 48 bytes on a 64-bit system. For a long byte-force-recompile runs, stack usage at the mark phase is reduced up to 28%. Surprisingly, it also gains up to 3% in speed (with default '-O2 -g3' flags). * alloc.c (mark_compiled, mark_localized_symbol): New functions, refactored out from ... (mark_object): ... adjusted user. Also mark symbols in a tight inner loop. (mark_face_cache): Add NO_INLINE.
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 4aada1d5279..2cdaf494aad 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,18 @@
12014-06-08 Dmitry Antipov <dmantipov@yandex.ru>
2
3 Change object marking routines to minimize stack usage.
4 This change moves a few cold paths from mark_object to NO_INLINE
5 functions and adjusts symbol marking loop. According to GCC 4.8.2
6 -Wstack-usage, this reduces mark_object's stack usage from 80 to
7 48 bytes on a 64-bit system. For a long byte-force-recompile runs,
8 stack usage at the mark phase is reduced up to 28%. Surprisingly,
9 it also gains up to 3% in speed (with default '-O2 -g3' flags).
10 * alloc.c (mark_compiled, mark_localized_symbol): New functions,
11 refactored out from ...
12 (mark_object): ... adjusted user. Also mark symbols in a tight
13 inner loop.
14 (mark_face_cache): Add NO_INLINE.
15
12014-06-08 Eli Zaretskii <eliz@gnu.org> 162014-06-08 Eli Zaretskii <eliz@gnu.org>
2 17
3 * sysdep.c (reset_sys_modes): Use cursorX, not curX, as the latter 18 * sysdep.c (reset_sys_modes): Use cursorX, not curX, as the latter