GCC Middle and Back End API Reference
data-streamer-out.c File Reference

Functions

unsigned streamer_string_index (struct output_block *ob, const char *s, unsigned int len, bool persistent)
void streamer_write_string_with_length (struct output_block *ob, struct lto_output_stream *index_stream, const char *s, unsigned int len, bool persistent)
void streamer_write_string (struct output_block *ob, struct lto_output_stream *index_stream, const char *string, bool persistent)
void bp_pack_string_with_length (struct output_block *ob, struct bitpack_d *bp, const char *s, unsigned int len, bool persistent)
void bp_pack_string (struct output_block *ob, struct bitpack_d *bp, const char *s, bool persistent)
void streamer_write_zero ()
void streamer_write_uhwi ()
void streamer_write_hwi ()
void streamer_write_gcov_count ()
void streamer_write_uhwi_stream (struct lto_output_stream *obs, unsigned HOST_WIDE_INT work)
void streamer_write_hwi_stream ()
void streamer_write_gcov_count_stream ()

Function Documentation

void bp_pack_string ( struct output_block ob,
struct bitpack_d bp,
const char *  s,
bool  persistent 
)
   Output the '\0' terminated STRING to the string
   table in OB.  Then put the index onto the bitpack BP.
   When PERSISTENT is set, the string S is supposed to not change during
   duration of the OB and thus OB can keep pointer into it.  

Referenced by pack_ts_block_value_fields().

void bp_pack_string_with_length ( struct output_block ob,
struct bitpack_d bp,
const char *  s,
unsigned int  len,
bool  persistent 
)
   Output STRING of LEN characters to the string table in OB.  Then
   put the index into BP.
   When PERSISTENT is set, the string S is supposed to not change during
   duration of the OB and thus OB can keep pointer into it.  
unsigned streamer_string_index ( struct output_block ob,
const char *  s,
unsigned int  len,
bool  persistent 
)
@verbatim 

Routines for saving various data types to a file stream. This deals with various data types like strings, integers, enums, etc.

Copyright (C) 2011-2013 Free Software Foundation, Inc. Contributed by Diego Novillo dnovi.nosp@m.llo@.nosp@m.googl.nosp@m.e.co.nosp@m.m

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/.

   Return index used to reference STRING of LEN characters in the string table
   in OB.  The string might or might not include a trailing '\0'.
   Then put the index onto the INDEX_STREAM.  
   When PERSISTENT is set, the string S is supposed to not change during
   duration of the OB and thus OB can keep pointer into it.  

References hash_table< Descriptor, Allocator >::find_slot(), len, string_slot::len, lto_output_data_stream(), memcpy(), output_block::obstack, string_slot::s, string_slot::slot_num, streamer_write_uhwi_stream(), output_block::string_hash_table, output_block::string_stream, and lto_output_stream::total_size.

Referenced by streamer_write_string_with_length().

void streamer_write_gcov_count ( )
   Write a gcov counter value WORK to OB->main_stream.  

References lto_output_stream::current_pointer, lto_output_stream::left_in_block, and lto_append_block().

Referenced by output_eh_regions().

void streamer_write_gcov_count_stream ( )
   Write a GCOV counter value WORK to OBS.  

Referenced by streamer_write_hwi().

void streamer_write_hwi ( )
   Write a HOST_WIDE_INT value WORK to OB->main_stream.  

References output_block::main_stream, and streamer_write_gcov_count_stream().

Referenced by output_eh_regions(), and output_eh_try_list().

void streamer_write_hwi_stream ( )
   Write a HOST_WIDE_INT value WORK to OBS.  
         If the lower 7-bits are sign-extended 0 or -1 we are finished.  
             More bits to follow.  

Referenced by streamer_write_uhwi().

void streamer_write_string ( struct output_block ob,
struct lto_output_stream index_stream,
const char *  string,
bool  persistent 
)
   Output the '\0' terminated STRING to the string
   table in OB.  Then put the index onto the INDEX_STREAM.
   When PERSISTENT is set, the string S is supposed to not change during
   duration of the OB and thus OB can keep pointer into it.  
void streamer_write_string_with_length ( struct output_block ob,
struct lto_output_stream index_stream,
const char *  s,
unsigned int  len,
bool  persistent 
)
   Output STRING of LEN characters to the string table in OB. The
   string might or might not include a trailing '\0'. Then put the
   index onto the INDEX_STREAM. 
   When PERSISTENT is set, the string S is supposed to not change during
   duration of the OB and thus OB can keep pointer into it.  

References streamer_string_index(), streamer_write_char_stream(), and streamer_write_uhwi_stream().

Referenced by streamer_write_string_cst(), and write_identifier().

void streamer_write_uhwi ( )
   Write an unsigned HOST_WIDE_INT value WORK to OB->main_stream.  

References output_block::main_stream, and streamer_write_hwi_stream().

Referenced by output_eh_regions(), and read_inline_edge_summary().

void streamer_write_uhwi_stream ( struct lto_output_stream obs,
unsigned HOST_WIDE_INT  work 
)
   Write an unsigned HOST_WIDE_INT value WORK to OBS.  
           More bytes to follow.  
               More bytes to follow.  

Referenced by bp_pack_value(), streamer_string_index(), streamer_write_string_with_length(), and streamer_write_zero().

void streamer_write_zero ( )
   Write a zero to the output stream.  

References output_block::main_stream, and streamer_write_uhwi_stream().

Referenced by output_eh_try_list().