osprey/common/com/pu_info.h File Reference

#include <elf.h>
#include "dwarf_DST_mem.h"
#include "symtab.h"

Include dependency graph for pu_info.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Types

type  pu_info

Defines

#define PU_HEADER_VERSION   1
#define WT_SYMTAB   0x0
#define WT_TREE   0x1
#define WT_DEPGRAPH   0x2
#define WT_PREFETCH   0x3
#define WT_REGIONS   0x4
#define WT_FEEDBACK   0x5
#define WT_FREQ   0x6
#define WT_AC_INTERNAL   0x7
#define WT_ALIAS_CLASS   0x8
#define WT_SUBSECTIONS   0x9
#define WT_PROC_SYM   -1
#define PU_HAS_GLOBALS   0x1
#define PU_HAS_NESTED_PU   0x2
#define PU_IS_COMPILER_GENERATED   0x4
#define PU_IS_DRA_CLONE   0x8
#define PU_PREGS_RENUMBERED   0x10
#define PU_INTERNAL_MASK   0xf0000000
#define PU_DELETED   0x10000000
#define PU_Info_proc_sym(pu)   (pu)->proc_sym
#define PU_Info_proc_id(pu)   (pu)->proc_sym
#define PU_Info_subsect_offset(pu, scn)   (pu)->subsect[scn].offset
#define PU_Info_subsect_size(pu, scn)   (pu)->subsect[scn].u.size
#define PU_Info_subsect_ptr(pu, scn)   (pu)->subsect[scn].u.ptr
#define PU_Info_flags(pu)   (pu)->flags
#define PU_Info_pu_dst(pu)   (pu)->pu_dst
#define PU_Info_cu_dst(pu)   (pu)->cu_dst
#define PU_Info_cu_dst(pu)   (pu)->cu_dst
#define PU_Info_maptab(pu)   (pu)->maptab
#define PU_Info_next(pu)   (pu)->next
#define PU_Info_child(pu)   (pu)->child
#define Set_PU_Info_flags(pu, flag_value)   (pu)->flags |= (flag_value)
#define Clear_PU_Info_flags(pu, flag_value)   (pu)->flags &= ~(flag_value)
#define Is_Set_PU_Info_flags(pu, flag_value)   ((pu)->flags & (flag_value))
#define PU_Info_state(pu, ndx)   (Subsect_State)(((pu)->state >> (((ndx) + 1) << 1)) & 0x3)
#define Set_PU_Info_state(pu, ndx, st)
#define PU_Info_symtab_ptr(pu)   (LOCAL_SYMTAB_HEADER_TABLE *) PU_Info_subsect_ptr((pu), WT_SYMTAB)
#define PU_Info_tree_ptr(pu)   (WN *)PU_Info_subsect_ptr((pu), WT_TREE)
#define PU_Info_depgraph_ptr(pu)   (void *)PU_Info_subsect_ptr((pu), WT_DEPGRAPH)
#define PU_Info_regions_ptr(pu)   (struct region_id *)PU_Info_subsect_ptr((pu), WT_REGIONS)
#define PU_Info_feedback_ptr(pu)   (void *)PU_Info_subsect_ptr((pu), WT_FEEDBACK)
#define PU_Info_frequencies_ptr(pu)   (INT32 *) PU_Info_subsect_ptr((pu), WT_FREQ)
#define PU_Info_alias_class_ptr(pu)   (INT32 *) PU_Info_subsect_ptr((pu), WT_ALIAS_CLASS)
#define PU_Info_ac_internal_ptr(pu)   (void *) PU_Info_subsect_ptr((pu), WT_AC_INTERNAL)
#define Set_PU_Info_tree_ptr(pu, x)   PU_Info_subsect_ptr((pu), WT_TREE) = (void *)(x)
#define Set_PU_Info_symtab_ptr(pu, x)   PU_Info_subsect_ptr((pu), WT_SYMTAB) = (void *)(x)
#define Set_PU_Info_depgraph_ptr(pu, x)   PU_Info_subsect_ptr((pu), WT_DEPGRAPH) = (void *)(x)
#define Set_PU_Info_regions_ptr(pu, x)   PU_Info_subsect_ptr((pu), WT_REGIONS) = (void *)(x)
#define Set_PU_Info_feedback_ptr(pu, x)   PU_Info_subsect_ptr((pu), WT_FEEDBACK) = (void *)(x)
#define Set_PU_Info_frequencies_ptr(pu, x)   PU_Info_subsect_ptr((pu), WT_FREQ) = (void *) (x)
#define Set_PU_Info_alias_class_ptr(pu, x)   PU_Info_subsect_ptr((pu), WT_ALIAS_CLASS) = (void *) (x)
#define Set_PU_Info_ac_internal_ptr(pu, x)   PU_Info_subsect_ptr((pu), WT_AC_INTERNAL) = (void *) (x)
#define Set_PU_Info_pu_dst(pu, x)   PU_Info_pu_dst(pu) = x;
#define Set_PU_Info_cu_dst(pu, x)   PU_Info_cu_dst(pu) = x;

Typedefs

typedef struct pu_info PU_Info
typedef enum subsect_state Subsect_State

Enumerations

enum  subsect_state {
  Subsect_Missing = 0, Subsect_Exists = 1, Subsect_InMem = 2, Subsect_Written = 3,
  Subsect_Missing = 0, Subsect_Exists = 1, Subsect_InMem = 2, Subsect_Written = 3
}

Functions/Subroutines

void PU_Info_init (PU_Info *pu)
INT Sizeof_PU_Infos (PU_Info *pu_tree)
INT Write_PU_Infos (PU_Info *pu_tree, char *base)
PU_InfoRead_PU_Infos (char *base, INT32 size, INT32 *p_num_PUs)
void Save_Local_Symtab (SYMTAB_IDX level, PU_Info *pu)
void Restore_Local_Symtab (PU_Info *pu)

Variables

PU_InfoCurrent_PU_Info


Define Documentation

#define Clear_PU_Info_flags ( pu,
flag_value   )     (pu)->flags &= ~(flag_value)

Definition at line 181 of file pu_info.h.

#define Is_Set_PU_Info_flags ( pu,
flag_value   )     ((pu)->flags & (flag_value))

#define PU_DELETED   0x10000000

Definition at line 114 of file pu_info.h.

#define PU_HAS_GLOBALS   0x1

Definition at line 99 of file pu_info.h.

Referenced by PDGCS_do_proc().

#define PU_HAS_NESTED_PU   0x2

Definition at line 101 of file pu_info.h.

Referenced by PDGCS_new_proc().

#define PU_HEADER_VERSION   1

Definition at line 69 of file pu_info.h.

Referenced by Print_whirl_pu_from_bits(), Read_PU_Infos(), and Write_PU_Infos().

#define PU_Info_ac_internal_ptr ( pu   )     (void *) PU_Info_subsect_ptr((pu), WT_AC_INTERNAL)

Definition at line 226 of file pu_info.h.

#define PU_Info_alias_class_ptr ( pu   )     (INT32 *) PU_Info_subsect_ptr((pu), WT_ALIAS_CLASS)

Definition at line 224 of file pu_info.h.

#define PU_Info_child ( pu   )     (pu)->child

#define PU_Info_cu_dst ( pu   )     (pu)->cu_dst

Definition at line 175 of file pu_info.h.

#define PU_Info_cu_dst ( pu   )     (pu)->cu_dst

#define PU_Info_depgraph_ptr ( pu   )     (void *)PU_Info_subsect_ptr((pu), WT_DEPGRAPH)

Definition at line 216 of file pu_info.h.

Referenced by LNO_Processing(), and MP_Fix_Dependence_Graph().

#define PU_Info_feedback_ptr ( pu   )     (void *)PU_Info_subsect_ptr((pu), WT_FEEDBACK)

Definition at line 220 of file pu_info.h.

Referenced by IP_READ_pu(), IPO_Clone(), ir_b2a_process_PUs(), and Preprocess_PU().

#define PU_Info_flags ( pu   )     (pu)->flags

#define PU_Info_frequencies_ptr ( pu   )     (INT32 *) PU_Info_subsect_ptr((pu), WT_FREQ)

Definition at line 222 of file pu_info.h.

#define PU_Info_maptab ( pu   )     (pu)->maptab

#define PU_Info_next ( pu   )     (pu)->next

#define PU_Info_proc_id ( pu   )     (pu)->proc_sym

Definition at line 158 of file pu_info.h.

Referenced by Print(), Print_whirl_pu_from_bits(), PU_Info_init(), and Read_PU_Infos().

#define PU_Info_proc_sym ( pu   )     (pu)->proc_sym

Definition at line 157 of file pu_info.h.

Referenced by Add_Doacross_Comments(), Add_Parallel_Region_Comments(), Allocate_PU_Points_To_Summary(), Build_Parent_Child_Relations_For_One_Parent(), clean_up_deleted_nested_pu_info(), Create_MicroTask(), Delete_Function(), Do_WOPT_and_CG_with_Regions(), DRA_Add_Clone(), fei_proc_body(), Free_Local_Info(), free_pu_cg_resources(), OUTPUT_FUNC_START_PROFILER::Generate_Func_Start_Profiler_PU(), get_ip_file_hdr(), Get_MP_accessed_id_list(), Get_Node_From_PU(), Get_Orig_PU_Name(), Get_points_to_summary(), Inliner_Read_PUs(), Inliner_Write_PUs(), IP_READ_pu(), IP_READ_remap_pu_infos(), IP_WRITE_pu(), IP_WRITE_pu_internal(), IP_write_PU_tree(), IPA_Add_Builtin_IPA_NODE(), IPA_Rename_Builtins(), IPA_Start_Function(), IPO_Clone(), ir_b2a_process_PUs(), lower_bit_field_id(), lower_mp(), LowerMP_PU_Init(), main(), no_inline_pu_with_nested_pus(), PDGCS_do_proc(), PDGCS_new_proc(), Postprocess_PU(), Preorder_Process_PUs(), Preprocess_PU(), Print_Mp_Lowerer_Name(), Print_Prompf_Doacross_Log(), Print_Prompf_Parallel_Region_Log(), Print_Prompl_Msgs(), Process_GDAR(), process_pu(), Prompf_Emit_Whirl_to_Source(), IPA_NODE::PU_Info(), output_queue::pu_tree_add_comments(), output_queue::push(), Read_Local_Info(), Restore_Local_Symtab(), Save_Local_Symtab(), OPT_STAB::Summarize_points_to(), Trans_Order_Walk(), Translate_Label(), VHO_Lower_Driver(), Walk_and_Localize(), WFE_Assemble_Asm(), WFE_Start_Function(), WGEN_Assemble_Asm(), WGEN_Start_Function(), WN_get_proc_sym(), WN_Rename_Duplicate_Labels(), WN_write_symtab(), Write_Dummy_PUs(), and write_PU_fields().

#define PU_Info_pu_dst ( pu   )     (pu)->pu_dst

#define PU_Info_regions_ptr ( pu   )     (struct region_id *)PU_Info_subsect_ptr((pu), WT_REGIONS)

Definition at line 218 of file pu_info.h.

Referenced by Create_MicroTask(), Process_Parallel_Do(), and Process_Parallel_Region().

#define PU_Info_state ( pu,
ndx   )     (Subsect_State)(((pu)->state >> (((ndx) + 1) << 1)) & 0x3)

#define PU_Info_subsect_offset ( pu,
scn   )     (pu)->subsect[scn].offset

#define PU_Info_subsect_ptr ( pu,
scn   )     (pu)->subsect[scn].u.ptr

Definition at line 171 of file pu_info.h.

Referenced by WN_read_generic_map(), and WN_write_tree().

#define PU_Info_subsect_size ( pu,
scn   )     (pu)->subsect[scn].u.size

#define PU_Info_symtab_ptr ( pu   )     (LOCAL_SYMTAB_HEADER_TABLE *) PU_Info_subsect_ptr((pu), WT_SYMTAB)

Definition at line 212 of file pu_info.h.

Referenced by process_pu(), Restore_Local_Symtab(), and Save_Local_Symtab().

#define PU_Info_tree_ptr ( pu   )     (WN *)PU_Info_subsect_ptr((pu), WT_TREE)

#define PU_INTERNAL_MASK   0xf0000000

Definition at line 113 of file pu_info.h.

#define PU_IS_COMPILER_GENERATED   0x4

#define PU_IS_DRA_CLONE   0x8

Definition at line 103 of file pu_info.h.

Referenced by DRA_Add_Clone(), and Preprocess_PU().

#define PU_PREGS_RENUMBERED   0x10

Definition at line 104 of file pu_info.h.

Referenced by Pre_Optimizer(), and This_preopt_renumbers_pregs().

#define Set_PU_Info_ac_internal_ptr ( pu,
 )     PU_Info_subsect_ptr((pu), WT_AC_INTERNAL) = (void *) (x)

Definition at line 243 of file pu_info.h.

Referenced by WN_write_tree().

#define Set_PU_Info_alias_class_ptr ( pu,
 )     PU_Info_subsect_ptr((pu), WT_ALIAS_CLASS) = (void *) (x)

Definition at line 241 of file pu_info.h.

Referenced by WN_write_tree().

#define Set_PU_Info_cu_dst ( pu,
 )     PU_Info_cu_dst(pu) = x;

Definition at line 248 of file pu_info.h.

Referenced by PDGCS_do_proc().

#define Set_PU_Info_depgraph_ptr ( pu,
 )     PU_Info_subsect_ptr((pu), WT_DEPGRAPH) = (void *)(x)

#define Set_PU_Info_feedback_ptr ( pu,
 )     PU_Info_subsect_ptr((pu), WT_FEEDBACK) = (void *)(x)

Definition at line 237 of file pu_info.h.

Referenced by Create_MicroTask().

#define Set_PU_Info_flags ( pu,
flag_value   )     (pu)->flags |= (flag_value)

#define Set_PU_Info_frequencies_ptr ( pu,
 )     PU_Info_subsect_ptr((pu), WT_FREQ) = (void *) (x)

Definition at line 239 of file pu_info.h.

#define Set_PU_Info_pu_dst ( pu,
 )     PU_Info_pu_dst(pu) = x;

Definition at line 246 of file pu_info.h.

Referenced by DRA_Add_Clone(), IPO_Clone(), and PDGCS_do_proc().

#define Set_PU_Info_regions_ptr ( pu,
 )     PU_Info_subsect_ptr((pu), WT_REGIONS) = (void *)(x)

Definition at line 235 of file pu_info.h.

Referenced by Create_MicroTask().

#define Set_PU_Info_state ( pu,
ndx,
st   ) 

#define Set_PU_Info_symtab_ptr ( pu,
 )     PU_Info_subsect_ptr((pu), WT_SYMTAB) = (void *)(x)

#define Set_PU_Info_tree_ptr ( pu,
 )     PU_Info_subsect_ptr((pu), WT_TREE) = (void *)(x)

#define WT_AC_INTERNAL   0x7

#define WT_ALIAS_CLASS   0x8

Definition at line 91 of file pu_info.h.

Referenced by IP_WRITE_pu_internal(), Read_Local_Info(), WN_write_tree(), and Write_PU_Info().

#define WT_DEPGRAPH   0x2

#define WT_FEEDBACK   0x5

#define WT_FREQ   0x6

Definition at line 89 of file pu_info.h.

Referenced by DRA_Add_Clone(), and Inliner_Read_PUs().

#define WT_PREFETCH   0x3

Definition at line 86 of file pu_info.h.

Referenced by size_of_each_pu(), and WN_write_tree().

#define WT_PROC_SYM   -1

#define WT_REGIONS   0x4

Definition at line 87 of file pu_info.h.

#define WT_SUBSECTIONS   0x9

Definition at line 93 of file pu_info.h.

Referenced by Read_PU_Infos(), Sizeof_PU_Infos(), and Write_PU_Infos().

#define WT_SYMTAB   0x0

#define WT_TREE   0x1


Typedef Documentation


Enumeration Type Documentation

Enumerator:
Subsect_Missing 
Subsect_Exists 
Subsect_InMem 
Subsect_Written 
Subsect_Missing 
Subsect_Exists 
Subsect_InMem 
Subsect_Written 

Definition at line 195 of file pu_info.h.


Function Documentation

void PU_Info_init ( PU_Info pu  ) 

Definition at line 76 of file pu_info.cxx.

PU_Info* Read_PU_Infos ( char *  base,
INT32  size,
INT32 p_num_PUs 
)

Definition at line 258 of file pu_info.cxx.

void Restore_Local_Symtab ( PU_Info pu  ) 

Definition at line 415 of file pu_info.cxx.

void Save_Local_Symtab ( SYMTAB_IDX  level,
PU_Info pu 
)

Definition at line 385 of file pu_info.cxx.

INT Sizeof_PU_Infos ( PU_Info pu_tree  ) 

Definition at line 92 of file pu_info.cxx.

INT Write_PU_Infos ( PU_Info pu_tree,
char *  base 
)

Definition at line 147 of file pu_info.cxx.


Variable Documentation

Definition at line 73 of file pu_info.cxx.


Generated on Wed Apr 8 14:39:57 2009 for Open64 by  doxygen 1.5.6