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

Data Structures

struct  tree_hash_entry
struct  tree_entry_hasher

Functions

const char * lto_tag_name ()
bitmap lto_bitmap_alloc ()
void lto_bitmap_free ()
char * lto_get_section_name ()
void print_lto_report ()
void lto_streamer_init ()
bool gate_lto_out ()
void lto_orig_address_map ()
intptr_t lto_orig_address_get ()
void lto_orig_address_remove ()
void lto_check_version ()
void lto_streamer_hooks_init ()

Variables

struct lto_stats_d lto_stats
static bitmap_obstack lto_obstack
static bool lto_obstack_initialized
static hash_table
< tree_hash_entry
tree_htab

Function Documentation

bool gate_lto_out ( void  )
Gate function for all LTO streaming passes.   

References seen_error().

bitmap lto_bitmap_alloc ( void  )
Allocate a bitmap from heap.  Initializes the LTO obstack if necessary.   

References bitmap_obstack_initialize(), and lto_obstack_initialized.

Referenced by lto_output().

void lto_bitmap_free ( )
Free bitmap B.   

Referenced by lto_output().

void lto_check_version ( )
Check that the version MAJOR.MINOR is the correct version number.   

References fatal_error().

Referenced by lto_input_toplevel_asms(), and lto_read_body().

char* lto_get_section_name ( )
Get a section name for a particular type or name.  The NAME field
   is only used if SECTION_TYPE is LTO_section_function_body. For all
   others it is ignored.  The callee of this function is responsible
   to free the returned name.   

References get_random_seed(), HOST_WIDE_INT_PRINT_HEX_PURE, lto_file_decl_data::id, internal_error(), LTO_N_SECTION_TYPES, LTO_section_function_body, lto_section_name, and LTO_section_opts.

Referenced by copy_function(), lto_destroy_simple_output_block(), lto_output_toplevel_asms(), lto_write_options(), produce_asm(), produce_asm_for_decls(), and produce_symtab().

intptr_t lto_orig_address_get ( )
Get the original address of T as it was seen by the writer.  This
   is only valid while T is being reconstructed.   

References hash_table< Descriptor, Allocator >::find_slot(), tree_hash_entry::key, and tree_hash_entry::value.

void lto_orig_address_map ( )
Add a mapping between T and ORIG_T, which is the numeric value of
   the original address of T as it was seen by the LTO writer.  This
   mapping is useful when debugging streaming problems.  A debugging
   session can be started on both reader and writer using ORIG_T
   as a breakpoint value in both sessions.

   Note that this mapping is transient and only valid while T is
   being reconstructed.  Once T is fully built, the mapping is
   removed.   

References hash_table< Descriptor, Allocator >::find_slot(), tree_hash_entry::key, and tree_hash_entry::value.

Referenced by streamer_alloc_tree().

void lto_orig_address_remove ( )
void lto_streamer_hooks_init ( void  )
void lto_streamer_init ( void  )
Initialization common to the LTO reader and writer.   

References hash_table< Descriptor, Allocator >::create(), and streamer_check_handled_ts_structures().

Referenced by lto_output(), and lto_reader_init().


Variable Documentation

bitmap_obstack lto_obstack
static
LTO uses bitmaps with different life-times.  So use a separate
   obstack for all LTO bitmaps.   
bool lto_obstack_initialized
static

Referenced by lto_bitmap_alloc().

struct lto_stats_d lto_stats
@verbatim Miscellaneous utilities for GIMPLE streaming.  Things that are used

in both input and output are here.

Copyright (C) 2009-2013 Free Software Foundation, Inc. Contributed by Doug Kwan dougk.nosp@m.wan@.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/.

Statistics gathered during LTO, WPA and LTRANS.   

Referenced by cgraph_get_body(), lto_compress_block(), lto_end_compression(), lto_end_uncompression(), lto_get_section_data(), lto_output_tree(), lto_uncompress_block(), print_lto_report(), and streamer_write_tree_body().

hash_table<tree_hash_entry> tree_htab
static