Slightly optimize LTO streamed bytecode

Message ID alpine.LSU.2.20.1801120920330.32271@zhemvz.fhfr.qr
State New
Headers show
Series
  • Slightly optimize LTO streamed bytecode
Related show

Commit Message

Richard Biener Jan. 12, 2018, 8:21 a.m.
This optimizes streaming of DECL_DEBUG_EXPR to only when necessary.

LTO bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2018-01-12  Richard Biener  <rguenther@suse.de>

	* lto-streamer-out.c (DFS::DFS_write_tree_body): Process
	DECL_DEBUG_EXPR conditional on DECL_HAS_DEBUG_EXPR_P.
	* tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
	Likewise.
	* tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.

Patch

Index: gcc/lto-streamer-out.c
===================================================================
--- gcc/lto-streamer-out.c	(revision 256535)
+++ gcc/lto-streamer-out.c	(working copy)
@@ -802,7 +802,8 @@  DFS::DFS_write_tree_body (struct output_
 	   || TREE_CODE (expr) == PARM_DECL)
 	  && DECL_HAS_VALUE_EXPR_P (expr))
 	DFS_follow_tree_edge (DECL_VALUE_EXPR (expr));
-      if (VAR_P (expr))
+      if (VAR_P (expr)
+	  && DECL_HAS_DEBUG_EXPR_P (expr))
 	DFS_follow_tree_edge (DECL_DEBUG_EXPR (expr));
     }
 
Index: gcc/tree-streamer-in.c
===================================================================
--- gcc/tree-streamer-in.c	(revision 256535)
+++ gcc/tree-streamer-in.c	(working copy)
@@ -714,7 +714,8 @@  lto_input_ts_decl_common_tree_pointers (
       && DECL_HAS_VALUE_EXPR_P (expr))
     SET_DECL_VALUE_EXPR (expr, stream_read_tree (ib, data_in));
 
-  if (VAR_P (expr))
+  if (VAR_P (expr)
+      && DECL_HAS_DEBUG_EXPR_P (expr))
     {
       tree dexpr = stream_read_tree (ib, data_in);
       if (dexpr)
Index: gcc/tree-streamer-out.c
===================================================================
--- gcc/tree-streamer-out.c	(revision 256535)
+++ gcc/tree-streamer-out.c	(working copy)
@@ -609,7 +609,8 @@  write_ts_decl_common_tree_pointers (stru
       && DECL_HAS_VALUE_EXPR_P (expr))
     stream_write_tree (ob, DECL_VALUE_EXPR (expr), ref_p);
 
-  if (VAR_P (expr))
+  if (VAR_P (expr)
+      && DECL_HAS_DEBUG_EXPR_P (expr))
     stream_write_tree (ob, DECL_DEBUG_EXPR (expr), ref_p);
 }