From d5ffb4949044ae58fb418b1b214cc7c6eb16a29c Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Sun, 10 Nov 2019 14:51:38 +0100 Subject: [PATCH] better comp-debug customize --- lisp/emacs-lisp/comp.el | 10 ++++++++++ src/comp.c | 8 +++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index f87d4bc401a..cc7a1ba06a0 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -42,6 +42,16 @@ "Compiler optimization level. From 0 to 3." :type 'number :group 'comp) + +(defcustom comp-debug 0 + "Compiler debug level. From 0 to 3. +- 0 no debug facility +- 1 emit debug symbols and dump pseudo C code +- 2 dump gcc passes and libgccjit log file +- 3 dump libgccjit reproducer" + :type 'number + :group 'comp) + (defcustom comp-verbose 0 "Compiler verbosity. From 0 to 3. - 0 no logging diff --git a/src/comp.c b/src/comp.c index 7fa55b12477..969495eb938 100644 --- a/src/comp.c +++ b/src/comp.c @@ -34,8 +34,6 @@ along with GNU Emacs. If not, see . */ #include "buffer.h" #include "blockinput.h" -#define COMP_DEBUG 1 - /* C symbols emited for the load relocation mechanism. */ #define CURRENT_THREAD_RELOC_SYM "current_thread_reloc" #define PURE_RELOC_SYM "pure_reloc" @@ -44,6 +42,9 @@ along with GNU Emacs. If not, see . */ #define TEXT_DATA_RELOC_SYM "text_data_reloc" #define TEXT_IMPORTED_FUNC_RELOC_SYM "text_imported_funcs" +#define SPEED XFIXNUM (Fsymbol_value (Qcomp_speed)) +#define COMP_DEBUG XFIXNUM (Fsymbol_value (Qcomp_debug)) + #define STR_VALUE(s) #s #define STR(s) STR_VALUE (s) @@ -3070,7 +3071,7 @@ DEFUN ("comp--compile-ctxt-to-file", Fcomp__compile_ctxt_to_file, gcc_jit_context_dump_to_file (comp.ctxt, format_string ("%s.c", SSDATA (ctxtname)), 1); - if (COMP_DEBUG > 1) + if (COMP_DEBUG > 2) gcc_jit_context_dump_reproducer_to_file (comp.ctxt, "comp_reproducer.c"); AUTO_STRING (dot_so, NATIVE_ELISP_SUFFIX); @@ -3312,6 +3313,7 @@ syms_of_comp (void) { /* Compiler control customize. */ DEFSYM (Qcomp_speed, "comp-speed"); + DEFSYM (Qcomp_debug, "comp-debug"); /* Limple instruction set. */ DEFSYM (Qcomment, "comment"); DEFSYM (Qjump, "jump"); -- 2.39.5