"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
#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"
#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)
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);
{
/* Compiler control customize. */
DEFSYM (Qcomp_speed, "comp-speed");
+ DEFSYM (Qcomp_debug, "comp-debug");
/* Limple instruction set. */
DEFSYM (Qcomment, "comment");
DEFSYM (Qjump, "jump");