diff options
| author | Dmitry Antipov | 2014-06-08 19:06:03 +0400 |
|---|---|---|
| committer | Dmitry Antipov | 2014-06-08 19:06:03 +0400 |
| commit | 83f1450065c55a3e5dce5db0da737cb7a6a4d60c (patch) | |
| tree | 92d118deaa0a9a24d48aa22353c5c413377267d7 /src/ChangeLog | |
| parent | 36cf8493aff99b652b2ad8c9e4d55a18688e8484 (diff) | |
| download | emacs-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/ChangeLog | 15 |
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 @@ | |||
| 1 | 2014-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 | |||
| 1 | 2014-06-08 Eli Zaretskii <eliz@gnu.org> | 16 | 2014-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 |