GCC Middle and Back End API Reference
ipa_ref Struct Reference

#include <ipa-ref.h>

Collaboration diagram for ipa_ref:

Public Member Functions

void remove_reference ()
 
bool cannot_lead_to_return ()
 
bool address_matters_p ()
 
struct ipa_ref_listreferring_ref_list (void)
 
struct ipa_ref_listreferred_ref_list (void)
 

Data Fields

symtab_nodereferring
 
symtab_nodereferred
 
gimplestmt
 
unsigned int lto_stmt_uid
 
unsigned int referred_index
 
unsigned int speculative_id: 16
 
enum ipa_ref_use use:3
 
unsigned int speculative:1
 

Detailed Description

Record of reference in callgraph or varpool.   

Member Function Documentation

◆ address_matters_p()

◆ cannot_lead_to_return()

bool ipa_ref::cannot_lead_to_return ( )
Return true when execution of reference can lead to return from
function.   

References ggc_alloc(), and referring.

Referenced by analyze_function(), and propagate_pure_const().

◆ referred_ref_list()

struct ipa_ref_list * ipa_ref::referred_ref_list ( void )
Return reference list this reference is in.   

References symtab_node::ref_list, and referred.

Referenced by remove_reference().

◆ referring_ref_list()

struct ipa_ref_list * ipa_ref::referring_ref_list ( void )
Return reference list this reference is in.   

References symtab_node::ref_list, and referring.

Referenced by remove_reference().

◆ remove_reference()

void ipa_ref::remove_reference ( )
Interprocedural reference lists.
   Copyright (C) 2010-2024 Free Software Foundation, Inc.
   Contributed by Jan Hubicka

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/>.   
Remove reference.   

References gcc_assert, ggc_alloc(), IPA_REF_ALIAS, last, ipa_ref_list::last_alias(), referred_index, referred_ref_list(), ipa_ref_list::referring, and referring_ref_list().

Referenced by create_dispatcher_calls(), propagate_controlled_uses(), cgraph_edge::rebuild_references(), symtab_node::remove_stmt_references(), and cgraph_edge::resolve_speculation().

Field Documentation

◆ lto_stmt_uid

◆ referred

◆ referred_index

unsigned int ipa_ref::referred_index

◆ referring

symtab_node* ipa_ref::referring

Referenced by cgraph_node::add_detected_attribute(), add_detected_attribute_1(), address_matters_p(), varpool_node::assemble_aliases(), cgraph_node::assemble_thunks_and_aliases(), cgraph_node::call_for_symbol_and_aliases_1(), symtab_node::call_for_symbol_and_aliases_1(), varpool_node::call_for_symbol_and_aliases_1(), cgraph_node::call_for_symbol_thunks_and_aliases(), cgraph_node::can_remove_if_no_direct_calls_p(), can_remove_node_now_p_1(), cannot_lead_to_return(), cgraph_externally_visible_p(), symbol_table::change_decl_assembler_name(), check_callers(), symtab_node::clone_referring(), symtab_node::copy_visibility_from(), create_dispatcher_calls(), symtab_node::create_reference(), cgraph_node::dump(), symtab_node::dump_referring(), varpool_node::externally_visible_p(), growth_positive_p(), have_optimized_refs(), ipa_single_use(), ipa_tm_execute(), lto_output_ref(), symtab_node::make_decl_local(), symtab_node::output_to_lto_symbol_table_p(), process_references(), propagate_comdat_group(), propagate_single_user(), ipa_icf::redirect_all_callers(), referenced_from_other_partition_p(), referenced_from_this_partition_p(), referenced_from_vtable_p(), referring_ref_list(), symbol_table::remove_unreachable_nodes(), reset_edge_caches(), symtab_node::resolve_alias(), ipa_icf::set_alias_uids(), cgraph_node::set_const_flag(), set_const_flag_1(), cgraph_node::set_malloc_flag(), set_malloc_flag_1(), cgraph_node::set_noreturn_flag(), set_noreturn_flag_1(), cgraph_node::set_nothrow_flag(), set_nothrow_flag_1(), update_caller_keys(), ipa_icf::sem_item::update_hash_by_local_refs(), and symtab_node::verify_base().

◆ speculative

◆ speculative_id

◆ stmt

◆ use


The documentation for this struct was generated from the following files: