diff options
author | Dmitry Antipov <dmantipov@yandex.ru> | 2014-06-08 19:06:03 +0400 |
---|---|---|
committer | Dmitry Antipov <dmantipov@yandex.ru> | 2014-06-08 19:06:03 +0400 |
commit | 83f1450065c55a3e5dce5db0da737cb7a6a4d60c (patch) | |
tree | 92d118deaa0a9a24d48aa22353c5c413377267d7 /doc/lispref/files.texi | |
parent | 36cf8493aff99b652b2ad8c9e4d55a18688e8484 (diff) | |
download | emacs-83f1450065c55a3e5dce5db0da737cb7a6a4d60c.tar.gz emacs-83f1450065c55a3e5dce5db0da737cb7a6a4d60c.tar.bz2 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 'doc/lispref/files.texi')
0 files changed, 0 insertions, 0 deletions