public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Clean up printer printers [5/n]
@ 2013-08-05  7:30 Gabriel Dos Reis
  0 siblings, 0 replies; only message in thread
From: Gabriel Dos Reis @ 2013-08-05  7:30 UTC (permalink / raw)
  To: gcc-patches


This patch stops the gimple printer from using global pretty printers.  

Applied to trunk.

-- Gaby

2013-08-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
 
	* gimple-pretty-print.c (buffer): Remove.
	(initialized): Likewise.
	(maybe_init_pretty_print): Likewise.
	(print_gimple_stmt): Do not call it.  Use non-static local
	pretty_printer variable.
	(print_gimple_expr): Likewise.
	(print_gimple_seq): Likewise.
	(gimple_dump_bb): Likewise.

Index: gimple-pretty-print.c
===================================================================
--- gimple-pretty-print.c	(revision 201481)
+++ gimple-pretty-print.c	(working copy)
@@ -36,9 +36,6 @@
 #define INDENT(SPACE)							\
   do { int i; for (i = 0; i < SPACE; i++) pp_space (buffer); } while (0)
 
-static pretty_printer buffer;
-static bool initialized = false;
-
 #define GIMPLE_NIY do_niy (buffer,gs)
 
 /* Try to print on BUFFER a default message for the unrecognized
@@ -52,22 +49,6 @@
 }
 
 
-/* Initialize the pretty printer on FILE if needed.  */
-
-static void
-maybe_init_pretty_print (FILE *file)
-{
-  if (!initialized)
-    {
-      pp_construct (&buffer, NULL, 0);
-      pp_needs_newline (&buffer) = true;
-      initialized = true;
-    }
-
-  buffer.buffer->stream = file;
-}
-
-
 /* Emit a newline and SPC indentation spaces to BUFFER.  */
 
 static void
@@ -93,7 +74,10 @@
 void
 print_gimple_stmt (FILE *file, gimple g, int spc, int flags)
 {
-  maybe_init_pretty_print (file);
+  pretty_printer buffer;
+  pp_construct (&buffer, NULL, 0);
+  pp_needs_newline (&buffer) = true;
+  buffer.buffer->stream = file;
   pp_gimple_stmt_1 (&buffer, g, spc, flags);
   pp_newline_and_flush (&buffer);
 }
@@ -122,7 +106,10 @@
 print_gimple_expr (FILE *file, gimple g, int spc, int flags)
 {
   flags |= TDF_RHS_ONLY;
-  maybe_init_pretty_print (file);
+  pretty_printer buffer;
+  pp_construct (&buffer, NULL, 0);
+  pp_needs_newline (&buffer) = true;
+  buffer.buffer->stream = file;
   pp_gimple_stmt_1 (&buffer, g, spc, flags);
   pp_flush (&buffer);
 }
@@ -155,7 +142,10 @@
 void
 print_gimple_seq (FILE *file, gimple_seq seq, int spc, int flags)
 {
-  maybe_init_pretty_print (file);
+  pretty_printer buffer;
+  pp_construct (&buffer, NULL, 0);
+  pp_needs_newline (&buffer) = true;
+  buffer.buffer->stream = file;
   dump_gimple_seq (&buffer, seq, spc, flags);
   pp_newline_and_flush (&buffer);
 }
@@ -2279,7 +2269,10 @@
   dump_gimple_bb_header (file, bb, indent, flags);
   if (bb->index >= NUM_FIXED_BLOCKS)
     {
-      maybe_init_pretty_print (file);
+      pretty_printer buffer;
+      pp_construct (&buffer, NULL, 0);
+      pp_needs_newline (&buffer) = true;
+      buffer.buffer->stream = file;
       gimple_dump_bb_buff (&buffer, bb, indent, flags);
     }
   dump_gimple_bb_footer (file, bb, indent, flags);

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2013-08-05  7:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-05  7:30 Clean up printer printers [5/n] Gabriel Dos Reis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).