osprey/be/vho/vho_lower.cxx File Reference

#include <stdint.h>
#include "defs.h"
#include "config.h"
#include "config_opt.h"
#include "mempool.h"
#include "wn.h"
#include "wn_util.h"
#include "opcode.h"
#include <stdlib.h>
#include "flags.h"
#include "pu_info.h"
#include "vho_lower.h"
#include "f90_lower.h"
#include "fb_whirl.h"
#include "wn_simp.h"
#include "topcode.h"
#include "callutil.h"
#include "targ_sim.h"
#include "cxx_template.h"
#include "prompf.h"
#include "wb_f90_lower.h"
#include "wn_lower.h"
#include "be_util.h"
#include "glob.h"
#include "config_clist.h"
#include "tracing.h"
#include "ir_reader.h"
#include "config_vho.h"
#include "targ_const.h"
#include "erbe.h"

Include dependency graph for vho_lower.cxx:

Go to the source code of this file.

Data Types

type  bool_expr_info_t
type  switch_case_table_entry_t
type  label_map_t
module  VHO_Switches_Mgr

Defines

#define __STDC_LIMIT_MACROS
#define DO_VHO_LOWERING   1
#define IS_POWER_OF_2(x)   (((x)!=0) && ((x) & ((x)-1))==0)
#define ST_addr_taken_passed(st)   ST_addr_passed(st)
#define Set_ST_addr_taken_passed(st)   Set_ST_addr_passed(st)
#define Reset_ST_addr_taken_passed(st)   Reset_ST_addr_passed(st)
#define ST_addr_taken_saved(st)   ST_addr_saved(st)
#define Set_ST_addr_taken_saved(st)   Set_ST_addr_saved(st)
#define Reset_ST_addr_taken_saved(st)   Reset_ST_addr_saved(st)
#define VHO_SWITCH_wn(i)   (VHO_Switch_Case_Table[i].wn)
#define VHO_SWITCH_count(i)   (VHO_Switch_Case_Table[i].count)
#define VHO_SWITCH_freq(i)   (VHO_Switch_Case_Table[i].freq)
#define LESS   -1
#define EQUAL   0
#define GREATER   1
#define SWITCH_key(i)   (VHO_Switch_Signed ? WN_const_val(VHO_SWITCH_wn(i)) : (UINT64) WN_const_val(VHO_SWITCH_wn(i)))
#define record_combine_loads_failure(x, y)

Typedefs

typedef struct bool_expr_info_t BOOL_INFO
typedef struct
switch_case_table_entry_t 
VHO_SWITCH_ITEM
typedef struct label_map_t LABEL_MAP

Enumerations

enum  ADDRESS_INFO_TYPE { ADDRESS_USED, ADDRESS_PASSED, ADDRESS_SAVED }

Functions/Subroutines

static BOOL VHO_WN_is_zero (WN *wn)
static BOOL VHO_WN_has_side_effects (WN *wn)
static WNvho_lower (WN *wn, WN *block)
static WNvho_lower_stmt (WN *stmt, WN *block)
static WNvho_lower_block (WN *wn)
static WNvho_lower_expr (WN *expr, WN *block, BOOL_INFO *bool_info, BOOL is_return=FALSE)
INT32 VHO_Switch_Compare_Value (const void *v_item1, const void *v_item2)
INT32 VHO_Switch_Compare_Frequency (const void *v_item1, const void *v_item2)
static WNVHO_Switch_Generate_If_Else (SRCPOS srcpos)
static WNVHO_Switch_Opt_Case_Hoist (SRCPOS srcpos)
static WNVHO_Switch_Generate_Compgoto (SRCPOS srcpos)
static void VHO_Switch_Generate_Binary_Search (INT32 left, INT32 right, WN *block)
static void VHO_Switch_Find_Clusters (void)
static WNVHO_Lower_Switch (WN *wn)
static WNVHO_Lower_Compgoto (WN *wn)
static UINT VHO_Get_Field_List (WN_OFFSET offset, TY_IDX sty_idx, UINT field_id)
static TY_IDX get_field_type (TY_IDX struct_type, UINT field_id)
WNVHO_Lower_Mstore (WN *wn)
BOOL Is_Ldid_Or_Lda (WN *tree)
BOOL Is_Multiply_Or_Cvt_Multiply (WN *tree)
static WNFind_Ldid_Under_Iload (WN *iload_kid)
static TY_IDX Is_MM_load (WN *src, WN *dst)
WNVHO_Lower_Mstid (WN *wn)
WNVHO_Lower_Mistore (WN *wn)
static void vho_lower_set_st_addr_info (WN *wn, ADDRESS_INFO_TYPE code)
static void vho_initialize_bool_info (BOOL_INFO *bool_info)
static WNvho_lower_comma (WN *wn, WN *block, BOOL_INFO *bool_info, BOOL is_return=FALSE)
static WNvho_lower_rcomma (WN *wn, WN *block, BOOL_INFO *bool_info)
static WNvho_simplify_cand (WN *wn, WN *l_wn, WN *r_wn)
static WNvho_simplify_cior (WN *wn, WN *l_wn, WN *r_wn)
static WNvho_simplify_cand_cior (WN *wn)
static WNvho_lower_cand_cior (WN *wn, WN *block, BOOL_INFO *bool_info)
static WNvho_lower_cselect (WN *wn_cselect, WN *block, BOOL_INFO *bool_info)
WNvho_lower_combine_loads (WN *wn)
static WNvho_lower_compgoto (WN *wn, WN *block)
static WNvho_lower_switch (WN *wn, WN *block)
static WNvho_lower_casegoto (WN *wn, WN *block)
static WNvho_lower_truebr (WN *wn, WN *block)
static WNvho_lower_return (WN *wn, WN *block)
static BOOL vho_singleton_field (TY_IDX ty_idx)
static WNvho_lower_return_val (WN *wn, WN *block)
static WNvho_lower_istore (WN *wn, WN *block)
static WNvho_lower_mstore (WN *wn, WN *block)
static WNvho_lower_stid (WN *wn, WN *block)
static WNvho_lower_call (WN *wn, WN *block)
static char * extract_pu_name (char *src_pu_name)
BOOL Is_Return_Store_Stmt (WN *wn)
int GetPUSizeFromEnv (char *puname)
static WNvho_lower_if (WN *wn, WN *block)
int Get_len_and_goaheadlen (char **str)
int Is_similar_cppname (char *name1, char *name2)
static WNvho_lower_icall (WN *wn, WN *block)
static WNvho_lower_intrinsic_call (WN *wn, WN *block)
static WNvho_lower_eval (WN *wn, WN *block)
static WNvho_lower_pragma (WN *wn, WN *block)
static WNvho_lower_xpragma (WN *wn, WN *block)
static WNvho_lower_prefetch (WN *wn, WN *block)
static WNvho_lower_prefetchx (WN *wn, WN *block)
static WNvho_lower_io (WN *wn, WN *block)
static WNvho_lower_falsebr (WN *wn, WN *block)
static WNvho_lower_trap (WN *wn, WN *block)
static WNvho_lower_asm_stmt (WN *wn, WN *block)
static WNvho_lower_region (WN *wn)
static WNvho_lower_do_loop (WN *wn, WN *block)
static WNvho_lower_do_while (WN *wn, WN *block)
static void vho_lower_check_labels (WN *wn)
static void vho_lower_rename_labels_defined (WN *wn)
static WNSubstitute_LDID (WN *wn, WN *stid, WN *org, BOOL &replaced)
static void Eliminate_Temp_In_While (WN *test_wn)
static WNvho_lower_while_do (WN *wn, WN *block)
static WNvho_lower_scf (WN *wn, WN *block)
static WNvho_lower_entry (WN *wn)
WNVHO_Lower (WN *wn)
void Disable_VHO_Opt ()
void Enable_VHO_Opt ()
void Vho_Init ()
void Vho_Fini ()
WNVHO_Lower_Driver (PU_Info *pu_info, WN *wn)

Variables

TYPE_ID Promoted_Mtype [MTYPE_LAST+1]
static SRCPOS VHO_Srcpos
INT32 VHO_Switch_Distance = 128
INT32 VHO_Switch_Default_Label_Count = 16
BOOL VHO_Give_Preg_Names = FALSE
static const char * vho_lower_mstore_name = "__lower_mstore"
static const char * vho_lower_cand_cior_name = "__cand_cior"
static const char * vho_lower_cselect_name = "__cselect"
static const char * vho_lower_rcomma_name = "__rcomma"
static const char * vho_lower_comma_name = "__comma"
static TY_IDX vho_u4a1_ty_idx = (TY_IDX) 0
static TY_IDX vho_u8a1_ty_idx = (TY_IDX) 0
static VHO_SWITCH_ITEMVHO_Switch_Case_Table
static BOOL VHO_Switch_Signed
static OPCODE VHO_Switch_Int_Opcode
static OPCODE VHO_Switch_Sub_Opcode
static OPCODE VHO_Switch_EQ_Opcode
static OPCODE VHO_Switch_LT_Opcode
static OPCODE VHO_Switch_GT_Opcode
static LABEL_IDX VHO_Switch_Default_Label
static INT32 VHO_Switch_Last_Label
static INT32VHO_Switch_Cluster_Table
static INT32 VHO_Switch_Ncases
static INT32 VHO_Switch_Nclusters
static WNVHO_Switch_Index
static WNVHO_Switch_Default_Goto
static WNVHO_Switch_Stmt
static FB_FREQ VHO_Switch_Default_Freq
INT32 VHO_Struct_Limit = 4
static BOOL VHO_Struct_Can_Be_Lowered
static INT32 VHO_Struct_Nfields
static TY_IDX VHO_Struct_Fld_Table [255]
static INT32 VHO_Struct_Offset_Table [255]
static INT32 VHO_Struct_Field_Id_Table [255]
static BOOL VHO_Struct_Field_Is_Array_Table [255]
static INT32 VHO_Struct_Last_Field_Offset
static INT32 VHO_Struct_Last_Field_Size
return wn
static BOOL vho_lower_labels_defined = FALSE
static BOOL vho_lower_too_many_label_definitions = FALSE
static LABEL_MAP vho_lower_label_map [16]
static INT32 vho_lower_label_map_max = 16
static INT32 vho_lower_label_map_index = -1
static INT32 vho_if_nest_level = 0
static VHO_Switches_Mgr vho_switches_mgr


Define Documentation

#define __STDC_LIMIT_MACROS

Definition at line 42 of file vho_lower.cxx.

#define DO_VHO_LOWERING   1

Definition at line 89 of file vho_lower.cxx.

#define EQUAL   0

#define GREATER   1

Definition at line 288 of file vho_lower.cxx.

Referenced by VHO_Switch_Compare_Frequency(), and VHO_Switch_Compare_Value().

#define IS_POWER_OF_2 (  )     (((x)!=0) && ((x) & ((x)-1))==0)

Definition at line 90 of file vho_lower.cxx.

#define LESS   -1

Definition at line 286 of file vho_lower.cxx.

Referenced by VHO_Switch_Compare_Frequency(), and VHO_Switch_Compare_Value().

#define record_combine_loads_failure ( x,
 ) 

Definition at line 3881 of file vho_lower.cxx.

Referenced by vho_lower_combine_loads().

#define Reset_ST_addr_taken_passed ( st   )     Reset_ST_addr_passed(st)

Definition at line 94 of file vho_lower.cxx.

#define Reset_ST_addr_taken_saved ( st   )     Reset_ST_addr_saved(st)

Definition at line 97 of file vho_lower.cxx.

#define Set_ST_addr_taken_passed ( st   )     Set_ST_addr_passed(st)

#define Set_ST_addr_taken_saved ( st   )     Set_ST_addr_saved(st)

Definition at line 96 of file vho_lower.cxx.

Referenced by vho_lower_set_st_addr_info().

#define ST_addr_taken_passed ( st   )     ST_addr_passed(st)

Definition at line 92 of file vho_lower.cxx.

Referenced by ARA_LOOP_INFO::Determine_Last_Value().

#define ST_addr_taken_saved ( st   )     ST_addr_saved(st)

#define SWITCH_key ( i   )     (VHO_Switch_Signed ? WN_const_val(VHO_SWITCH_wn(i)) : (UINT64) WN_const_val(VHO_SWITCH_wn(i)))

Definition at line 290 of file vho_lower.cxx.

Referenced by VHO_Switch_Find_Clusters().

#define VHO_SWITCH_count ( i   )     (VHO_Switch_Case_Table[i].count)

Definition at line 237 of file vho_lower.cxx.

Referenced by VHO_Lower_Switch(), and VHO_Switch_Opt_Case_Hoist().

#define VHO_SWITCH_freq ( i   )     (VHO_Switch_Case_Table[i].freq)

#define VHO_SWITCH_wn ( i   )     (VHO_Switch_Case_Table[i].wn)


Typedef Documentation


Enumeration Type Documentation

Enumerator:
ADDRESS_USED 
ADDRESS_PASSED 
ADDRESS_SAVED 

Definition at line 75 of file vho_lower.cxx.


Function Documentation

void Disable_VHO_Opt (  ) 

Definition at line 8379 of file vho_lower.cxx.

References VHO_Switches_Mgr::Disable().

Referenced by VHO_Lower_Driver().

static void Eliminate_Temp_In_While ( WN test_wn  )  [static]

void Enable_VHO_Opt (  ) 

Definition at line 8384 of file vho_lower.cxx.

References VHO_Switches_Mgr::Enable().

Referenced by VHO_Lower_Driver().

static char* extract_pu_name ( char *  src_pu_name  )  [static]

Definition at line 4767 of file vho_lower.cxx.

References NULL, and strchr.

Referenced by vho_lower_icall().

static WN* Find_Ldid_Under_Iload ( WN iload_kid  )  [static]

static TY_IDX get_field_type ( TY_IDX  struct_type,
UINT  field_id 
) [static]

int Get_len_and_goaheadlen ( char **  str  ) 

Definition at line 4816 of file vho_lower.cxx.

References atoi(), len, and strlen().

Referenced by Is_similar_cppname().

int GetPUSizeFromEnv ( char *  puname  ) 

Definition at line 4799 of file vho_lower.cxx.

References atoi(), getenv(), NULL, and p.

BOOL Is_Ldid_Or_Lda ( WN tree  )  [inline]

Definition at line 1754 of file vho_lower.cxx.

References OPR_LDA, OPR_LDID, and WN_operator().

Referenced by Find_Ldid_Under_Iload().

static TY_IDX Is_MM_load ( WN src,
WN dst 
) [static]

BOOL Is_Multiply_Or_Cvt_Multiply ( WN tree  )  [inline]

Definition at line 1759 of file vho_lower.cxx.

References OPR_CVT, OPR_MPY, WN_kid0(), and WN_operator().

Referenced by Find_Ldid_Under_Iload().

BOOL Is_Return_Store_Stmt ( WN wn  ) 

int Is_similar_cppname ( char *  name1,
char *  name2 
)

Definition at line 4845 of file vho_lower.cxx.

References Get_len_and_goaheadlen(), NULL, strcmp(), strlen(), strncmp(), and strstr().

Referenced by vho_lower_icall().

static WN* Substitute_LDID ( WN wn,
WN stid,
WN org,
BOOL replaced 
) [static]

void Vho_Fini (  ) 

Definition at line 8398 of file vho_lower.cxx.

Referenced by Phase_Fini().

static UINT VHO_Get_Field_List ( WN_OFFSET  offset,
TY_IDX  sty_idx,
UINT  field_id 
) [static]

void Vho_Init (  ) 

Definition at line 8389 of file vho_lower.cxx.

References Build_Skiplist(), VHO_Switches_Mgr::Init(), VHO_Skip, and VHO_Skip_List.

Referenced by Phase_Init().

static void vho_initialize_bool_info ( BOOL_INFO bool_info  )  [static]

WN* VHO_Lower ( WN wn  ) 

static WN * vho_lower ( WN wn,
WN block 
) [static]

static WN* vho_lower_asm_stmt ( WN wn,
WN block 
) [static]

Definition at line 5311 of file vho_lower.cxx.

References INT32, NULL, vho_lower_expr(), WN_kid(), and WN_kid_count().

Referenced by vho_lower_stmt().

static WN * vho_lower_block ( WN wn  )  [static]

static WN* vho_lower_call ( WN wn,
WN block 
) [static]

static WN* vho_lower_cand_cior ( WN wn,
WN block,
BOOL_INFO bool_info 
) [static]

static WN* vho_lower_casegoto ( WN wn,
WN block 
) [static]

Definition at line 4640 of file vho_lower.cxx.

Referenced by vho_lower_stmt().

static void vho_lower_check_labels ( WN wn  )  [static]

Definition at line 5850 of file vho_lower.cxx.

References CURRENT_SYMTAB, FmtAssert, INT32, label_map_t::label_flag, LABEL_Init(), LKIND_DEFAULT, new_label, New_LABEL(), label_map_t::old_label, OPR_ABS, OPR_ADD, OPR_AGOTO, OPR_ALTENTRY, OPR_ARRAY, OPR_ARRAYEXP, OPR_ARRSECTION, OPR_ASHR, OPR_ASSERT, OPR_BACKWARD_BARRIER, OPR_BAND, OPR_BIOR, OPR_BLOCK, OPR_BNOR, OPR_BNOT, OPR_BXOR, OPR_CALL, OPR_CAND, OPR_CASEGOTO, OPR_CEIL, OPR_CIOR, OPR_COMMA, OPR_COMMENT, OPR_COMPGOTO, OPR_COMPLEX, OPR_COMPOSE_BITS, OPR_CONST, OPR_CSELECT, OPR_CVT, OPR_CVTL, OPR_DIV, OPR_DIVREM, OPR_DO_LOOP, OPR_DO_WHILE, OPR_EQ, OPR_EVAL, OPR_EXC_SCOPE_BEGIN, OPR_EXC_SCOPE_END, OPR_FALSEBR, OPR_FLOOR, OPR_FORWARD_BARRIER, OPR_FUNC_ENTRY, OPR_GE, OPR_GOTO, OPR_GOTO_OUTER_BLOCK, OPR_GT, OPR_HIGHMPY, OPR_HIGHPART, OPR_ICALL, OPR_IDNAME, OPR_IF, OPR_ILOAD, OPR_ILOADX, OPR_IMAGPART, OPR_INTCONST, OPR_INTRINSIC_CALL, OPR_INTRINSIC_OP, OPR_IO, OPR_IO_ITEM, OPR_ISTORE, OPR_ISTOREX, OPR_LABEL, OPR_LAND, OPR_LDA, OPR_LDID, OPR_LE, OPR_LIOR, OPR_LNOT, OPR_LOOP_INFO, OPR_LOWPART, OPR_LSHR, OPR_LT, OPR_MADD, OPR_MAX, OPR_MAXPART, OPR_MIN, OPR_MINMAX, OPR_MINPART, OPR_MLOAD, OPR_MOD, OPR_MPY, OPR_MSTORE, OPR_MSUB, OPR_NE, OPR_NEG, OPR_NMADD, OPR_NMSUB, OPR_OPT_CHI, OPR_OPT_RESERVE2, OPR_PAREN, OPR_PARM, OPR_PICCALL, OPR_PRAGMA, OPR_PREFETCH, OPR_PREFETCHX, OPR_RCOMMA, OPR_REALPART, OPR_RECIP, OPR_REGION, OPR_REGION_EXIT, OPR_REM, OPR_RETURN, OPR_RND, OPR_RSQRT, OPR_SELECT, OPR_SHL, OPR_SQRT, OPR_STID, OPR_SUB, OPR_SWITCH, OPR_TAS, OPR_TRAP, OPR_TRIPLET, OPR_TRUEBR, OPR_TRUNC, OPR_WHERE, OPR_WHILE_DO, OPR_XGOTO, OPR_XMPY, OPR_XPRAGMA, TRUE, WN_actual, WN_do_body, WN_else, WN_end, WN_first(), WN_func_body, WN_if_test, WN_index, WN_kid(), WN_kid0(), WN_kid1(), WN_kid2(), WN_kid_count(), WN_label_flag(), WN_label_number(), WN_next(), WN_operator(), WN_region_body, WN_start, WN_step, WN_then, WN_while_body, and WN_while_test.

Referenced by vho_lower_while_do().

WN* vho_lower_combine_loads ( WN wn  ) 

static WN* vho_lower_comma ( WN wn,
WN block,
BOOL_INFO bool_info,
BOOL  is_return = FALSE 
) [static]

static WN* vho_lower_compgoto ( WN wn,
WN block 
) [static]

Definition at line 4622 of file vho_lower.cxx.

References NULL, vho_lower_block(), vho_lower_expr(), WN_kid0(), and WN_kid1().

Referenced by vho_lower_stmt().

static WN* VHO_Lower_Compgoto ( WN wn  )  [static]

Definition at line 1242 of file vho_lower.cxx.

static WN* vho_lower_cselect ( WN wn_cselect,
WN block,
BOOL_INFO bool_info 
) [static]

Definition at line 3384 of file vho_lower.cxx.

References ADDRESS_SAVED, FEEDBACK::Annot(), Be_Type_Tbl, BOOL, Create_Preg(), Cur_PU_Feedback, CURRENT_SYMTAB, DevWarn, FALSE, bool_expr_info_t::false_label, FB_FREQ_UNKNOWN, FEEDBACK::FB_lower_branch(), FmtAssert, Force_IEEE_Comparisons, Gen_Temp_Symbol(), get_field_type(), LABEL_Init(), LKIND_DEFAULT, MTYPE_I4, MTYPE_is_float, MTYPE_is_integral, MTYPE_M, MTYPE_name, MTYPE_signed, MTYPE_To_PREG, MTYPE_To_TY, MTYPE_U4, MTYPE_V, New_LABEL(), NULL, offset, OPC_MCSELECT, OPC_MLOAD, OPC_VCSELECT, opcode, OPCODE_make_op(), OPCODE_name(), OPR_ABS, OPR_ADD, OPR_BIOR, OPR_CVTL, OPR_GE, OPR_GT, OPR_INTCONST, OPR_INTRINSIC_OP, OPR_LDID, OPR_LE, OPR_LT, OPR_MAX, OPR_MIN, OPR_NE, OPR_NEG, OPR_STID, OPR_SUB, Pointer_Mtype, Promoted_Mtype, ST_st_idx, ST_type, TRUE, bool_expr_info_t::true_label, TYPE_ID, bool_expr_info_t::used_false_label, bool_expr_info_t::used_true_label, VHO_Cselect_Opt, vho_initialize_bool_info(), vho_lower_cselect_name, vho_lower_expr(), vho_lower_set_st_addr_info(), VHO_Srcpos, VHO_WN_has_side_effects(), VHO_WN_is_zero(), WHIRL_Mldid_Mstid_On, WN_Binary(), WN_const_val(), WN_Create_Intrinsic, WN_CreateBlock, WN_CreateExp1, WN_CreateExp2, WN_CreateGoto, WN_CreateIf, WN_CreateIntconst, WN_CreateLabel, WN_CreateLdid, WN_CreateMload, WN_CreateParm, WN_CreateStid, WN_Cvt(), WN_cvtl_bits(), WN_desc(), WN_field_id(), WN_first(), WN_has_sym, WN_INSERT_BlockLast, WN_kid0(), WN_kid1(), WN_kid2(), WN_Ldid(), WN_offset(), WN_opcode(), WN_operator(), WN_PARM_BY_VALUE, WN_rtype(), WN_Set_Linenum(), WN_Simp_Compare_Trees(), WN_st(), WN_Stid(), and WN_ty().

Referenced by vho_lower_expr().

static WN* vho_lower_do_loop ( WN wn,
WN block 
) [static]

static WN* vho_lower_do_while ( WN wn,
WN block 
) [static]

WN* VHO_Lower_Driver ( PU_Info pu_info,
WN wn 
)

static WN* vho_lower_entry ( WN wn  )  [static]

static WN* vho_lower_eval ( WN wn,
WN block 
) [static]

Definition at line 5192 of file vho_lower.cxx.

References NULL, vho_lower_expr(), and WN_kid0().

Referenced by vho_lower_stmt().

static WN * vho_lower_expr ( WN expr,
WN block,
BOOL_INFO bool_info,
BOOL  is_return = FALSE 
) [static]

Definition at line 4257 of file vho_lower.cxx.

References Be_Type_Tbl, CLASS_VAR, exp, FmtAssert, Get_Current_PU, INT, INT32, INT32_MAX, INT32_MIN, INT64, INTRN_F4I4EXPEXPR, INTRN_F8I4EXPEXPR, Is_Target_64bit, KIND_STRUCT, mINT16, MTYPE_byte_size, MTYPE_size_min, Mtype_TransferSign(), MTYPE_U4, MTYPE_V, n, NULL, offset, opcode, OPCODE_desc(), OPCODE_make_op(), OPCODE_operator(), OPCODE_rtype(), opnd, OPR_ABS, OPR_ADD, OPR_ALLOCA, OPR_ARRAY, OPR_ARRAYEXP, OPR_ARRSECTION, OPR_ASHR, OPR_ASM_INPUT, OPR_BAND, OPR_BIOR, OPR_BNOR, OPR_BNOT, OPR_BXOR, OPR_CAND, OPR_CEIL, OPR_CIOR, OPR_COMMA, OPR_COMPLEX, OPR_COMPOSE_BITS, OPR_CONST, OPR_CSELECT, OPR_CVT, OPR_CVTL, OPR_DIV, OPR_DIVREM, OPR_EQ, OPR_EXTRACT_BITS, OPR_FLOOR, OPR_GE, OPR_GT, OPR_HIGHMPY, OPR_HIGHPART, OPR_IDNAME, OPR_ILOAD, OPR_ILOADX, OPR_IMAGPART, OPR_INTCONST, OPR_INTRINSIC_OP, OPR_IO_ITEM, OPR_LAND, OPR_LDA, OPR_LDID, OPR_LE, OPR_LIOR, OPR_LNOT, OPR_LOOP_INFO, OPR_LOWPART, OPR_LSHR, OPR_LT, OPR_MADD, OPR_MAX, OPR_MAXPART, OPR_MIN, OPR_MINMAX, OPR_MINPART, OPR_MLOAD, OPR_MOD, OPR_MPY, OPR_MSUB, OPR_NE, OPR_NEG, OPR_NMADD, OPR_NMSUB, OPR_OPT_RESERVE2, OPR_PAREN, OPR_PARM, OPR_RCOMMA, OPR_REALPART, OPR_RECIP, OPR_REM, OPR_RND, OPR_RROTATE, OPR_RSQRT, OPR_SELECT, OPR_SHL, OPR_SQRT, OPR_SUB, OPR_TAS, OPR_TRIPLET, OPR_TRUNC, OPR_WHERE, OPR_XMPY, PU_cxx_lang(), ST_class, ST_type, TRUE, TY_kind, TY_size, TYPE_ID, VHO_Combine_Loads, VHO_Iload_Opt, vho_lower_cand_cior(), vho_lower_combine_loads(), vho_lower_comma(), vho_lower_cselect(), vho_lower_rcomma(), VHO_Srcpos, WN_Binary(), WN_Bior, WN_const_val(), WN_COPY_Tree(), WN_CreateCvtl, WN_CreateLdid, WN_desc(), WN_field_id(), WN_Intconst(), WN_intrinsic(), WN_kid(), WN_kid0(), WN_kid1(), WN_kid2(), WN_kid_count(), WN_lda_offset(), WN_load_offset(), WN_Lshr, WN_Mpy, WN_offset(), WN_opcode(), WN_operator(), WN_rtype(), WN_Shl, WN_st(), WN_st_idx(), and WN_ty().

Referenced by vho_lower(), vho_lower_asm_stmt(), vho_lower_call(), vho_lower_cand_cior(), vho_lower_comma(), vho_lower_compgoto(), vho_lower_cselect(), vho_lower_do_loop(), vho_lower_do_while(), vho_lower_eval(), vho_lower_falsebr(), vho_lower_if(), vho_lower_intrinsic_call(), vho_lower_io(), vho_lower_istore(), vho_lower_mstore(), vho_lower_prefetch(), vho_lower_rcomma(), vho_lower_return_val(), vho_lower_stid(), vho_lower_switch(), vho_lower_truebr(), vho_lower_while_do(), and vho_lower_xpragma().

static WN* vho_lower_falsebr ( WN wn,
WN block 
) [static]

static WN* vho_lower_icall ( WN wn,
WN block 
) [static]

static WN * vho_lower_if ( WN wn,
WN block 
) [static]

static WN* vho_lower_intrinsic_call ( WN wn,
WN block 
) [static]

Definition at line 5180 of file vho_lower.cxx.

References INT32, NULL, vho_lower_expr(), WN_actual, and WN_kid_count().

Referenced by vho_lower_stmt().

static WN* vho_lower_io ( WN wn,
WN block 
) [static]

Definition at line 5254 of file vho_lower.cxx.

References INT32, NULL, vho_lower_expr(), WN_kid(), and WN_kid_count().

Referenced by vho_lower_stmt().

static WN* vho_lower_istore ( WN wn,
WN block 
) [static]

Definition at line 4715 of file vho_lower.cxx.

References NULL, vho_lower_expr(), WN_kid0(), and WN_kid1().

Referenced by vho_lower_stmt().

WN* VHO_Lower_Mistore ( WN wn  ) 

WN* VHO_Lower_Mstid ( WN wn  ) 

static WN* vho_lower_mstore ( WN wn,
WN block 
) [static]

Definition at line 4724 of file vho_lower.cxx.

References NULL, vho_lower_expr(), VHO_Lower_Mstore(), WN_kid(), WN_kid0(), and WN_kid1().

Referenced by vho_lower_stmt().

WN* VHO_Lower_Mstore ( WN wn  ) 

static WN* vho_lower_pragma ( WN wn,
WN block 
) [static]

Definition at line 5205 of file vho_lower.cxx.

Referenced by vho_lower_stmt().

static WN* vho_lower_prefetch ( WN wn,
WN block 
) [static]

Definition at line 5236 of file vho_lower.cxx.

References NULL, vho_lower_expr(), and WN_kid0().

Referenced by vho_lower_stmt().

static WN* vho_lower_prefetchx ( WN wn,
WN block 
) [static]

Definition at line 5247 of file vho_lower.cxx.

Referenced by vho_lower_stmt().

static WN* vho_lower_rcomma ( WN wn,
WN block,
BOOL_INFO bool_info 
) [static]

static WN* vho_lower_region ( WN wn  )  [static]

Definition at line 5676 of file vho_lower.cxx.

References vho_lower_block(), and WN_region_body.

Referenced by vho_lower_scf().

static void vho_lower_rename_labels_defined ( WN wn  )  [static]

Definition at line 6251 of file vho_lower.cxx.

References FmtAssert, INT32, OPR_ABS, OPR_ADD, OPR_AGOTO, OPR_ALTENTRY, OPR_ARRAY, OPR_ARRAYEXP, OPR_ARRSECTION, OPR_ASHR, OPR_ASSERT, OPR_BACKWARD_BARRIER, OPR_BAND, OPR_BIOR, OPR_BLOCK, OPR_BNOR, OPR_BNOT, OPR_BXOR, OPR_CALL, OPR_CAND, OPR_CASEGOTO, OPR_CEIL, OPR_CIOR, OPR_COMMA, OPR_COMMENT, OPR_COMPGOTO, OPR_COMPLEX, OPR_COMPOSE_BITS, OPR_CONST, OPR_CSELECT, OPR_CVT, OPR_CVTL, OPR_DIV, OPR_DIVREM, OPR_DO_LOOP, OPR_DO_WHILE, OPR_EQ, OPR_EVAL, OPR_EXC_SCOPE_BEGIN, OPR_EXC_SCOPE_END, OPR_FALSEBR, OPR_FLOOR, OPR_FORWARD_BARRIER, OPR_FUNC_ENTRY, OPR_GE, OPR_GOTO, OPR_GOTO_OUTER_BLOCK, OPR_GT, OPR_HIGHMPY, OPR_HIGHPART, OPR_ICALL, OPR_IDNAME, OPR_IF, OPR_ILOAD, OPR_ILOADX, OPR_IMAGPART, OPR_INTCONST, OPR_INTRINSIC_CALL, OPR_INTRINSIC_OP, OPR_IO, OPR_IO_ITEM, OPR_ISTORE, OPR_ISTOREX, OPR_LABEL, OPR_LAND, OPR_LDA, OPR_LDID, OPR_LE, OPR_LIOR, OPR_LNOT, OPR_LOOP_INFO, OPR_LOWPART, OPR_LSHR, OPR_LT, OPR_MADD, OPR_MAX, OPR_MAXPART, OPR_MIN, OPR_MINMAX, OPR_MINPART, OPR_MLOAD, OPR_MOD, OPR_MPY, OPR_MSTORE, OPR_MSUB, OPR_NE, OPR_NEG, OPR_NMADD, OPR_NMSUB, OPR_OPT_CHI, OPR_OPT_RESERVE2, OPR_PAREN, OPR_PARM, OPR_PICCALL, OPR_PRAGMA, OPR_PREFETCH, OPR_PREFETCHX, OPR_RCOMMA, OPR_REALPART, OPR_RECIP, OPR_REGION, OPR_REGION_EXIT, OPR_REM, OPR_RETURN, OPR_RND, OPR_RSQRT, OPR_SELECT, OPR_SHL, OPR_SQRT, OPR_STID, OPR_SUB, OPR_SWITCH, OPR_TAS, OPR_TRAP, OPR_TRIPLET, OPR_TRUEBR, OPR_TRUNC, OPR_WHERE, OPR_WHILE_DO, OPR_XGOTO, OPR_XMPY, OPR_XPRAGMA, TRUE, WN_actual, WN_do_body, WN_else, WN_end, WN_first(), WN_func_body, WN_if_test, WN_index, WN_kid(), WN_kid0(), WN_kid1(), WN_kid2(), WN_kid_count(), WN_next(), WN_operator(), WN_region_body, WN_start, WN_step, WN_then, WN_while_body, and WN_while_test.

Referenced by vho_lower_while_do().

static WN* vho_lower_return ( WN wn,
WN block 
) [static]

Definition at line 4696 of file vho_lower.cxx.

Referenced by vho_lower_stmt().

static WN* vho_lower_return_val ( WN wn,
WN block 
) [static]

Definition at line 4708 of file vho_lower.cxx.

References MTYPE_M, NULL, vho_lower_expr(), WN_kid0(), and WN_rtype().

Referenced by vho_lower_stmt().

static WN* vho_lower_scf ( WN wn,
WN block 
) [static]

static void vho_lower_set_st_addr_info ( WN wn,
ADDRESS_INFO_TYPE  code 
) [static]

static WN* vho_lower_stid ( WN wn,
WN block 
) [static]

Definition at line 4736 of file vho_lower.cxx.

References MTYPE_M, NULL, vho_lower_expr(), VHO_Lower_Mstid(), WN_desc(), and WN_kid0().

Referenced by vho_lower_stmt().

static WN * vho_lower_stmt ( WN stmt,
WN block 
) [static]

static WN* vho_lower_switch ( WN wn,
WN block 
) [static]

Definition at line 4631 of file vho_lower.cxx.

References NULL, vho_lower_expr(), VHO_Lower_Switch(), and WN_kid0().

Referenced by vho_lower_stmt().

static WN* VHO_Lower_Switch ( WN wn  )  [static]

static WN* vho_lower_trap ( WN wn,
WN block 
) [static]

Definition at line 5304 of file vho_lower.cxx.

Referenced by vho_lower_stmt().

static WN* vho_lower_truebr ( WN wn,
WN block 
) [static]

static WN* vho_lower_while_do ( WN wn,
WN block 
) [static]

static WN* vho_lower_xpragma ( WN wn,
WN block 
) [static]

static WN* vho_simplify_cand ( WN wn,
WN l_wn,
WN r_wn 
) [static]

static WN* vho_simplify_cand_cior ( WN wn  )  [static]

static WN* vho_simplify_cior ( WN wn,
WN l_wn,
WN r_wn 
) [static]

static BOOL vho_singleton_field ( TY_IDX  ty_idx  )  [static]

Definition at line 4702 of file vho_lower.cxx.

References FALSE.

INT32 VHO_Switch_Compare_Frequency ( const void v_item1,
const void v_item2 
)

INT32 VHO_Switch_Compare_Value ( const void v_item1,
const void v_item2 
)

Definition at line 293 of file vho_lower.cxx.

References EQUAL, GREATER, INT32, LESS, UINT64, VHO_Switch_Signed, and WN_const_val().

Referenced by VHO_Switch_Find_Clusters().

static void VHO_Switch_Find_Clusters ( void   )  [static]

static void VHO_Switch_Generate_Binary_Search ( INT32  left,
INT32  right,
WN block 
) [static]

static WN* VHO_Switch_Generate_Compgoto ( SRCPOS  srcpos  )  [static]

static WN* VHO_Switch_Generate_If_Else ( SRCPOS  srcpos  )  [static]

static WN* VHO_Switch_Opt_Case_Hoist ( SRCPOS  srcpos  )  [static]

static BOOL VHO_WN_has_side_effects ( WN wn  )  [static]

static BOOL VHO_WN_is_zero ( WN wn  )  [static]

Definition at line 106 of file vho_lower.cxx.

References OPR_CONST, OPR_INTCONST, STC_val, Targ_Is_Zero(), WN_const_val(), WN_operator(), and WN_st().

Referenced by vho_lower_cselect().


Variable Documentation

TYPE_ID Promoted_Mtype[MTYPE_LAST+1]

Initial value:

 {
  MTYPE_UNKNOWN,  
  MTYPE_UNKNOWN,  
  MTYPE_I4,       
  MTYPE_I4,       
  MTYPE_I4,       
  MTYPE_I8,       
  MTYPE_U4,       
  MTYPE_U4,       
  MTYPE_U4,       
  MTYPE_U8,       
  MTYPE_F4,       
  MTYPE_F8,       
  MTYPE_F10,      
  MTYPE_UNKNOWN,  
  MTYPE_UNKNOWN,  
  MTYPE_FQ,       
  MTYPE_M,        
  MTYPE_C4,       
  MTYPE_C8,       
  MTYPE_CQ,       
  MTYPE_V,         






}

Definition at line 175 of file vho_lower.cxx.

Definition at line 217 of file vho_lower.cxx.

INT32 vho_if_nest_level = 0 [static]

Definition at line 7580 of file vho_lower.cxx.

const char* vho_lower_cand_cior_name = "__cand_cior" [static]

Definition at line 220 of file vho_lower.cxx.

Referenced by vho_lower_cand_cior().

const char* vho_lower_comma_name = "__comma" [static]

Definition at line 223 of file vho_lower.cxx.

Referenced by vho_lower_comma().

const char* vho_lower_cselect_name = "__cselect" [static]

Definition at line 221 of file vho_lower.cxx.

Referenced by vho_lower_cselect().

Definition at line 5845 of file vho_lower.cxx.

Definition at line 5847 of file vho_lower.cxx.

Definition at line 5846 of file vho_lower.cxx.

BOOL vho_lower_labels_defined = FALSE [static]

Definition at line 5836 of file vho_lower.cxx.

const char* vho_lower_mstore_name = "__lower_mstore" [static]

Definition at line 219 of file vho_lower.cxx.

const char* vho_lower_rcomma_name = "__rcomma" [static]

Definition at line 222 of file vho_lower.cxx.

Referenced by vho_lower_rcomma().

Definition at line 5837 of file vho_lower.cxx.

SRCPOS VHO_Srcpos [static]

Definition at line 281 of file vho_lower.cxx.

Referenced by VHO_Get_Field_List(), VHO_Lower_Mistore(), and VHO_Lower_Mstid().

Definition at line 282 of file vho_lower.cxx.

Referenced by VHO_Get_Field_List(), VHO_Lower_Mistore(), and VHO_Lower_Mstid().

Definition at line 283 of file vho_lower.cxx.

Referenced by VHO_Get_Field_List().

Definition at line 284 of file vho_lower.cxx.

Referenced by VHO_Get_Field_List().

Definition at line 268 of file vho_lower.cxx.

Referenced by VHO_Lower_Mistore(), VHO_Lower_Mstid(), and VHO_Lower_Mstore().

Definition at line 234 of file vho_lower.cxx.

Definition at line 249 of file vho_lower.cxx.

Referenced by VHO_Lower_Switch(), and VHO_Switch_Find_Clusters().

Definition at line 255 of file vho_lower.cxx.

Definition at line 253 of file vho_lower.cxx.

Definition at line 247 of file vho_lower.cxx.

Referenced by VHO_Lower_Switch(), and VHO_Switch_Generate_Binary_Search().

Definition at line 216 of file vho_lower.cxx.

Definition at line 215 of file vho_lower.cxx.

Definition at line 245 of file vho_lower.cxx.

Referenced by VHO_Lower_Switch(), and VHO_Switch_Generate_Binary_Search().

WN* VHO_Switch_Index [static]

Definition at line 252 of file vho_lower.cxx.

Definition at line 248 of file vho_lower.cxx.

Referenced by VHO_Lower_Switch(), and VHO_Switch_Generate_Compgoto().

Definition at line 244 of file vho_lower.cxx.

Referenced by VHO_Lower_Switch(), and VHO_Switch_Generate_Binary_Search().

Definition at line 250 of file vho_lower.cxx.

Definition at line 251 of file vho_lower.cxx.

Referenced by VHO_Lower_Switch(), and VHO_Switch_Find_Clusters().

WN* VHO_Switch_Stmt [static]

Definition at line 254 of file vho_lower.cxx.

Definition at line 242 of file vho_lower.cxx.

Referenced by VHO_Lower_Switch(), and VHO_Switch_Generate_Compgoto().

Definition at line 8377 of file vho_lower.cxx.

TY_IDX vho_u4a1_ty_idx = (TY_IDX) 0 [static]

Definition at line 225 of file vho_lower.cxx.

Referenced by vho_lower_combine_loads().

TY_IDX vho_u8a1_ty_idx = (TY_IDX) 0 [static]

Definition at line 226 of file vho_lower.cxx.

Referenced by vho_lower_combine_loads().

return wn

Definition at line 2060 of file vho_lower.cxx.

Referenced by ANL_PRAGMA_ATTRIBUTE::_Write_Distribution(), ANL_PRAGMA_ATTRIBUTE::_Write_Pragma_Arguments(), Access_Vector_Condition_Provable(), Accumulate_Expr_PUinfo(), LAT_DIRECTED_GRAPH16::Add_Flow_Edges(), PROMPF_LINES::Add_Lines(), Add_Vertices(), WB_BROWSER::Address_Walk(), Address_Walk(), alias_walk(), WB_BROWSER::Alias_Walk(), All_Uses_Outside_Of_Loop(), Analyze_pu_noreturn_attr(), SX_INFO::Analyze_Reduction(), WB_BROWSER::Ancestors(), Append_Distribution(), ARA_Cleanup_Traverse(), Array_Defs(), BB_kind(), Block_Has_Prompf_Construct(), BS_Collect_Arrays(), BS_Find_Region(), BS_Find_Sibling(), BS_Has_If_In_Region(), BS_Has_Use_In_Subscript(), BS_Is_Index_Variable(), BS_Loop_Within_Equivalence_Class(), BS_Range_Check(), BS_Substitute(), FIZ_FUSE_INFO::Build(), Build_Ordered_Stack_Traverse(), Build_Ori_Blocks(), Build_Regions(), TRANSPOSE_DIRECTED_GRAPH16::Build_Snl(), Build_St_Stack_And_Skip(), Build_wn_tree_from_bits(), Cache_L1_Analysis(), Cache_L1_Has_Data(), Cache_L2_Analysis(), Cache_L2_Has_Data(), Cache_Location_Analysis(), Calculate_Path_Data(), Can_Mem_Op_Be_Moved(), GOTO_TABLE::Can_Move_Into_Else(), SNL_BOUNDS_INFO::Canonicize(), CG_DEP_Call_Aliases(), CG_DEP_Latency(), CGSPILL_Attach_Const_Remat(), CGSPILL_Attach_Intconst_Remat(), CGSPILL_Attach_Lda_Remat(), CGTARG_Can_Be_Speculative(), FIZ_FUSE_INFO::Check(), Check_Suggested_Parallel(), PROMPF_INFO::Check_Traverse(), SD_INFO::Closure(), Code_Expansion_Limit_Loop(), SSA::Collect_defs_bb(), Compare_whirl_tree(), LEGO_UGS::Compute_Offset(), COND_Do_Info(), COND_If_Info(), Conditionally_Assigned(), ARA_LOOP_INFO::Const_Work_Estimate(), Contains(), Contains_Index_Variable(), Contains_Intrinsic_Op(), Convert_Just_Chunksize_To_Dynamic(), Convert_Section_To_Pdo(), Convert_virtual_call(), RVI::Copy_dedicated_regs_to_pregs(), Copy_WN_For_Memory_OP(), copyout_temp_to_var(), Count_Loop_Size(), Coupled_Loops_Traverse(), Create_block_stmt(), ML_WHIRL_EMITTER::Create_entry(), OPT_STAB::Create_entry_chi_stmt(), ARA_LOOP_INFO::Create_New_IF_Clause(), Create_Single_Region(), Create_ST_For_Tree(), Create_TY_For_Tree(), Crosses_Regions(), cwh_addr_address_ST(), cwh_addr_array(), cwh_addr_find_section(), cwh_addr_iload(), cwh_addr_istore(), cwh_addr_lda(), cwh_addr_ldid(), cwh_addr_load_ST(), cwh_addr_load_WN(), cwh_addr_mk_ldid(), cwh_addr_mload(), cwh_addr_mstore(), cwh_addr_nonc_recast(), cwh_addr_nonc_util(), cwh_addr_stid(), cwh_addr_store_ST(), cwh_addr_store_WN(), cwh_addr_triplet(), cwh_block_add_to_enclosing_regions(), cwh_block_dump(), cwh_block_new_and_current(), cwh_block_set_region_pragmas(), cwh_ceiling_floor(), cwh_char_intrin(), cwh_do_tranformational(), cwh_dope_from_expression(), cwh_dope_read_bound(), cwh_dope_store_bound(), cwh_expr_address(), cwh_expr_binop(), cwh_expr_binop_shift(), cwh_expr_compare(), cwh_expr_compare_bitwise(), cwh_expr_compare_char(), cwh_expr_compare_logical(), cwh_expr_dispose_of_char(), cwh_expr_operand(), cwh_expr_str_operand(), cwh_expr_temp(), cwh_expr_unop(), cwh_funny_fp_intrinsic(), cwh_intrin_build(), cwh_intrin_call(), cwh_intrin_get_return_value(), cwh_intrin_ieee_intrin_call_helper(), cwh_intrin_ieee_intrin_helper(), cwh_intrin_null_parm(), cwh_intrin_op(), cwh_intrin_popcnt_leadz_helper(), cwh_intrin_sync_intrin(), cwh_intrin_wrap_char_parm(), cwh_intrin_wrap_ref_parm(), cwh_io_analyse_io_statement(), cwh_io_char_ioitem(), cwh_io_conv_array_to_dope(), cwh_io_conv_arrsection_to_dope(), cwh_io_create_dopes(), cwh_io_cvt_tos_label_to_wn(), cwh_io_ioitem(), cwh_io_no_desc(), cwh_io_split_io_items(), cwh_io_split_io_statement(), cwh_io_str_ioitem(), cwh_mp_region(), cwh_preg_temp_save(), cwh_reorder(), cwh_stab_add_pragma(), cwh_stab_const(), cwh_stab_distrib_pragmas(), cwh_stk_get_num_inquire_items(), cwh_stk_is_byte_STR(), cwh_stk_pop_iostmt(), cwh_types_array_temp_TY(), cwh_types_bound_WN(), cwh_types_mk_basic_TY(), cwh_types_mk_namelist_item_TY(), cwh_types_mk_namelist_TY(), cwh_types_size_WN(), CYG_Instrument_Block(), DISTR_INFO::DART_Ldid(), DISTR_INFO::DART_Stid(), Dead_Store_Eliminate_Arrays(), Decrement_Loop_Depths(), ARA_LOOP_INFO::Default_For_Bad_Loop(), Delete_Distr_Pragmas(), WB_BROWSER::Deps_Loop(), ARA_LOOP_INFO::Determine_Peel(), CG_LOOP::Determine_SWP_Unroll_Factor(), CG_LOOP::Determine_Unroll_Factor(), DISTR_INFO::Dimsize_Ldid(), DISTR_INFO::Dimsize_Stid(), Discard_Possibly_Empty_Loops(), Dismantle_Do_Walk(), Dismantle_Nested_Doacross(), Dismantle_Nested_Region(), Distribute_Traverse(), Do_Loop_Explicit_Affinity(), Do_Loop_Implicit_Affinity(), Do_Loops(), do_simple(), Doacross_Init(), em_quad_abs(), em_quad_neg(), em_split_select(), RVI_EMIT::Emit_bb_annotations(), Enclosing_Loop_At_Depth(), Enter_Scalar_Expandable_Refs(), Estimate_Cycles(), Estimate_IF_Cost(), Exp_Node_Varies_In_Loop(), expand_flush(), expand_start_do_loop(), expand_start_for(), expand_start_parallel(), expand_start_parallel_for(), expand_start_sections(), expand_start_single(), expand_threadprivate(), Extract_Branch(), fei_abs(), fei_addr(), fei_alloc(), fei_arith_con(), fei_array_dimen(), fei_barrier(), fei_bneg(), fei_close(), fei_constant(), fei_copy_in(), fei_cot(), fei_count(), fei_criticalsection(), fei_cvtop(), fei_descriptor(), fei_dot_product(), fei_dot_product_logical(), fei_dv_deref(), fei_end_ioblock(), fei_endcriticalsection(), fei_exponent(), fei_exponentiate(), fei_fission(), fei_formatted_read(), fei_formatted_write(), fei_get_dv_hdr_fld(), fei_imag(), fei_implied_do(), fei_inquire(), fei_IO_list(), fei_iolength(), fei_iotype(), fei_len(), fei_length(), fei_lneg(), fei_logb(), fei_malloc(), fei_mask(), fei_matmul(), fei_mbits(), fei_multiply_high(), fei_namelist_read(), fei_namelist_write(), fei_near(), fei_new_binop_cshift(), fei_omp_set_lock(), fei_omp_test_lock(), fei_omp_unset_lock(), fei_open(), fei_pdo(), fei_present(), fei_push_arith_con(), fei_push_pattern_con(), fei_ranf(), fei_ranset(), fei_redistribute(), fei_round(), fei_rtc(), fei_scale(), fei_select(), fei_set_dv_hdr_fld(), fei_set_exponent(), fei_smt_parameter(), fei_start_ioblock(), fei_task_endloop(), fei_task_var(), fei_trunc(), fei_unformatted_read(), fei_unformatted_write(), fei_unit(), Finalize_Index_Variable(), Finalize_Index_Variable_For_Remove_Unity_Trip_Loop(), Finalize_Loops(), Find_Alloca(), DISTR_INFO::Find_Alloca(), Find_Av_Loop_Index(), Find_BB_TNs(), CFG::Find_enclosing_region_bb(), Find_Freq_Hint_Pragmas(), Find_Insertion_Point(), Find_Kernel_Stack(), Find_Kernel_Stack_Nest_Traverse(), Find_Lego_Base_Exp(), Find_Next_Innermost_Do_In_Block(), Find_Nodes(), OPT_REVISE_SSA::Find_scalars_from_lda_iloads(), OPT_REVISE_SSA::Find_scalars_from_lda_indirects(), OPT_REVISE_SSA::Find_scalars_from_lowering_bitfld(), OPT_REVISE_SSA::Find_scalars_from_lowering_bitfld_cr(), Find_Sibling_Containing(), Find_Split_Point(), Find_virtual_function(), SSA::Find_zero_versions(), Fission(), Fission_Test(), Fix_Accesses_And_Deps(), Fix_LDID_Of_Return_Preg(), fix_tree(), Fiz_Fuse(), Forward_Substitutable(), Forward_Substitute_For_Access_Arrays(), Forward_Substitute_Ldids(), Forward_Substitute_SNL_Bounds(), Freeze_Numthreads_Ldid(), FREQ_Incorporate_Feedback(), FS_Array_Substitute(), FS_Condition(), FS_Is_Inside_If(), FS_Substitute(), FS_Worthwhile(), Fuse(), Fuse_Level_By_Level(), Fusion_Du_Update(), Fusion_Loop_Stmt_Update(), Gen_Assign_Of_Init_Val(), Gen_Can_Fork(), Gen_Critical(), Gen_End_Critical(), Gen_End_Master(), Gen_End_Ordered(), Gen_End_Serialized_Parallel(), Gen_End_Single(), Gen_exp_wn(), Gen_Fini_RTL(), Gen_Flush(), Gen_Fork(), Gen_Get_Num_Threads(), Gen_Get_Thread_Num(), Gen_Impld_Io_Calls(), Gen_Implicit_Prefetches(), Gen_In_Parallel(), Gen_Init_RTL(), Gen_Io_Calls(), Gen_Io_GetFieldST(), Gen_Io_PutFieldConst(), Gen_Io_PutFieldST(), Gen_Iolist_PutFieldConst(), Gen_Lookup_DART(), Gen_Master(), Gen_Ordered(), Gen_Serialized_Parallel(), Gen_Set_Num_Threads(), Gen_Single(), ML_WHIRL_EMITTER::Gen_stmt(), Gen_Store_Gtid(), CODEREP::Gen_wn(), General_Kernel(), ARA_LOOP_INFO::Generate_Copyout_Loop(), Generate_Hot_Cold_Jump(), Generate_If_Accesses(), Generate_Interleaved_Bounds(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), Generate_Simple_Bounds(), Generate_Sink_Out_Code(), get_32bit_cilist_item(), RVI::Get_bb_local_attributes(), RVI::Get_bb_local_lda_attributes(), Get_Do_And_Above(), Get_Doacross_Tile_Size(), Get_Frozen_Numthreads_Ldid(), Get_IoStruct_ST(), Get_MP_modref(), OPT_REVISE_SSA::Get_new_occ(), Get_parent(), Get_Preamble_End(), Get_Runtime_Cur_Numthreads_Func(), Get_Statement(), Get_Vector_Type(), Hack_AltEntry_Formals(), SX_INFO::Handle_Other_Def(), Has_Calls(), Has_Code_At_Depth(), Has_Io(), Has_Lego_Mp_Loops(), Has_No_Concurrentize_Directive(), Has_Optimizable_Node_Traverse(), Has_Reuse(), LABEL_LIST::Has_Targeted_Label(), Has_Threadprivate_Variable(), Has_Variable_Bounds(), HMB_Has_Messy_Subscript(), HMB_Hoist_Easy_Messy_Bounds(), HMB_Hoist_Messy_Bounds(), HMB_Hoist_Messy_Subscripts(), HMB_Invariant_In_Loop(), HMB_Maximum_Point(), HMB_Simple_Guard_And_Hoist(), Hoist_Bounds_One_Level(), Hoist_Necessary_Code_Up(), Hoist_Out_Nested_Statements(), Hoist_Outer_Invar(), Hoist_Statement(), Hoist_Varying_Lower_Bounds_Traverse(), Hoistable_Place(), Hoistable_Statement(), IF_Branch(), If_MinMax_Traverse(), Immed_Inside_Par_Begin(), In_Same_SNL_Section(), Index_Variable_Is_Last_Local(), Index_Variable_Ldid(), Initial_Hoist_Place(), Innermore_Parallel_Loop(), Innermore_Parallel_Or_Lego_Loop(), Innermost_Doacross_Nest_Loop(), Insert_Region_Around_Block(), Insert_Sink_Code(), ANL_VARLIST::Insert_Var_Refs(), Inside_Lego_Tiled_Loop(), Inside_Region(), Interleaved_Pragma_Chunksize(), Intrinsic(), Inv_Dep_Info(), Invariant_Loops(), IPA_constant_in_array_bounds(), IPA_LNO_Evaluate_Call_Infos_Traverse(), IPA_LNO_Map_Calls_Clip_DU_Traverse(), IPA_LNO_Reassign_Unsummarized_Calls(), IPA_LNO_Reassign_Unsummarized_Calls_Traverse(), IPA_LNO_Unevaluate_Call_Infos_Traverse(), IPA_Rename_Builtins(), IPA_Start_Function(), IPL_Access_Vector_To_Projected_Region(), SUMMARIZE< program >::IPL_EX_Block(), IPO_Modify_WN_for_field_reorder(), IPO_Pad_Arrays(), IPO_Process_Icalls(), ir_all(), ir_b2a_process_PUs(), ir_b_write_tree(), ir_sel(), Is_Above(), Is_Aliased_With_Home(), Is_Grandparent_Region(), Is_In_Range(), Is_Inside_Store(), Is_Invariant(), Is_Loop_Guard(), Is_Orphaned_Pdo(), Is_Reduction_In_Prallel_Region(), GTABLE::Is_Truebr(), GOTO_TABLE::Is_Truebr(), Is_Versioned_Mp_Loop(), COND_BOUNDS_INFO::Kill_Written_Symbols(), LABEL_LIST::Label_Is_Targeted_Outside_Scope(), LABEL_LIST::Label_List_Goto_Traverse(), LABEL_LIST::Label_List_Label_Traverse(), Lego_Build_DU_For_Ldids(), Lego_Contains_Non_Index_Ldid(), Lego_Find_Node(), Lego_Find_Nodes(), Lego_Index_From_Access_Vector(), Lego_Loop_Want_Skew(), Lego_Mp_Tile_Traverse(), Lego_Parent_Array(), Lego_Peel_Traverse(), Lego_Simplify_Loop(), Lego_Skew_Loop(), Lego_Skew_Traverse(), Lego_Tile_Traverse(), Lisp_Loops_Traverse(), LNO_Map_Calls_Array_Traverse(), LNO_Map_Calls_Scalar_Traverse(), Load_SNL_And_Permutation(), Loop_Dominates_Uses(), Loop_Index_Count_Traverse(), Loop_Invariant_Access(), Loop_Statement(), LOOPINFO_Trip_Count(), Lower_Distr_Pragmas(), lower_random_number(), Lowered_Doacross_Loops(), Lowered_Parallel_Regions(), LWN_Copy_Tree_With_High_Defs(), Make_IoAddr_WN(), SD_INFO::Make_Sd_Info(), Map_Linear_Expr(), Mark_Critical_Section_Loops_Traverse(), Mark_Threadprivate_Loops_Traverse(), Max_Arg_Area_Bytes(), Max_Dep_Distance(), Maybe_Assigned(), Maybe_Assigned_Exp_Traverse(), Middle_Loop_Pwr2_Group_Hack(), Minimal_Kernel(), MIR_Go_Inside(), MIR_Hoistable_Ref(), MIR_Iterate_Outer_Loops(), MIR_Patch_Loop_Stmt(), MIR_Replace(), MIR_Test_Outer_Loops(), MIR_Update_Dependences(), Move_Alloca(), Move_Branches_To_Child(), GOTO_TABLE::Move_Goto_Out(), Mp_Collapse_Dependences(), Mp_Collapse_Loop_Heads(), Mp_Collapse_Loop_Statements(), Mp_Compress_Nested_Loop(), Mp_Convert_To_Single_Loop(), Mp_Delete_Outer_Mp_Lego_Info(), Mp_Disable_Opts_On_Internal_Regions(), Mp_Extract_Bogus_Do_Acrosses(), Mp_Extract_Nested_Pragmas(), Mp_Extract_Parallel_Directives(), MP_Fix_Dependence_Graph(), Mp_Fix_Ref_Array_Aliases(), MP_INFO::MP_INFO(), Mp_Insert_Bounds_Code(), Mp_Layout_Copy_In_Onto(), Mp_Layout_Lego_Layout(), Mp_Localize_Onto_and_Layout(), Mp_Lower_Number(), Mp_Nested_Last_Thread(), Mp_Optimize_Interleaved_Loop_Traverse(), Mp_Region_Under_Loop(), Mp_Remove_Nested_Region(), Mp_Remove_Onto_Pragmas(), Mp_Tile_Nested_Loop(), Mp_Tile_Traverse(), Mp_Trip_Count(), Mp_Version_Loop(), Mp_Version_Parallel_Region(), Mp_Want_Freeze_Cur_Threads(), Mp_Want_Version_Loop(), Mp_Want_Version_Parallel_Region(), Nest_Total(), RVI_NODE::New_home_wn(), New_Lowest_Statement(), Node_Count(), DV_DEPS_CALLBACK::Node_Select(), Callback::Node_Select(), ARA_LOOP_INFO::Not_Enough_Parallel_Work(), Num_Inner_Loops(), DISTR_INFO::Numprocs_Ldid(), DISTR_INFO::Numprocs_Stid(), OP_Refs_Home(), OPT_FEEDBACK::OPT_FEEDBACK(), Outermore_Parallel_Construct(), Outermore_Parallel_Construct_Or_Lego_Loop(), Pad_Local_Arrays_In_Whirl(), PAR_STAT::PAR_STAT(), GTABLE::Patch_Do_While(), Patch_Uses_In_Loop(), FB_CFG::Patch_whirl_frequencies(), PDGCS_do_proc(), KEY_SCH::Peeling_For_Unknown_Trip(), Perfect_Depth(), Perform_Procedure_Summary_Phase(), REGION_STRIDE_PREFETCH::Phased_Multi_Stride_Ins(), LEGO_INFO::Pid0(), LEGO_INFO::Pid1(), SSA::Pointer_Alias_Analysis(), Post_loop_peeling(), Pragma_Set_No_Interchange(), Pre_loop_peeling(), prepare_reduction_clause(), MIR_REFLIST::Print(), SNL_ANAL_INFO::Print(), Print_BB_Pragmas(), Print_Goto_Lines(), Print_OP(), Print_OP_No_SrcLine(), Print_Prompf_Msgs_Traverse(), Print_Prompf_Nest_Log(), Print_Prompl_Msgs_Traverse(), BB_NODE::PrintVis(), Process_Alt_Entries_Formal(), Process_Alt_Entries_Local(), process_iostat(), SUMMARIZE< program >::Process_phi_operand(), Process_PU_Pragmas(), Processor_2D_Tile_Loop(), Processor_3D_Tile_Loop(), Processor_Update_Inner_Tile(), Processor_Update_Outer_Tile(), WB_BROWSER::Promp_Map(), Prompf_Assign_New_Ids_Traverse(), Prompf_Collect_Ids(), Prompf_Hoist_Messy_Bounds(), PROMPF_INFO::Prompf_Info_Traverse(), Prompf_Mp_Version(), Prompf_Nest_Depth(), Prompf_Nested_Tile(), Prompf_Record_Eliminations(), Prompf_Tile(), Prompf_Zero_Ids(), SD_INFO::Push_Memory_Nodes(), Recompute_Deps_For_Tree(), Red_Dep_Info(), ARA_LOOP_INFO::Reduction_List(), PAR_STAT::Reduction_List(), WB_BROWSER::Reduction_Walk(), Redundant_Pragma(), Region_Depth(), Register_Name_To_Statement(), Remove_Dead_Single_Defs(), Remove_Invar_Duplicates(), LABEL_LIST::Remove_Tree(), Remove_Unity_Trip_Loop(), Remove_Unity_Trip_Loop_Dep_Update(), Remove_Unity_Trip_Loop_Loop_Stmt_Update(), Remove_Unity_Trip_Loop_Update_If_Accesses(), Remove_Unity_Trip_Loop_Update_Is_Inner(), Remove_Useless_Loops(), SSA::Rename(), Repair_Bad_Dependences(), GOTO_TABLE::Replace_Goto_With_If(), GTABLE::Replace_Goto_With_If(), GTABLE::Replace_Goto_With_While(), GOTO_TABLE::Replace_Goto_With_While(), reset_do(), return_upper_bound(), RV_Index_Sign(), RV_Reverse_Indices(), RV_Simplify_Indicies(), RV_Traverse(), RV_Tree_Has_All_Backward_Indices(), RV_Tree_Has_All_Written_Indices(), Sandwiched_Code_Sinkable_In(), Sandwiched_Code_Sinkable_Out(), sanity_check_loop_body(), Scalar_Def_Covered_In_Loop(), Scalar_Defs(), Scalar_Expand(), Scalar_Expandable(), Scalar_Store_Hoist_Place(), Scalarize_Arrays(), Scl_Dep_Info(), SE_Assign_Lexcounts(), SE_Find_Def(), SE_Find_Stid(), SE_Fix_Dependence(), SE_New_Outer_Loop(), SE_Prune_Stack_Elements(), REDUCTION_MANAGER::Self_Dependent_Store(), Separate_And_Update(), Set_Addr_Taken_Attrib(), set_addr_taken_expr(), SUMMARIZE< program >::Set_IO(), Set_Winddown_Annotations_B(), shackling_depth(), simple_intrinsic(), simple_intrinsic_nt(), Simplify_Sink_Out_Code(), Sink_Sandwiched_Code_In(), Sinkable_Into_Loop(), size_wn(), SNL_All_Parallelizable(), SNL_ANAL_INFO::SNL_ANAL_INFO(), SNL_Bad_Array_Footprints(), SNL_Change_Reduction_Loop_Stmts(), SNL_Distribute(), SNL_Finalizable_Loops(), SNL_Finalize_Index_Variables(), SNL_Find_Traverse(), SNL_Fix_Blockable_Dependendences_Traverse(), SNL_GEN_Distribute(), SNL_Good_Perm_Loops(), SNL_Has_Sandwiched_Code(), SNL_Hoist_Messy_Bounds(), SNL_Inner_Exit_Count(), SNL_Inner_Machine_Cost(), SNL_INV_Distribute(), SNL_INV_Distribute_Block_Of_Loops(), SNL_INV_Get_Next_Outermost_Loop(), SNL_INV_Permute_Loops(), SNL_INV_Transforms(), SNL_Is_Distributable_Traverse(), SNL_Is_Distributable_Tree(), SNL_Is_Scalar_Expandable(), SNL_Legal_Tile_Arrays(), SNL_Legal_Tile_Scalars(), SNL_NEST_INFO::SNL_NEST_INFO(), SNL_Phase(), SNL_Regtile_Loop(), SNL_Remove_Useless_Loops(), SNL_SPL_Build_Loop_List(), SNL_SPL_Loop_Is_Inner_Tile(), SNL_SPL_Make_Inner_Tile_Stack(), SNL_SPL_Split_Tile_Sets(), Spill_Homeable_TN(), sPrint_OP(), Standardize_For_Tiling(), LS_IN_LOOP_ITER::Step(), REGION_STRIDE_PREFETCH::Strong_Single_Stride_Ins(), SX_INFO::SX_INFO(), AGGINIT::Traverse_Aggregate_Struct(), Traverse_Update(), Tree_Has_Regions(), True_Bound(), U64_LOWER_create_cvtl(), U64_LOWER_create_ne_0(), U64_LOWER_insert_cvtl_for_kid(), U64_LOWER_stmt_wn(), Unroll_Dowhile_Loop(), Unroll_Make_Remainder_Loop(), unroll_multi_bb(), unroll_multi_make_remainder_loop(), Unroll_Replicate_Body(), WN_TREE_ITER< PRE_ORDER, WHIRL >::Unwind(), Update_array_bounds(), Update_Def_List_Loop_Stmt(), Update_Nest_Depth_Traverse(), Update_wn_types(), Uses_Return_Preg(), Valid_SNL_Region(), CFG::Verify_cfg(), Verify_MP_Lowered::Verify_No_MP(), WB_BROWSER::Vertices(), ARA_LOOP_INFO::Walk_Loop(), Walk_Loop_Dependence(), WB_ancestors(), WB_DAV_draw_deps_loop(), WB_DAV_draw_deps_ref(), WB_defs_loop(), WB_Parent_Search(), WB_Prompf_Map(), WB_TXT_deps_loop(), WB_uses_loop(), WB_vertices(), WFE_Add_Case_Node(), WFE_Expand_Case(), WFE_Expand_Continue_Loop(), WFE_Expand_End_Case(), WFE_expand_end_for(), WFE_expand_end_parallel(), WFE_expand_start_for(), WFE_expand_start_parallel(), WFE_expand_start_section(), WFE_expand_start_sections(), WFE_Finish_Function(), WFE_Start_Function(), WFE_Stmt_Pop(), AGGINIT::WGEN_Add_Aggregate_Init_Address(), WGEN_Alloca_0(), WGEN_Alloca_ST(), WGEN_Dealloca(), WGEN_expand_barrier(), WGEN_Expand_Break(), WGEN_Expand_Case(), WGEN_Expand_Computed_Goto(), WGEN_Expand_Continue(), WGEN_expand_end_atomic(), WGEN_expand_end_critical(), WGEN_expand_end_for(), WGEN_expand_end_ordered(), WGEN_expand_end_parallel(), WGEN_expand_end_parallel_for(), WGEN_expand_end_parallel_sections(), WGEN_expand_end_section(), WGEN_expand_end_sections(), WGEN_expand_end_single(), WGEN_Expand_Goto(), WGEN_Expand_Label(), WGEN_expand_start_atomic(), WGEN_expand_start_critical(), WGEN_expand_start_for(), WGEN_expand_start_master(), WGEN_expand_start_ordered(), WGEN_expand_start_parallel(), WGEN_expand_start_parallel_for(), WGEN_expand_start_parallel_sections(), WGEN_expand_start_section(), WGEN_expand_start_sections(), WGEN_expand_start_single(), WGEN_Finish_Function(), WGEN_Generate_Thunk(), WGEN_process_omp_clause(), WGEN_Start_Function(), WGEN_Stmt_Pop(), Whack_Do_Loops_Traverse(), WN2F_Initiate_OneInt(), WN2F_Initiate_ZeroInt(), WN2F_Is_Address_Preg(), WN2F_pragma_list_nowait(), WN_Create(), WN_Create_Generic(), WN_CreateBlock(), WN_CreateDO(), WN_CreateDoWhile(), WN_CreateEntry(), WN_CreateIf(), WN_CreateRegion(), WN_CreateRegionExit(), WN_CreateWhileDo(), WN_get_tree(), Wn_Is_Above(), WN_is_in_pragma(), WN_Nary(), WN_NaryToExpr(), WN_Rename_Duplicate_Labels(), WN_SimpCreateCvtl(), WN_SimpCreateDeposit(), WN_SimpCreateExp1(), WN_SimpCreateExp2(), WN_SimpCreateExp3(), WN_SimpCreateExtract(), WN_Single_Iteration_Cost(), WN_Tree_Has_Duplicate_Labels(), DISTR_INFO::~DISTR_INFO(), and Verify_MP_Lowered::~Verify_MP_Lowered().


Generated on Wed Apr 8 14:36:37 2009 for Open64 by  doxygen 1.5.6