]> git.eshelyaron.com Git - emacs.git/commit
Keep stack-allocated Lisp objects fast rather than versatile.
authorDmitry Antipov <dmantipov@yandex.ru>
Mon, 29 Sep 2014 06:44:31 +0000 (10:44 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Mon, 29 Sep 2014 06:44:31 +0000 (10:44 +0400)
commit71a72686e3e81253f2bc0ad74568aafdbd86879c
treee2f2d44e9a01c782e71e8de88e3b345733c86fc7
parentc3301e3c7f146a3aa017fa24f6ed240d6ecbafb4
Keep stack-allocated Lisp objects fast rather than versatile.
* configure.ac (HAVE_STATEMENT_EXPRESSIONS): Remove.
For USE_STACK_LISP_OBJECTS, we always assume __GNUC__.
* lisp.h (union Aligned_Cons) [!GCALIGNED]: Define as such.
(SCOPED_CONS_INITIALIZER): New macro.
(scoped_cons) [USE_STACK_LISP_OBJECTS]: Use it.
(USE_LOCAL_ALLOCA): Remove.
(local_cons, local_list1, local_list2, local_list3, local_list4):
Remove.  Stack overflow checking makes them too slow.
(make_local_vector): Likewise.  Also we just don't have enough
users for it.
(enum LISP_STRING_OVERHEAD): Remove.
(local_string_init, local_vector_init): Remove prototypes.
(make_local_string, build_local_string): Redesign to target short
compile-time string constants, fall back to regular string allocation
where appropriate.
(lisp_string_size): New function.
(verify_ascii) [ENABLE_CHECKING]: Add prototype.
* alloc.c (local_string_init, local_vector_init): Remove.
(verify_ascii) [ENABLE_CHECKING]: New function.
* buffer.c, charset.c, chartab.c, data.c, editfns.c, emacs.c, fileio.c:
* fns.c, font.c, fontset.c, frame.c, keyboard.c, keymap.c, lread.c:
* menu.c, minibuf.c, process.c, textprop.c, xdisp.c, xfns.c, xfont.c:
* xselect.c, xterm.c: All related users changed.
28 files changed:
ChangeLog
configure.ac
src/ChangeLog
src/alloc.c
src/buffer.c
src/charset.c
src/chartab.c
src/data.c
src/editfns.c
src/emacs.c
src/fileio.c
src/fns.c
src/font.c
src/fontset.c
src/frame.c
src/keyboard.c
src/keymap.c
src/lisp.h
src/lread.c
src/menu.c
src/minibuf.c
src/process.c
src/textprop.c
src/xdisp.c
src/xfns.c
src/xfont.c
src/xselect.c
src/xterm.c