GCC Middle and Back End API Reference
ipa_parm_adjustment Struct Reference

#include <ipa-prop.h>

Data Fields

tree base
tree type
tree alias_ptr_type
tree reduction
tree new_ssa_base
tree nonlocal_value
HOST_WIDE_INT offset
int base_index
unsigned copy_param: 1
unsigned remove_param: 1
unsigned by_ref: 1

Detailed Description

   Structure to describe transformations of formal parameters and actual
   arguments.  Each instance describes one new parameter and they are meant to
   be stored in a vector.  Additionally, most users will probably want to store
   adjustments about parameters that are being removed altogether so that SSA
   names belonging to them can be replaced by SSA names of an artificial
   variable.  

Field Documentation

tree ipa_parm_adjustment::alias_ptr_type
     Alias refrerence type to be used in MEM_REFs when adjusting caller
     arguments.  
tree ipa_parm_adjustment::base
     The original PARM_DECL itself, helpful for processing of the body of the
     function itself.  Intended for traversing function bodies.
     ipa_modify_formal_parameters, ipa_modify_call_arguments and
     ipa_combine_adjustments ignore this and use base_index.
     ipa_modify_formal_parameters actually sets this.  

Referenced by ipa_free_all_structures_after_iinln(), and ipa_modify_call_arguments().

int ipa_parm_adjustment::base_index
     Zero based index of the original parameter this one is based on.  (ATM
     there is no way to insert a new parameter out of the blue because there is
     no need but if it arises the code can be easily exteded to do so.)  

Referenced by ipa_free_all_structures_after_iinln(), and ipa_modify_call_arguments().

unsigned ipa_parm_adjustment::by_ref
     The parameter is to be passed by reference.  
unsigned ipa_parm_adjustment::copy_param
     This new parameter is an unmodified parameter at index base_index. 

Referenced by ipa_free_all_structures_after_iinln().

tree ipa_parm_adjustment::new_ssa_base
     New declaration of a substitute variable that we may use to replace all
     non-default-def ssa names when a parm decl is going away.  
tree ipa_parm_adjustment::nonlocal_value
     If non-NULL and the original parameter is to be removed (copy_param below
     is NULL), this is going to be its nonlocalized vars value.  
HOST_WIDE_INT ipa_parm_adjustment::offset
     Offset into the original parameter (for the cases when the new parameter
     is a component of an original one).  
tree ipa_parm_adjustment::reduction
     The new declaration when creating/replacing a parameter.  Created by
     ipa_modify_formal_parameters, useful for functions modifying the body
     accordingly. 
unsigned ipa_parm_adjustment::remove_param
     This adjustment describes a parameter that is about to be removed
     completely.  Most users will probably need to book keep those so that they
     don't leave behinfd any non default def ssa names belonging to them.  

Referenced by ipa_free_all_structures_after_iinln().

tree ipa_parm_adjustment::type
     Type of the new parameter.  However, if by_ref is true, the real type will
     be a pointer to this type.  

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