FEEDBACK Class Reference

#include <fb_whirl.h>

Collaboration diagram for FEEDBACK:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 FEEDBACK (WN *wn, MEM_POOL *m, INT32 invoke_size=1, INT32 branch_size=1, INT32 loop_size=1, INT32 circuit_size=1, INT32 call_size=1, INT32 switch_size=1, WN_MAP_TAB *maptab=Current_Map_Tab)
void Reset_Root_WN (WN *root_wn)
bool Same_in_out (const WN *wn)
void FB_set_in_out_same_node (WN *wn)
void FB_set_in_out_same (WN *wn)
void Print (FILE *fp, const WN *wn) const
void Print_with_wn (FILE *fp, WN *wn) const
const FB_Info_InvokeQuery_invoke (const WN *wn) const
const FB_Info_BranchQuery_branch (const WN *wn) const
const FB_Info_LoopQuery_loop (const WN *wn) const
const FB_Info_CircuitQuery_circuit (const WN *wn) const
const FB_Info_CallQuery_call (const WN *wn) const
const FB_Info_SwitchQuery_switch (const WN *wn) const
FB_FREQ Query (const WN *wn, const FB_EDGE_TYPE type) const
FB_FREQ Query_prob (const WN *wn, const FB_EDGE_TYPE type) const
FB_FREQ Query_total_out (const WN *wn) const
void Annot_invoke (WN *wn, const FB_Info_Invoke &fb_info)
void Annot_branch (WN *wn, const FB_Info_Branch &fb_info)
void Annot_loop (WN *wn, const FB_Info_Loop &fb_info)
void Annot_circuit (WN *wn, const FB_Info_Circuit &fb_info)
void Annot_call (WN *wn, const FB_Info_Call &fb_info)
void Annot_switch (WN *wn, const FB_Info_Switch &fb_info)
void Annot (WN *wn, const FB_EDGE_TYPE type, FB_FREQ freq)
void Delete (WN *wn)
FB_VERIFY_STATUS Verify (const char *caller=NULL, bool abort_if_error=TRUE) const
FB_VERIFY_STATUS Verify_and_guess (const char *caller=NULL, bool abort_if_error=TRUE) const
void FB_lower_branch (WN *wn_br, WN *wn_branch)
void FB_lower_circuit (WN *wn_cand, WN *wn_left_br, WN *wn_right_br)
void FB_factor_circuit (WN *wn_left, WN *wn_right, WN *wn_outer, WN *wn_inner)
void FB_lower_loop (WN *wn_loop, WN *wn_top_br, WN *wn_back_br)
void FB_lower_loop_alt (WN *wn_loop, WN *wn_top_br)
void FB_lower_while_do_to_do_while (WN *wn_loop, WN *wn_top_br)
void FB_lower_compgoto (WN *wn_compgoto, WN *wn_xgoto, WN *wn_branch)
void FB_lower_call (WN *wn_call, WN *wn_new_call)
void FB_lower_return_val (WN *wn_return_val, WN *wn_return)
void FB_lower_mstore_to_loop (WN *wn_mstore, WN *wn_loop, INT64 nMoves)
void FB_move_goto_out (WN *wn_branch, WN *wn_inner_br, WN *wn_outer_br)
void FB_convert_goto_to_if (WN *wn_branch, WN *wn_if)
void FB_convert_goto_to_loop (WN *wn_branch, WN *wn_loop)
void FB_simplify_branch_to_goto (WN *wn_branch)
void FB_set_zero_node (WN *wn)
void FB_set_zero (WN *wn)
void FB_set_unknown_node (WN *wn)
void FB_set_unknown (WN *wn)
void FB_scale_node (WN *wn, FB_FREQ freq_scale)
void FB_scale (WN *wn, FB_FREQ freq_scale)
void FB_duplicate_node (WN *wn_origl, WN *wn_clone)
void FB_duplicate (WN *wn_origl, WN *wn_clone)
void FB_recombine_node (WN *wn_origl, WN *wn_clone)
void FB_recombine (WN *wn_origl, WN *wn_clone)
void FB_clone_node (WN *wn_origl, WN *wn_clone, FB_FREQ freq_scale)
void FB_clone (WN *wn_origl, WN *wn_clone, FB_FREQ freq_scale)
void FB_clone_loop_test (WN *wn_origl, WN *wn_clone, WN *wn_loop)
void Display_FB_CFG_From_Whirl (const char *caller=NULL)

Private Member Functions

INT32 Get_index_invoke (const WN *wn) const
INT32 Get_index_branch (const WN *wn) const
INT32 Get_index_loop (const WN *wn) const
INT32 Get_index_circuit (const WN *wn) const
INT32 Get_index_call (const WN *wn) const
INT32 Get_index_switch (const WN *wn) const
INT32 Add_index_invoke (WN *wn)
INT32 Add_index_branch (WN *wn)
INT32 Add_index_loop (WN *wn)
INT32 Add_index_circuit (WN *wn)
INT32 Add_index_call (WN *wn)
INT32 Add_index_switch (WN *wn)
void FB_clone_test (WN *wn_origl, WN *wn_clone, FB_FREQ freq_origl_taken, FB_FREQ freq_origl_not, FB_FREQ freq_clone_taken, FB_FREQ freq_clone_not)

Private Attributes

MEM_POOL_m
WN_MAP_TAB_maptab
WN_root_wn
bool _trace
bool _trace_draw
vector< FB_Info_Invoke,
mempool_allocator
< FB_Info_Invoke > > 
_invokes
vector< FB_Info_Branch,
mempool_allocator
< FB_Info_Branch > > 
_branches
vector< FB_Info_Loop,
mempool_allocator
< FB_Info_Loop > > 
_loops
vector< FB_Info_Circuit,
mempool_allocator
< FB_Info_Circuit > > 
_circuits
vector< FB_Info_Call,
mempool_allocator
< FB_Info_Call > > 
_calls
vector< FB_Info_Switch,
mempool_allocator
< FB_Info_Switch > > 
_switches

Friends

void FB_IPA_Clone_node (FEEDBACK *feedback_origl, FEEDBACK *feedback_clone, WN *wn_origl, WN *wn_clone, FB_FREQ freq_scale)
void FB_IPA_Clone (FEEDBACK *feedback_origl, FEEDBACK *feedback_clone, WN *wn_origl, WN *wn_clone, FB_FREQ freq_scale)
void FB_IPA_Clone (FEEDBACK *feedback_origl, FEEDBACK *feedback_clone, WN *wn_origl, WN *wn_clone, float scale)
void FB_IPA_Inline (FEEDBACK *feedback_origl, FEEDBACK *feedback_clone, WN *wn_origl, WN *wn_clone, FB_FREQ freq_scale)
void FB_Transfer_node (FEEDBACK *feedback_origl, FEEDBACK *feedback_new, WN *wn)
void FB_Transfer (FEEDBACK *feedback_origl, FEEDBACK *feedback_new, WN *wn)

Detailed Description

Definition at line 113 of file fb_whirl.h.


Constructor & Destructor Documentation

FEEDBACK::FEEDBACK ( WN wn,
MEM_POOL m,
INT32  invoke_size = 1,
INT32  branch_size = 1,
INT32  loop_size = 1,
INT32  circuit_size = 1,
INT32  call_size = 1,
INT32  switch_size = 1,
WN_MAP_TAB maptab = Current_Map_Tab 
)

Member Function Documentation

INT32 FEEDBACK::Add_index_branch ( WN wn  )  [private]
INT32 FEEDBACK::Add_index_call ( WN wn  )  [private]
INT32 FEEDBACK::Add_index_circuit ( WN wn  )  [private]
INT32 FEEDBACK::Add_index_invoke ( WN wn  )  [private]
INT32 FEEDBACK::Add_index_loop ( WN wn  )  [private]
INT32 FEEDBACK::Add_index_switch ( WN wn  )  [private]
void FEEDBACK::Annot ( WN wn,
const FB_EDGE_TYPE  type,
FB_FREQ  freq 
)
void FEEDBACK::Annot_branch ( WN wn,
const FB_Info_Branch fb_info 
)
void FEEDBACK::Annot_call ( WN wn,
const FB_Info_Call fb_info 
)
void FEEDBACK::Annot_circuit ( WN wn,
const FB_Info_Circuit fb_info 
)
void FEEDBACK::Annot_invoke ( WN wn,
const FB_Info_Invoke fb_info 
)
void FEEDBACK::Annot_loop ( WN wn,
const FB_Info_Loop fb_info 
)
void FEEDBACK::Annot_switch ( WN wn,
const FB_Info_Switch fb_info 
)
void FEEDBACK::Delete ( WN wn  )  [inline]

Definition at line 187 of file fb_whirl.h.

References _maptab, IPA_WN_MAP32_Set(), and WN_MAP_FEEDBACK.

Here is the call graph for this function:

void FEEDBACK::Display_FB_CFG_From_Whirl ( const char *  caller = NULL  ) 
void FEEDBACK::FB_clone ( WN wn_origl,
WN wn_clone,
FB_FREQ  freq_scale 
)
void FEEDBACK::FB_clone_loop_test ( WN wn_origl,
WN wn_clone,
WN wn_loop 
)
void FEEDBACK::FB_clone_node ( WN wn_origl,
WN wn_clone,
FB_FREQ  freq_scale 
)
void FEEDBACK::FB_clone_test ( WN wn_origl,
WN wn_clone,
FB_FREQ  freq_origl_taken,
FB_FREQ  freq_origl_not,
FB_FREQ  freq_clone_taken,
FB_FREQ  freq_clone_not 
) [private]
void FEEDBACK::FB_convert_goto_to_if ( WN wn_branch,
WN wn_if 
)
void FEEDBACK::FB_convert_goto_to_loop ( WN wn_branch,
WN wn_loop 
)
void FEEDBACK::FB_duplicate ( WN wn_origl,
WN wn_clone 
)
void FEEDBACK::FB_duplicate_node ( WN wn_origl,
WN wn_clone 
)
void FEEDBACK::FB_factor_circuit ( WN wn_left,
WN wn_right,
WN wn_outer,
WN wn_inner 
)
void FEEDBACK::FB_lower_branch ( WN wn_br,
WN wn_branch 
)
void FEEDBACK::FB_lower_call ( WN wn_call,
WN wn_new_call 
)
void FEEDBACK::FB_lower_circuit ( WN wn_cand,
WN wn_left_br,
WN wn_right_br 
)
void FEEDBACK::FB_lower_compgoto ( WN wn_compgoto,
WN wn_xgoto,
WN wn_branch 
)
void FEEDBACK::FB_lower_loop ( WN wn_loop,
WN wn_top_br,
WN wn_back_br 
)
void FEEDBACK::FB_lower_loop_alt ( WN wn_loop,
WN wn_top_br 
)
void FEEDBACK::FB_lower_mstore_to_loop ( WN wn_mstore,
WN wn_loop,
INT64  nMoves 
)
void FEEDBACK::FB_lower_return_val ( WN wn_return_val,
WN wn_return 
)
void FEEDBACK::FB_lower_while_do_to_do_while ( WN wn_loop,
WN wn_top_br 
)
void FEEDBACK::FB_move_goto_out ( WN wn_branch,
WN wn_inner_br,
WN wn_outer_br 
)
void FEEDBACK::FB_recombine ( WN wn_origl,
WN wn_clone 
)
void FEEDBACK::FB_recombine_node ( WN wn_origl,
WN wn_clone 
)
void FEEDBACK::FB_scale ( WN wn,
FB_FREQ  freq_scale 
)
void FEEDBACK::FB_scale_node ( WN wn,
FB_FREQ  freq_scale 
)
void FEEDBACK::FB_set_in_out_same ( WN wn  ) 
void FEEDBACK::FB_set_in_out_same_node ( WN wn  ) 
void FEEDBACK::FB_set_unknown ( WN wn  ) 
void FEEDBACK::FB_set_unknown_node ( WN wn  ) 
void FEEDBACK::FB_set_zero ( WN wn  ) 
void FEEDBACK::FB_set_zero_node ( WN wn  ) 
void FEEDBACK::FB_simplify_branch_to_goto ( WN wn_branch  ) 
INT32 FEEDBACK::Get_index_branch ( const WN wn  )  const [private]
INT32 FEEDBACK::Get_index_call ( const WN wn  )  const [private]
INT32 FEEDBACK::Get_index_circuit ( const WN wn  )  const [private]
INT32 FEEDBACK::Get_index_invoke ( const WN wn  )  const [private]
INT32 FEEDBACK::Get_index_loop ( const WN wn  )  const [private]
INT32 FEEDBACK::Get_index_switch ( const WN wn  )  const [private]
void FEEDBACK::Print ( FILE *  fp,
const WN wn 
) const
void FEEDBACK::Print_with_wn ( FILE *  fp,
WN wn 
) const
FB_FREQ FEEDBACK::Query ( const WN wn,
const FB_EDGE_TYPE  type 
) const
const FB_Info_Branch& FEEDBACK::Query_branch ( const WN wn  )  const
const FB_Info_Call& FEEDBACK::Query_call ( const WN wn  )  const
const FB_Info_Circuit& FEEDBACK::Query_circuit ( const WN wn  )  const
const FB_Info_Invoke& FEEDBACK::Query_invoke ( const WN wn  )  const
const FB_Info_Loop& FEEDBACK::Query_loop ( const WN wn  )  const
FB_FREQ FEEDBACK::Query_prob ( const WN wn,
const FB_EDGE_TYPE  type 
) const
const FB_Info_Switch& FEEDBACK::Query_switch ( const WN wn  )  const
FB_FREQ FEEDBACK::Query_total_out ( const WN wn  )  const
void FEEDBACK::Reset_Root_WN ( WN root_wn  )  [inline]

Definition at line 157 of file fb_whirl.h.

References _root_wn.

bool FEEDBACK::Same_in_out ( const WN wn  ) 
FB_VERIFY_STATUS FEEDBACK::Verify ( const char *  caller = NULL,
bool  abort_if_error = TRUE 
) const
FB_VERIFY_STATUS FEEDBACK::Verify_and_guess ( const char *  caller = NULL,
bool  abort_if_error = TRUE 
) const

Friends And Related Function Documentation

void FB_IPA_Clone ( FEEDBACK feedback_origl,
FEEDBACK feedback_clone,
WN wn_origl,
WN wn_clone,
float  scale 
) [friend]

Definition at line 260 of file fb_whirl.h.

void FB_IPA_Clone ( FEEDBACK feedback_origl,
FEEDBACK feedback_clone,
WN wn_origl,
WN wn_clone,
FB_FREQ  freq_scale 
) [friend]
void FB_IPA_Clone_node ( FEEDBACK feedback_origl,
FEEDBACK feedback_clone,
WN wn_origl,
WN wn_clone,
FB_FREQ  freq_scale 
) [friend]
void FB_IPA_Inline ( FEEDBACK feedback_origl,
FEEDBACK feedback_clone,
WN wn_origl,
WN wn_clone,
FB_FREQ  freq_scale 
) [friend]
void FB_Transfer ( FEEDBACK feedback_origl,
FEEDBACK feedback_new,
WN wn 
) [friend]
void FB_Transfer_node ( FEEDBACK feedback_origl,
FEEDBACK feedback_new,
WN wn 
) [friend]

Member Data Documentation

Definition at line 126 of file fb_whirl.h.

Definition at line 129 of file fb_whirl.h.

Definition at line 128 of file fb_whirl.h.

Definition at line 125 of file fb_whirl.h.

Definition at line 127 of file fb_whirl.h.

MEM_POOL* FEEDBACK::_m [private]

Definition at line 116 of file fb_whirl.h.

Definition at line 117 of file fb_whirl.h.

Referenced by Delete().

WN* FEEDBACK::_root_wn [private]

Definition at line 118 of file fb_whirl.h.

Referenced by Reset_Root_WN().

Definition at line 130 of file fb_whirl.h.

bool FEEDBACK::_trace [private]

Definition at line 119 of file fb_whirl.h.

bool FEEDBACK::_trace_draw [private]

Definition at line 120 of file fb_whirl.h.


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

Generated on Tue Nov 17 06:39:18 2009 for Open64 (mfef90, whirl2f, and IR tools) by  doxygen 1.6.1