]> git.eshelyaron.com Git - emacs.git/commitdiff
Add new customize `comp-libgccjit-reproducer'
authorAndrea Corallo <akrl@sdf.org>
Thu, 7 Jan 2021 23:44:55 +0000 (00:44 +0100)
committerAndrea Corallo <akrl@sdf.org>
Sat, 9 Jan 2021 11:06:45 +0000 (12:06 +0100)
* lisp/emacs-lisp/comp.el (comp-libgccjit-reproducer): New customize.
* src/comp.c (Fcomp__compile_ctxt_to_file): Use
`comp-libgccjit-reproducer' for dumping repoducer.
(syms_of_comp): Define 'Qcomp_libgccjit_reproducer'.

lisp/emacs-lisp/comp.el
src/comp.c

index d1953b59f041be11717fc34b3358d57161004ad2..79cf942e89d3e8353e624558c00af2d7ab61fe63 100644 (file)
@@ -136,6 +136,12 @@ Passing these options is only available in libgccjit version 9
 and above."
   :type 'list)
 
+(defcustom comp-libgccjit-reproducer nil
+  "When non-nil produce a libgccjit reproducer.
+The reproducer is a file comp_SRCNAME_repro.c deposed in the .eln
+output directory."
+  :type 'boolean)
+
 (defvar comp-dry-run nil
   "If non-nil, run everything but the C back-end.")
 
index 2670c917ed634bae9eb2057007fba9495779b205..f6445a7621dd14372fe1cc2e4501ac0d07e470f9 100644 (file)
@@ -4428,8 +4428,10 @@ DEFUN ("comp--compile-ctxt-to-file", Fcomp__compile_ctxt_to_file,
       gcc_jit_context_dump_to_file (comp.ctxt,
                                    format_string ("%s.c", SSDATA (base_name)),
                                    1);
-  if (comp.debug > 2)
-    gcc_jit_context_dump_reproducer_to_file (comp.ctxt, "comp_reproducer.c");
+  if (!NILP (Fsymbol_value (Qcomp_libgccjit_reproducer)))
+    gcc_jit_context_dump_reproducer_to_file (
+      comp.ctxt,
+      format_string ("comp_%s_repro.c", SSDATA (base_name)));
 
   Lisp_Object tmp_file =
     Fmake_temp_file_internal (base_name, Qnil, build_string (".eln.tmp"), Qnil);
@@ -5099,6 +5101,7 @@ compiled one.  */);
   DEFSYM (Qcomp_speed, "comp-speed");
   DEFSYM (Qcomp_debug, "comp-debug");
   DEFSYM (Qcomp_native_driver_options, "comp-native-driver-options");
+  DEFSYM (Qcomp_libgccjit_reproducer, "comp-libgccjit-reproducer");
 
   /* Limple instruction set.  */
   DEFSYM (Qcomment, "comment");