osprey/be/cg/orc_intel/if_conv.h File Reference

#include <vector>
#include <set>
#include "bb.h"
#include "defs.h"
#include "mempool.h"
#include "error.h"
#include "bb_set.h"
#include "region.h"
#include "cgtarget.h"

Include dependency graph for if_conv.h:

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

Go to the source code of this file.

Data Types

module  TN_INFO_MEM
module  CNTL_DEP
module  IF_CONV_MEM
module  IF_CONVERTOR
module  EXIT_TARGET_INFO
module  IF_CONV_AREA
module  BB_PREDICATE_INFO

Defines

#define IF_CONV_BIASE_THRESHOLD   20

Typedefs

typedef mempool_allocator
< IF_CONV_AREA * > 
IF_CONV_ALLOC
typedef std::vector
< IF_CONV_AREA
*, IF_CONV_ALLOC
AREA_CONTAINER
typedef mempool_allocator< TN * > TN_CONTAINER_ALLOC
typedef std::vector< TN
*, TN_CONTAINER_ALLOC
TN_CONTAINER
typedef mempool_allocator< BB * > BB_CONTAINER_ALLOC
typedef std::vector< BB
*, BB_CONTAINER_ALLOC
BB_CONTAINER
typedef mempool_allocator
< EXIT_TARGET_INFO * > 
EXIT_CONTAINER_ALLOC
typedef std::vector
< EXIT_TARGET_INFO
*, EXIT_CONTAINER_ALLOC
EXIT_CONTAINER

Enumerations

enum  AREA_TYPE { SUITABLE_FOR_IF_CONV = 0x00, UPWARD_UNSUITABLE = 0x01, DOWNWARD_UNSUITABLE = 0x02, UNSUITABLE = 0x03 }
enum  IF_CONV_TYPE { NO_IF_CONV = 0x1, PARTIAL_IF_CONV = 0x2, FULLY_IF_CONV = 0x4 }
enum  CFLOW_TYPE { NO_TYPE = 0x1, SERIAL_TYPE = 0x2, IF_THEN_TYPE = 0x4, IF_THEN_ELSE_TYPE = 0x8 }
enum  BB_MERGE_TYPE {
  CASE_ALL_IN_AREA = 0x1, CASE_CALL_OUT = 0x2, CASE_CALL_IN = 0x3, CASE_UNCOND_BR = 0x4,
  CASE_FALL_OUT = 0x5, CASE_IF_FALL_IN = 0x6, CASE_IF_FALL_OUT = 0x7, CASE_IF_OUT = 0x8,
  CASE_CHECK_IN = 0x9, CASE_CHECK_OUT = 0x10
}

Functions/Subroutines

BOOL Is_Para_Comp_May_Def (OP *op)
BOOL Is_In_Infinite_Loop (REGION *)
BOOL Is_Abnormal_Loop (REGION *)
static OPTN_Defined_At_Op (TN *tn, OP *op, std::vector< OP * > *ops)

Variables

hTN_MAPf frequency_of_predicates
hTN_MAP init_op_info
TN_INFO_MEM info_mem


Define Documentation

#define IF_CONV_BIASE_THRESHOLD   20

Definition at line 45 of file if_conv.h.

Referenced by IF_CONVERTOR::Worth_If_Convert().


Typedef Documentation

typedef std::vector<IF_CONV_AREA *, IF_CONV_ALLOC> AREA_CONTAINER

Definition at line 63 of file if_conv.h.

typedef std::vector<BB *, BB_CONTAINER_ALLOC> BB_CONTAINER

Definition at line 69 of file if_conv.h.

Definition at line 68 of file if_conv.h.

Definition at line 444 of file if_conv.h.

Definition at line 443 of file if_conv.h.

Definition at line 60 of file if_conv.h.

typedef std::vector<TN*, TN_CONTAINER_ALLOC> TN_CONTAINER

Definition at line 66 of file if_conv.h.

Definition at line 65 of file if_conv.h.


Enumeration Type Documentation

enum AREA_TYPE

Enumerator:
SUITABLE_FOR_IF_CONV 
UPWARD_UNSUITABLE 
DOWNWARD_UNSUITABLE 
UNSUITABLE 

Definition at line 104 of file if_conv.h.

Enumerator:
CASE_ALL_IN_AREA 
CASE_CALL_OUT 
CASE_CALL_IN 
CASE_UNCOND_BR 
CASE_FALL_OUT 
CASE_IF_FALL_IN 
CASE_IF_FALL_OUT 
CASE_IF_OUT 
CASE_CHECK_IN 
CASE_CHECK_OUT 

Definition at line 199 of file if_conv.h.

enum CFLOW_TYPE

Enumerator:
NO_TYPE 
SERIAL_TYPE 
IF_THEN_TYPE 
IF_THEN_ELSE_TYPE 

Definition at line 161 of file if_conv.h.

Enumerator:
NO_IF_CONV 
PARTIAL_IF_CONV 
FULLY_IF_CONV 

Definition at line 124 of file if_conv.h.


Function Documentation

BOOL Is_Abnormal_Loop ( REGION  ) 

Definition at line 148 of file if_conv.cxx.

BOOL Is_In_Infinite_Loop ( REGION  ) 

Definition at line 113 of file if_conv.cxx.

BOOL Is_Para_Comp_May_Def ( OP op  ) 

Definition at line 104 of file if_conv.cxx.

References Compare_Type(), COMPARE_TYPE_normal, COMPARE_TYPE_unc, and OP_code.

Referenced by Predicate_Block().

static OP* TN_Defined_At_Op ( TN tn,
OP op,
std::vector< OP * > *  ops 
) [static]


Variable Documentation

Definition at line 99 of file if_conv.cxx.

Definition at line 100 of file if_conv.cxx.


Generated on Wed Apr 8 14:29:10 2009 for Open64 by  doxygen 1.5.6