GCC Middle and Back End API Reference
ipa_pass_through_data Struct Reference

#include <ipa-prop.h>

Data Fields

tree operand
int formal_id
enum tree_code operation
unsigned agg_preserved: 1
unsigned type_preserved: 1

Detailed Description

Structure holding data required to describe a pass-through jump function.


Field Documentation

unsigned ipa_pass_through_data::agg_preserved

When the passed value is a pointer, it is set to true only when we are certain that no write to the object it points to has occurred since the caller functions started execution, except for changes noted in the aggregate part of the jump function (see description of ipa_agg_jump_function). The flag is used only when the operation is NOP_EXPR.

Referenced by ipa_get_jf_constant_rdesc().

int ipa_pass_through_data::formal_id

Number of the caller's formal parameter being passed.

Referenced by combine_known_type_and_ancestor_jfs(), and ipa_get_jf_known_type_component_type().

tree ipa_pass_through_data::operand

If an operation is to be performed on the original parameter, this is the second (constant) operand.

Referenced by ipa_get_jf_known_type_base_type().

enum tree_code ipa_pass_through_data::operation

Operation that is performed on the argument before it is passed on. NOP_EXPR means no operation. Otherwise oper must be a simple binary arithmetic operation where the caller's parameter is the first operand and operand field from this structure is the second one.

Referenced by ipa_get_jf_constant().

unsigned ipa_pass_through_data::type_preserved

When set to true, we guarantee that, if there is a C++ object pointed to by this object, it does not undergo dynamic type change in the course of functions decribed by this jump function.

Referenced by ipa_get_jf_pass_through_operand().


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