aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
authorPaul Eggert2019-07-12 22:29:02 -0700
committerPaul Eggert2019-07-12 22:29:57 -0700
commit04cbdde94d256d9b3fbfcc67981374a55d339fcd (patch)
treef7489fb823bf1301a9cb13d247fc521b197bf572 /src/lisp.h
parent13eaf8621390687b32d964e4821584c1bb629c2c (diff)
downloademacs-04cbdde94d256d9b3fbfcc67981374a55d339fcd.tar.gz
emacs-04cbdde94d256d9b3fbfcc67981374a55d339fcd.zip
Replace Vdead with tagged pointer
This speeds up ‘make compile-always’ by 0.1% on my platform. Suggested by Pip Cet in: https://lists.gnu.org/r/emacs-devel/2019-07/msg00257.html * src/.gdbinit (pwinx, pgx, xbuffer, xprintstr): Output dead_object () as "DEAD". * src/alloc.c (Vdead, DEADP): Remove. All uses replaced by dead_object () / deadp. (deadp): New function. (init_alloc_once_for_pdumper): Remove no-longer-needed initialization. * src/lisp.h (dead_object): New function.
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 7641b2aab4d..e93a219625e 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1247,6 +1247,15 @@ make_lisp_ptr (void *ptr, enum Lisp_Type type)
1247#define XSETSYMBOL(a, b) ((a) = make_lisp_symbol (b)) 1247#define XSETSYMBOL(a, b) ((a) = make_lisp_symbol (b))
1248#define XSETFLOAT(a, b) ((a) = make_lisp_ptr (b, Lisp_Float)) 1248#define XSETFLOAT(a, b) ((a) = make_lisp_ptr (b, Lisp_Float))
1249 1249
1250/* Return a Lisp_Object value that does not correspond to any object.
1251 This can make some Lisp objects on free lists recognizable in O(1). */
1252
1253INLINE Lisp_Object
1254dead_object (void)
1255{
1256 return make_lisp_ptr (NULL, Lisp_String);
1257}
1258
1250/* Pseudovector types. */ 1259/* Pseudovector types. */
1251 1260
1252#define XSETPVECTYPE(v, code) \ 1261#define XSETPVECTYPE(v, code) \
@@ -3759,9 +3768,6 @@ extern byte_ct const memory_full_cons_threshold;
3759#ifdef HAVE_PDUMPER 3768#ifdef HAVE_PDUMPER
3760extern int number_finalizers_run; 3769extern int number_finalizers_run;
3761#endif 3770#endif
3762#ifdef ENABLE_CHECKING
3763extern Lisp_Object Vdead;
3764#endif
3765extern Lisp_Object list1 (Lisp_Object); 3771extern Lisp_Object list1 (Lisp_Object);
3766extern Lisp_Object list2 (Lisp_Object, Lisp_Object); 3772extern Lisp_Object list2 (Lisp_Object, Lisp_Object);
3767extern Lisp_Object list3 (Lisp_Object, Lisp_Object, Lisp_Object); 3773extern Lisp_Object list3 (Lisp_Object, Lisp_Object, Lisp_Object);