GCC Middle and Back End API Reference
cgraph_indirect_call_info Struct Reference

#include <cgraph.h>

Data Fields

HOST_WIDE_INT offset
HOST_WIDE_INT otr_token
tree otr_type
int param_index
int ecf_flags
int common_target_id
int common_target_probability
unsigned polymorphic: 1
unsigned agg_contents: 1
unsigned member_ptr: 1
unsigned by_ref: 1

Detailed Description

Structure containing additional information about an indirect call.


Field Documentation

unsigned cgraph_indirect_call_info::agg_contents

Set when the call is a call of a pointer loaded from contents of an aggregate at offset.

Referenced by ipa_find_agg_cst_for_param(), safe_add(), and try_make_edge_direct_virtual_call().

unsigned cgraph_indirect_call_info::by_ref

When the previous bit is set, this one determines whether the destination is loaded from a parameter passed by reference.

Referenced by ipa_find_agg_cst_for_param().

int cgraph_indirect_call_info::common_target_id

Profile_id of common target obtrained from profile.

int cgraph_indirect_call_info::common_target_probability

Probability that call will land in function with COMMON_TARGET_ID.

int cgraph_indirect_call_info::ecf_flags

ECF flags determined from the caller.

Referenced by cgraph_clone_edge(), and cgraph_for_node_and_aliases().

unsigned cgraph_indirect_call_info::member_ptr

Set when this is a call through a member pointer.

HOST_WIDE_INT cgraph_indirect_call_info::offset

When polymorphic is set, this field contains offset where the object which was actually used in the polymorphic resides within a larger structure. If agg_contents is set, the field contains the offset within the aggregate from which the address to call was loaded.

Referenced by ipa_find_agg_cst_for_param().

HOST_WIDE_INT cgraph_indirect_call_info::otr_token

OBJ_TYPE_REF_TOKEN of a polymorphic call (if polymorphic is set).

Referenced by dump_possible_polymorphic_call_targets().

tree cgraph_indirect_call_info::otr_type

Type of the object from OBJ_TYPE_REF_OBJECT.

Referenced by dump_possible_polymorphic_call_targets().

int cgraph_indirect_call_info::param_index
unsigned cgraph_indirect_call_info::polymorphic

Set when the call is a virtual call with the parameter being the associated object pointer rather than a simple direct call.

Referenced by possible_polymorphic_call_target_p(), and safe_add().


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