lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
authorJan Hubicka <jh@suse.cz>
Mon, 2 May 2011 12:37:13 +0000 (14:37 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Mon, 2 May 2011 12:37:13 +0000 (12:37 +0000)
* lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
(lto_section_overrun): New.
* lto-section-out.c (append_block): Rename to ...
(lto_append_block): ... this one; export.
(lto_output_1_stream): Move lto lto-streamer.h
(lto_output_data_stream): Update.
* lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
(lto_output_1_stream, lto_input_1_unsigned): Turn into inline
functions.

From-SVN: r173247

gcc/ChangeLog
gcc/lto-section-in.c
gcc/lto-section-out.c
gcc/lto-streamer.h

index 5a89d63da78e108316ed0673f416b73346ea64ef..6a8d393396930d3d7d1d1ed87ec1725d1658fc05 100644 (file)
@@ -1,3 +1,15 @@
+2011-05-02  Jan Hubicka  <jh@suse.cz>
+
+       * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
+       (lto_section_overrun): New.
+       * lto-section-out.c (append_block): Rename to ...
+       (lto_append_block): ... this one; export.
+       (lto_output_1_stream): Move lto lto-streamer.h
+       (lto_output_data_stream): Update.
+       * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
+       (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
+       functions.
+
 2011-05-02  Richard Guenther  <rguenther@suse.de>
 
        * tree.c (tree_code_counts): New global array.
index e7928c4b971fc90c60993b23a543c528569d3bf8..4b88fb10749104e119569d316fde4ee7a4f6d858 100644 (file)
@@ -62,16 +62,6 @@ const char *lto_section_name[LTO_N_SECTION_TYPES] =
   "inline"
 };
 
-unsigned char
-lto_input_1_unsigned (struct lto_input_block *ib)
-{
-  if (ib->p >= ib->len)
-    internal_error ("bytecode stream: trying to read %d bytes "
-                   "after the end of the input buffer", ib->p - ib->len);
-
-  return (ib->data[ib->p++]);
-}
-
 
 /* Read an ULEB128 Number of IB.  */
 
@@ -486,3 +476,13 @@ lto_get_function_in_decl_state (struct lto_file_decl_data *file_data,
   slot = htab_find_slot (file_data->function_decl_states, &temp, NO_INSERT);
   return slot? ((struct lto_in_decl_state*) *slot) : NULL;
 }
+
+
+/* Report read pass end of the section.  */
+
+void
+lto_section_overrun (struct lto_input_block *ib)
+{
+  internal_error ("bytecode stream: trying to read %d bytes "
+                 "after the end of the input buffer", ib->p - ib->len);
+}
index 0e8949a272a5f8ccc82c436d154b15e75253d1e5..234d63eaabdd20faf022dd11a1c4fc3bc60f9b86 100644 (file)
@@ -194,8 +194,8 @@ lto_write_stream (struct lto_output_stream *obs)
 
 /* Adds a new block to output stream OBS.  */
 
-static void
-append_block (struct lto_output_stream *obs)
+void
+lto_append_block (struct lto_output_stream *obs)
 {
   struct lto_char_ptr_base *new_block;
 
@@ -234,23 +234,6 @@ append_block (struct lto_output_stream *obs)
 }
 
 
-/* Write a character to the output block.  */
-
-void
-lto_output_1_stream (struct lto_output_stream *obs, char c)
-{
-  /* No space left.  */
-  if (obs->left_in_block == 0)
-    append_block (obs);
-
-  /* Write the actual character.  */
-  *obs->current_pointer = c;
-  obs->current_pointer++;
-  obs->total_size++;
-  obs->left_in_block--;
-}
-
-
 /* Write raw DATA of length LEN to the output block OB.  */
 
 void
@@ -263,7 +246,7 @@ lto_output_data_stream (struct lto_output_stream *obs, const void *data,
 
       /* No space left.  */
       if (obs->left_in_block == 0)
-       append_block (obs);
+       lto_append_block (obs);
 
       /* Determine how many bytes to copy in this loop.  */
       if (len <= obs->left_in_block)
index 5d1f15a783ee3dc4fd21a3553d73fa83c436902a..4fe8f513a33c740ae70f4931f4b3eeccdc343622 100644 (file)
@@ -758,7 +758,6 @@ extern const char *lto_get_section_data (struct lto_file_decl_data *,
 extern void lto_free_section_data (struct lto_file_decl_data *,
                                   enum lto_section_type,
                                   const char *, const char *, size_t);
-extern unsigned char lto_input_1_unsigned (struct lto_input_block *);
 extern unsigned HOST_WIDE_INT lto_input_uleb128 (struct lto_input_block *);
 extern unsigned HOST_WIDEST_INT lto_input_widest_uint_uleb128 (
                                                struct lto_input_block *);
@@ -774,6 +773,7 @@ extern hashval_t lto_hash_in_decl_state (const void *);
 extern int lto_eq_in_decl_state (const void *, const void *);
 extern struct lto_in_decl_state *lto_get_function_in_decl_state (
                                      struct lto_file_decl_data *, tree);
+extern void lto_section_overrun (struct lto_input_block *) ATTRIBUTE_NORETURN;
 
 /* In lto-section-out.c  */
 extern hashval_t lto_hash_decl_slot_node (const void *);
@@ -783,7 +783,6 @@ extern int lto_eq_type_slot_node (const void *, const void *);
 extern void lto_begin_section (const char *, bool);
 extern void lto_end_section (void);
 extern void lto_write_stream (struct lto_output_stream *);
-extern void lto_output_1_stream (struct lto_output_stream *, char);
 extern void lto_output_data_stream (struct lto_output_stream *, const void *,
                                    size_t);
 extern void lto_output_uleb128_stream (struct lto_output_stream *,
@@ -817,6 +816,7 @@ extern void lto_push_out_decl_state (struct lto_out_decl_state *);
 extern struct lto_out_decl_state *lto_pop_out_decl_state (void);
 extern void lto_record_function_out_decl_state (tree,
                                                struct lto_out_decl_state *);
+extern void lto_append_block (struct lto_output_stream *);
 
 
 /* In lto-streamer.c.  */
@@ -1174,4 +1174,32 @@ bp_unpack_value (struct bitpack_d *bp, unsigned nbits)
   return val & mask;
 }
 
+
+/* Write a character to the output block.  */
+
+static inline void
+lto_output_1_stream (struct lto_output_stream *obs, char c)
+{
+  /* No space left.  */
+  if (obs->left_in_block == 0)
+    lto_append_block (obs);
+
+  /* Write the actual character.  */
+  *obs->current_pointer = c;
+  obs->current_pointer++;
+  obs->total_size++;
+  obs->left_in_block--;
+}
+
+
+/* Read byte from the input block.  */
+
+static inline unsigned char
+lto_input_1_unsigned (struct lto_input_block *ib)
+{
+  if (ib->p >= ib->len)
+    lto_section_overrun (ib);
+  return (ib->data[ib->p++]);
+}
+
 #endif /* GCC_LTO_STREAMER_H  */