Classes | Defines | Typedefs | Enumerations | Functions | Variables

wn_verifier.cxx File Reference

#include <algorithm>
#include <vector>
#include <stack>
#include <stdlib.h>
#include "defs.h"
#include "stab.h"
#include "wn.h"
#include "wn_map.h"
#include "wn_util.h"
#include "mempool.h"
#include "tracing.h"
#include "targ_sim.h"
#include "wn_pragmas.h"
#include "ir_reader.h"
#include "cxx_template.h"
#include "cxx_hash.h"
#include "config_asm.h"
#include "glob.h"
#include "pu_info.h"
Include dependency graph for wn_verifier.cxx:

Go to the source code of this file.

Classes

struct  pragma_stack_type
struct  pragma_mapped_ids
class  WN_Verifier

Defines

#define USE_STANDARD_TYPES
#define Verifier_DEBUG   0
#define NUM_PRAGMAS_SUPPORTED   26

Typedefs

typedef HASH_TABLE< LABEL_IDX,
LABEL_IDX
LABEL_RENAMING_MAP

Enumerations

enum  WN_Label_Fields { WN_HAS_NO_LABELS, WN_HAS_LABEL, WN_HAS_LAST_LABEL }

Functions

BOOL WN_Tree_Has_Duplicate_Labels (WN *pu_wn, MEM_POOL *tmp_pool)
static WN_Label_Fields WN_Has_Label (WN *wn)
static BOOL References_Some_Label (WN *pu_wn, LABEL_RENAMING_MAP *lab_map, WN *orig_wn)
static void Rename_INITV_Labels (INITO_IDX inito_idx, LABEL_RENAMING_MAP *lab_map, MEM_POOL *tmp_pool)
BOOL WN_Rename_Duplicate_Labels (WN *orig_wn, WN *copied_wn, WN *pu_wn, MEM_POOL *tmp_pool)
BOOL WN_verifier (WN *wn)

Variables

pragma_mapped_ids pragmas_supported [NUM_PRAGMAS_SUPPORTED]

Define Documentation

#define NUM_PRAGMAS_SUPPORTED   26

Definition at line 130 of file wn_verifier.cxx.

Referenced by WN_Verifier::Are_enclosed_pragmas().

#define USE_STANDARD_TYPES

Definition at line 85 of file wn_verifier.cxx.

#define Verifier_DEBUG   0

Typedef Documentation

Definition at line 1084 of file wn_verifier.cxx.


Enumeration Type Documentation

Enumerator:
WN_HAS_NO_LABELS 
WN_HAS_LABEL 
WN_HAS_LAST_LABEL 

Definition at line 1055 of file wn_verifier.cxx.


Function Documentation

static BOOL References_Some_Label ( WN pu_wn,
LABEL_RENAMING_MAP lab_map,
WN orig_wn 
) [static]
static void Rename_INITV_Labels ( INITO_IDX  inito_idx,
LABEL_RENAMING_MAP lab_map,
MEM_POOL tmp_pool 
) [static]
static WN_Label_Fields WN_Has_Label ( WN wn  )  [static]

Definition at line 1062 of file wn_verifier.cxx.

References Is_True, OPR_CASEGOTO, OPR_COMPGOTO, OPR_FALSEBR, OPR_GOTO, OPR_LABEL, OPR_REGION_EXIT, OPR_SWITCH, OPR_TRUEBR, and WN_operator().

Referenced by References_Some_Label(), and WN_Rename_Duplicate_Labels().

Here is the call graph for this function:

BOOL WN_Rename_Duplicate_Labels ( WN orig_wn,
WN copied_wn,
WN pu_wn,
MEM_POOL tmp_pool 
)
BOOL WN_Tree_Has_Duplicate_Labels ( WN pu_wn,
MEM_POOL tmp_pool 
)
BOOL WN_verifier ( WN wn  ) 

Definition at line 1329 of file wn_verifier.cxx.

References DevWarn(), getenv(), NULL, Verifier_DEBUG, and WN_Verifier::WN_traverse_tree().

Referenced by Preorder_Process_PUs().

Here is the call graph for this function:


Variable Documentation

pragma_mapped_ids pragmas_supported[NUM_PRAGMAS_SUPPORTED]
Initial value:
{
  { WN_PRAGMA_INLINE_BODY_START,      TRUE,  WN_PRAGMA_UNDEFINED },
  { WN_PRAGMA_INLINE_BODY_END,        FALSE, WN_PRAGMA_INLINE_BODY_START },
  { WN_PRAGMA_ENTER_GATE,             TRUE,  WN_PRAGMA_UNDEFINED },
  { WN_PRAGMA_EXIT_GATE,              FALSE, WN_PRAGMA_ENTER_GATE },
  { WN_PRAGMA_CRITICAL_SECTION_BEGIN, TRUE,  WN_PRAGMA_UNDEFINED },
  { WN_PRAGMA_CRITICAL_SECTION_END,   FALSE, WN_PRAGMA_CRITICAL_SECTION_BEGIN },
  { WN_PRAGMA_PARALLEL_BEGIN,         TRUE,  WN_PRAGMA_UNDEFINED },
  { WN_PRAGMA_PARALLEL_END,           FALSE, WN_PRAGMA_PARALLEL_BEGIN },
  { WN_PRAGMA_PDO_BEGIN,              TRUE,  WN_PRAGMA_UNDEFINED },
  { WN_PRAGMA_PDO_END,                FALSE, WN_PRAGMA_PDO_BEGIN },
  { WN_PRAGMA_PSECTION_BEGIN,         TRUE,  WN_PRAGMA_UNDEFINED },
  { WN_PRAGMA_PSECTION_END,           FALSE, WN_PRAGMA_PSECTION_BEGIN },
  { WN_PRAGMA_SINGLE_PROCESS_BEGIN,   TRUE,  WN_PRAGMA_UNDEFINED },
  { WN_PRAGMA_SINGLE_PROCESS_END,     FALSE, WN_PRAGMA_SINGLE_PROCESS_BEGIN },
  { WN_PRAGMA_FLIST_SKIP_BEGIN,       TRUE,  WN_PRAGMA_UNDEFINED },
  { WN_PRAGMA_FLIST_SKIP_END,         FALSE, WN_PRAGMA_FLIST_SKIP_BEGIN },
  { WN_PRAGMA_CLIST_SKIP_BEGIN,       TRUE,  WN_PRAGMA_UNDEFINED },
  { WN_PRAGMA_CLIST_SKIP_END,         FALSE, WN_PRAGMA_CLIST_SKIP_BEGIN },
  { WN_PRAGMA_INDEPENDENT_BEGIN,      TRUE,  WN_PRAGMA_UNDEFINED },
  { WN_PRAGMA_INDEPENDENT_END,        FALSE, WN_PRAGMA_INDEPENDENT_BEGIN },
  { WN_PRAGMA_CRI_CASE,               TRUE,  WN_PRAGMA_UNDEFINED },
  { WN_PRAGMA_CRI_ENDCASE,            FALSE, WN_PRAGMA_CRI_CASE },
  { WN_PRAGMA_CRI_GUARD,              TRUE,  WN_PRAGMA_UNDEFINED },
  { WN_PRAGMA_CRI_ENDGUARD,           FALSE, WN_PRAGMA_CRI_GUARD },
  { WN_PRAGMA_CRI_PARALLEL,           TRUE,  WN_PRAGMA_UNDEFINED },
  { WN_PRAGMA_CRI_ENDPARALLEL,        FALSE, WN_PRAGMA_CRI_PARALLEL}
}

Definition at line 145 of file wn_verifier.cxx.

Referenced by WN_Verifier::Are_enclosed_pragmas().