diff options
| author | Paul Eggert | 2014-09-09 23:38:38 -0700 |
|---|---|---|
| committer | Paul Eggert | 2014-09-09 23:38:38 -0700 |
| commit | 11e28ab08d44c1fc40e3e4dc728c14c521b3879d (patch) | |
| tree | fd5f541d44d9d3d6383f2064c9e45c684b73d6cf /ChangeLog | |
| parent | c98d0ea46197545b899b463c1ba9ff2fea8e8c6e (diff) | |
| download | emacs-11e28ab08d44c1fc40e3e4dc728c14c521b3879d.tar.gz emacs-11e28ab08d44c1fc40e3e4dc728c14c521b3879d.zip | |
Improve the experimental local and scoped allocation.
* configure.ac (HAVE_STRUCT_ATTRIBUTE_ALIGNED)
(HAVE_STATEMENT_EXPRESSIONS): New configure-time checks.
* src/alloc.c (local_string_init, local_vector_init):
New functions, defined if USE_LOCAL_ALLOCATORS.
Mostly, these are moved here from lisp.h, as it's not
clear it's worth making them inline.
* src/lisp.h (USE_STACK_LISP_OBJECTS): Default to false.
(GCALIGNED): Depend on HAVE_STRUCT_ATTRIBUTE_ALIGNED and
USE_STACK_LISP_OBJECTS, not on a laundry list.
(local_string_init, local_vector_init): New decls.
(union Aligned_Cons): New type.
(scoped_cons): Use it. Give up on the char trick, as it's a too
much of a maintenance hassle; if someone wants this speedup
they'll just need to convince their compiler to align properly.
Conversely, use the speedup if struct Lisp_Cons happens to
be aligned even without a directive. Better yet, help it along
by using union Aligned_Cons rather than struct Lisp_Cons.
(pointer_valid_for_lisp_object): Remove. This check is not
necessary, since make_lisp_ptr is already doing it. All uses removed.
(local_vector_init, local_string_init): Move to alloc.c.
(build_local_vector): Remove this awkward macro, replacing with ...
(make_local_vector): New macro, which acts more like a function.
Use statement expressions and use __COUNTER__ to avoid macro
capture. Fall back on functions if these features are not supported.
(build_local_string, make_local_string): Likewise.
Diffstat (limited to 'ChangeLog')
| -rw-r--r-- | ChangeLog | 6 |
1 files changed, 6 insertions, 0 deletions
| @@ -1,3 +1,9 @@ | |||
| 1 | 2014-09-10 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Improve the experimental local and scoped allocation. | ||
| 4 | * configure.ac (HAVE_STRUCT_ATTRIBUTE_ALIGNED) | ||
| 5 | (HAVE_STATEMENT_EXPRESSIONS): New configure-time checks. | ||
| 6 | |||
| 1 | 2014-09-07 Paul Eggert <eggert@cs.ucla.edu> | 7 | 2014-09-07 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 8 | ||
| 3 | Expand @AM_DEFAULT_VERBOSITY@ even if Automake is old (Bug#18415). | 9 | Expand @AM_DEFAULT_VERBOSITY@ even if Automake is old (Bug#18415). |