diff options
| author | Paul Eggert | 2020-08-30 23:40:11 -0700 |
|---|---|---|
| committer | Paul Eggert | 2020-08-31 00:05:56 -0700 |
| commit | cf95bb0213908a4caab65dccfa67b4f1572babe2 (patch) | |
| tree | b1947e6458d3c6fb992320deee00884c80b2c949 /src/eval.c | |
| parent | aa1b586a1afaa88e5a9521a7640feefc2c12f009 (diff) | |
| download | emacs-cf95bb0213908a4caab65dccfa67b4f1572babe2.tar.gz emacs-cf95bb0213908a4caab65dccfa67b4f1572babe2.zip | |
Avoid some false matches in mark_maybe_pointer
This lets Emacs avoid marking some garbage as if it were in use.
On one test platform (RHEL 7.8, Intel Xeon Silver 4116) it
sped up ‘cd lisp; make compile-always’ by a bit over 1%.
* src/alloc.c (live_string_holding, live_cons_holding)
(live_symbol_holding, live_large_vector_holding)
(live_small_vector_holding):
Count only pointers that point to a struct component,
or are a tagged pointer to the start of the struct.
Exception: for non-bool-vector pseudovectors,
count any pointer past the header, since it’s too much
of a pain to write code for every pseudovector.
(live_vector_pointer): New function.
Diffstat (limited to 'src/eval.c')
0 files changed, 0 insertions, 0 deletions