Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
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().

Definition at line 85 of file wn_verifier.cxx.


Typedef Documentation

typedef HASH_TABLE<LABEL_IDX, LABEL_IDX> LABEL_RENAMING_MAP

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]
BOOL WN_Tree_Has_Duplicate_Labels ( WN pu_wn,
MEM_POOL tmp_pool 
)

Definition at line 1024 of file wn_verifier.cxx.

References CURRENT_SYMTAB, FALSE, Is_True, LABEL_Table_Size(), OPR_LABEL, TRUE, wn, wn_iter::wn, WN_label_number(), WN_operator(), WN_WALK_TreeIter(), and WN_WALK_TreeNext().

Referenced by WN_Verifier::WN_traverse_tree().

Here is the call graph for this function:

BOOL WN_verifier ( WN wn)

Definition at line 1329 of file wn_verifier.cxx.

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

Referenced by Preorder_Process_PUs().

Here is the call graph for this function:


Variable Documentation

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().

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines