Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
#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"
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 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 |
Definition at line 112 of file wn_verifier.cxx.
Referenced by WN_Verifier::Are_enclosed_pragmas(), WN_Verifier::CALL_parent_LDID(), WN_Verifier::Is_return_register_of_call(), and WN_verifier().
typedef HASH_TABLE<LABEL_IDX, LABEL_IDX> LABEL_RENAMING_MAP |
Definition at line 1084 of file wn_verifier.cxx.
enum WN_Label_Fields |
Definition at line 1055 of file wn_verifier.cxx.
static BOOL References_Some_Label | ( | WN * | pu_wn, |
LABEL_RENAMING_MAP * | lab_map, | ||
WN * | orig_wn | ||
) | [static] |
Definition at line 1165 of file wn_verifier.cxx.
References Fail_FmtAssertion(), FALSE, Is_True, OPERATOR_is_leaf(), OPR_BLOCK, TRUE, WN_first(), WN_HAS_LABEL, WN_Has_Label(), WN_HAS_LAST_LABEL, WN_HAS_NO_LABELS, WN_kid(), WN_kid_count(), WN_label_number(), WN_last_label(), WN_next(), and WN_operator().
Referenced by WN_Rename_Duplicate_Labels().
static void Rename_INITV_Labels | ( | INITO_IDX | inito_idx, |
LABEL_RENAMING_MAP * | lab_map, | ||
MEM_POOL * | tmp_pool | ||
) | [static] |
Definition at line 1206 of file wn_verifier.cxx.
References Copy_INITV(), Fail_FmtAssertion(), FALSE, INITO_IDX_ZERO, INITO_val(), INITV_blk(), INITV_IDX_ZERO, INITV_kind(), INITV_lab(), INITV_lab1(), INITV_next(), INITVKIND_BLOCK, INITVKIND_LABEL, INITVKIND_ONE, INITVKIND_PAD, INITVKIND_SYMDIFF, INITVKIND_SYMDIFF16, INITVKIND_SYMOFF, INITVKIND_VAL, INITVKIND_ZERO, Set_INITO_val(), Set_INITV_blk(), Set_INITV_lab(), Set_INITV_lab1(), Set_INITV_next(), and TRUE.
Referenced by WN_Rename_Duplicate_Labels().
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, WN_HAS_LABEL, WN_HAS_LAST_LABEL, WN_HAS_NO_LABELS, and WN_operator().
Referenced by References_Some_Label(), and WN_Rename_Duplicate_Labels().
Definition at line 1094 of file wn_verifier.cxx.
References Cur_PU_Name, Current_PU_Info, CURRENT_SYMTAB, Fail_FmtAssertion(), Is_True, LABEL_Init(), LABEL_kind(), New_LABEL(), OPR_LABEL, OPR_REGION, PU_Info_proc_sym, References_Some_Label(), Rename_INITV_Labels(), Save_Str(), Scope_tab, ST_name(), TRUE, User_Label_Number_Format, wn, wn_iter::wn, WN_ereg_supp(), WN_HAS_LABEL, WN_Has_Label(), WN_HAS_LAST_LABEL, WN_HAS_NO_LABELS, WN_label_number(), WN_last_label(), WN_operator(), WN_WALK_TreeIter(), and WN_WALK_TreeNext().
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().
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().
{ { 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().