Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
fb_info.h File Reference
#include "fb_freq.h"
#include <vector>
#include "mempool_allocator.h"
#include "wn.h"
Include dependency graph for fb_info.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  FB_Info_Invoke
struct  FB_Info_Branch
struct  FB_Info_Loop
struct  FB_Info_Circuit
struct  FB_Info_Call
struct  FB_Info_Switch

Defines

#define FB_IO_ESCAPE_EDGES_MAX   3
#define FB_EDGE_IO_ESCAPE(br)   ( FB_EDGE_TYPE( FB_EDGE_IO_ESCAPE_BASE + (br) ) )
#define FB_EDGE_SWITCH(br)   ( FB_EDGE_TYPE( FB_EDGE_SWITCH_BASE + (br) ) )
#define FB_EDGE_SWITCH_INDEX(typ)   ( INT32( (typ) - FB_EDGE_SWITCH_BASE + 1 ) )
#define FB_EDGE_TYPE_NAME_LENGTH   20
#define fb_opr_cases_invoke
#define fb_opr_cases_branch
#define fb_opr_cases_loop
#define fb_opr_cases_circuit
#define fb_opr_cases_call
#define fb_opr_cases_switch

Typedefs

typedef vector< FB_Info_Invoke,
mempool_allocator
< FB_Info_Invoke > > 
FB_Invoke_Vector
typedef vector< FB_Info_Branch,
mempool_allocator
< FB_Info_Branch > > 
FB_Branch_Vector
typedef vector< FB_Info_Loop,
mempool_allocator
< FB_Info_Loop > > 
FB_Loop_Vector
typedef vector
< FB_Info_Circuit,
mempool_allocator
< FB_Info_Circuit > > 
FB_Circuit_Vector
typedef vector< FB_Info_Call,
mempool_allocator
< FB_Info_Call > > 
FB_Call_Vector
typedef vector< FB_Info_Switch,
mempool_allocator
< FB_Info_Switch > > 
FB_Switch_Vector

Enumerations

enum  FB_EDGE_TYPE {
  FB_EDGE_UNINIT = 0, FB_EDGE_INCOMING = 1, FB_EDGE_OUTGOING = 2, FB_EDGE_ENTRY_OUTGOING = 3,
  FB_EDGE_BRANCH_TAKEN = 4, FB_EDGE_BRANCH_NOT_TAKEN = 5, FB_EDGE_LOOP_ZERO = 6, FB_EDGE_LOOP_POSITIVE = 7,
  FB_EDGE_LOOP_OUT = 8, FB_EDGE_LOOP_BACK = 9, FB_EDGE_LOOP_EXIT = 10, FB_EDGE_LOOP_ITERATE = 11,
  FB_EDGE_CIRCUIT_LEFT = 12, FB_EDGE_CIRCUIT_RIGHT = 13, FB_EDGE_CIRCUIT_NEITHER = 14, FB_EDGE_CALL_INCOMING = 15,
  FB_EDGE_CALL_OUTGOING = 16, FB_EDGE_CALL_INOUTSAME = 17, FB_EDGE_IO_OUTGOING = 18, FB_EDGE_IO_ESCAPE_BASE = 19,
  FB_EDGE_SWITCH_DEFAULT = 22, FB_EDGE_SWITCH_BASE = 23
}

Functions

template<class T >
void FB_Info_Print (const T &info, const char *name, FILE *fp)
void FB_EDGE_TYPE_fprintf (FILE *fp, const FB_EDGE_TYPE fb_type)
INT FB_EDGE_TYPE_sprintf (char *buffer, const FB_EDGE_TYPE fb_type)
bool FB_valid_opr_invoke (const WN *wn)
bool FB_valid_opr_branch (const WN *wn)
bool FB_valid_opr_loop (const WN *wn)
bool FB_valid_opr_circuit (const WN *wn)
bool FB_valid_opr_call (const WN *wn)
bool FB_valid_opr_switch (const WN *wn)

Variables

const char * FB_EDGE_NAMES []

Define Documentation

#define FB_EDGE_IO_ESCAPE (   br)    ( FB_EDGE_TYPE( FB_EDGE_IO_ESCAPE_BASE + (br) ) )

Definition at line 443 of file fb_info.h.

#define FB_EDGE_SWITCH (   br)    ( FB_EDGE_TYPE( FB_EDGE_SWITCH_BASE + (br) ) )

Definition at line 445 of file fb_info.h.

#define FB_EDGE_SWITCH_INDEX (   typ)    ( INT32( (typ) - FB_EDGE_SWITCH_BASE + 1 ) )

Definition at line 446 of file fb_info.h.

#define FB_EDGE_TYPE_NAME_LENGTH   20

Definition at line 448 of file fb_info.h.

Referenced by FB_NODE::Print().

#define FB_IO_ESCAPE_EDGES_MAX   3

Definition at line 413 of file fb_info.h.

Value:
case OPR_TRUEBR:          \
  case OPR_FALSEBR:         \
  case OPR_IF:              \
  case OPR_CSELECT

Definition at line 494 of file fb_info.h.

Referenced by FB_valid_opr_branch().

Value:
case OPR_PICCALL:        \
  case OPR_CALL:           \
  case OPR_ICALL:          \
  case OPR_INTRINSIC_CALL: \
  case OPR_IO

Definition at line 552 of file fb_info.h.

Referenced by FB_valid_opr_call().

Value:
case OPR_CAND:             \
  case OPR_CIOR

Definition at line 534 of file fb_info.h.

Referenced by FB_valid_opr_circuit().

Value:
case OPR_LABEL:           \
  case OPR_GOTO:            \
  case OPR_MSTORE:          \
  case OPR_FUNC_ENTRY:      \
  case OPR_ALTENTRY:        \
  case OPR_RETURN:          \
  case OPR_RETURN_VAL

Definition at line 465 of file fb_info.h.

Referenced by FB_valid_opr_invoke().

Value:
case OPR_DO_LOOP:       \
  case OPR_WHILE_DO:      \
  case OPR_DO_WHILE

Definition at line 513 of file fb_info.h.

Referenced by FB_valid_opr_loop().

Value:
case OPR_SWITCH:          \
  case OPR_COMPGOTO:        \
  case OPR_XGOTO

Definition at line 576 of file fb_info.h.

Referenced by FB_valid_opr_switch().


Typedef Documentation

Definition at line 394 of file fb_info.h.

Definition at line 400 of file fb_info.h.

Definition at line 398 of file fb_info.h.

Definition at line 392 of file fb_info.h.

Definition at line 396 of file fb_info.h.

Definition at line 402 of file fb_info.h.


Enumeration Type Documentation

Enumerator:
FB_EDGE_UNINIT 
FB_EDGE_INCOMING 
FB_EDGE_OUTGOING 
FB_EDGE_ENTRY_OUTGOING 
FB_EDGE_BRANCH_TAKEN 
FB_EDGE_BRANCH_NOT_TAKEN 
FB_EDGE_LOOP_ZERO 
FB_EDGE_LOOP_POSITIVE 
FB_EDGE_LOOP_OUT 
FB_EDGE_LOOP_BACK 
FB_EDGE_LOOP_EXIT 
FB_EDGE_LOOP_ITERATE 
FB_EDGE_CIRCUIT_LEFT 
FB_EDGE_CIRCUIT_RIGHT 
FB_EDGE_CIRCUIT_NEITHER 
FB_EDGE_CALL_INCOMING 
FB_EDGE_CALL_OUTGOING 
FB_EDGE_CALL_INOUTSAME 
FB_EDGE_IO_OUTGOING 
FB_EDGE_IO_ESCAPE_BASE 
FB_EDGE_SWITCH_DEFAULT 
FB_EDGE_SWITCH_BASE 

Definition at line 415 of file fb_info.h.


Function Documentation

void FB_EDGE_TYPE_fprintf ( FILE *  fp,
const FB_EDGE_TYPE  fb_type 
)

Definition at line 63 of file fb_info.cxx.

References FB_EDGE_NAMES, FB_EDGE_SWITCH_BASE, fp, and fprintf().

Here is the call graph for this function:

INT FB_EDGE_TYPE_sprintf ( char *  buffer,
const FB_EDGE_TYPE  fb_type 
)

Definition at line 73 of file fb_info.cxx.

References FB_EDGE_NAMES, and FB_EDGE_SWITCH_BASE.

Referenced by FB_NODE::Print().

template<class T >
void FB_Info_Print ( const T info,
const char *  name,
FILE *  fp 
)

Definition at line 373 of file fb_info.h.

References fprintf(), and size.

Here is the call graph for this function:

bool FB_valid_opr_branch ( const WN wn) [inline]

Definition at line 500 of file fb_info.h.

References fb_opr_cases_branch, and WN_operator().

Here is the call graph for this function:

bool FB_valid_opr_call ( const WN wn) [inline]

Definition at line 560 of file fb_info.h.

References fb_opr_cases_call, and WN_operator().

Here is the call graph for this function:

bool FB_valid_opr_circuit ( const WN wn) [inline]

Definition at line 538 of file fb_info.h.

References fb_opr_cases_circuit, and WN_operator().

Here is the call graph for this function:

bool FB_valid_opr_invoke ( const WN wn) [inline]

Definition at line 475 of file fb_info.h.

References fb_opr_cases_invoke, OPR_PRAGMA, WN_operator(), WN_pragma(), and WN_PRAGMA_PREAMBLE_END.

Here is the call graph for this function:

bool FB_valid_opr_loop ( const WN wn) [inline]

Definition at line 518 of file fb_info.h.

References fb_opr_cases_loop, and WN_operator().

Here is the call graph for this function:

bool FB_valid_opr_switch ( const WN wn) [inline]

Definition at line 581 of file fb_info.h.

References fb_opr_cases_switch, and WN_operator().

Here is the call graph for this function:


Variable Documentation

Definition at line 53 of file fb_info.cxx.

Referenced by FB_EDGE_TYPE_fprintf(), and FB_EDGE_TYPE_sprintf().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines