OpenADFortTk (including Open64 and OpenAnalysis references)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
upc_symtab_utils.h
Go to the documentation of this file.
1 /* -*-Mode: c++;-*- (Tell emacs to use c++ mode) */
2 
3 #ifndef upc_symtab_utils_INCLUDED
4 #define upc_symtab_utils_INCLUDED
5 
6 
7 // #include <opcode.h>
8 #include <wintrinsic.h>
9 // #include <wn_core.h>
10 // #include <symtab_defs.h>
11 
12 class WN;
13 
14 typedef enum {
19 
20 
21 /* UPC specific */
22 extern TY_IDX shared_ptr_idx;
23 extern TY_IDX pshared_ptr_idx;
24 extern int compiling_upc;
25 
26 
27 /* synchronization */
28 
29 #define UPCR_BARRIERFLAG_ANONYMOUS 1 /* keep this consistent with upcr.h */
30 #define UPCR_BARRIERVAL_ANONYMOUS 0xdeadbeef
31 
32 #define MAX_LINE_LEN_UPC 100
33 
34 // extern const char *upc_ptradd_name;
35 extern char *shared_ptr_name;
36 extern ST* upc_ptradd_st;
37 extern ST* upc_ptrdiff_st;
38 extern ST* upc_ptrget_st;
39 extern ST* upc_ptrput_st;
40 extern ST* upc_putblock_st;
41 extern ST* upc_getblock_st;
42 extern ST* upc_threadof_st;
43 extern ST* upc_mythread_st;
44 extern ST* upc_memget_st;
45 extern ST* upc_memput_st;
46 extern ST* upc_memcpy_st;
47 extern ST* upc_adddisp_st;
48 extern ST* upc_getshared_st;
49 extern ST* upc_phreset_st;
50 extern ST* upc_nulleq_st;
51 extern ST* upc_nullneq_st;
52 extern ST* upc_ptreqtest_st;
53 extern ST* upc_ptrneqtest_st;
57 
58 extern void Save_Upc_Rts_Calls(char *name,ST *st);
59 extern void Upc_Translate_Name(char *from, char **to);
60 extern void Initialize_Upc_Metadata ();
61 extern void Initialize_Upc_Vars();
62 extern void Find_Upc_Vars();
63 extern void Verify_Upc_Metadata ();
64 extern void Initialize_Upc_Types(char *, UINT, char *, UINT, char*, UINT, char*, UINT);
65 extern void Upc_Lower_SymbolTable();
71 extern BOOL WN_Type_Is_Shared_Ptr (const WN* wn, BOOL real_ptr = FALSE);
72 extern BOOL Type_Is_Shared_Ptr (TY_IDX idx, BOOL real_ptr = FALSE);
74 extern BOOL Types_Are_Equiv(TY_IDX idx1, TY_IDX idx2);
75 extern BOOL Need_StoP_Cvt(TY_IDX src_idx, TY_IDX dest_idx, INTRINSIC *iop);
76 
78 extern BOOL Use_32_Bit(const char* filename);
79 extern UINT Adjust_Field_Offset(TY_IDX struct_idx, UINT field_id);
80 extern UINT Adjust_Field_Offset(TY& struct_idx, UINT field_id);
82 extern TY_IDX Get_Field_Type (TY_IDX struct_type, UINT field_id);
83 extern UINT Adjusted_Type_Size(TY_IDX idx, unsigned int pshared = 0, unsigned int shared = 0);
84 extern bool is_upcr_ptr(TY_IDX ty);
85 
86 #define MTYPE_To_Shared_TY(t) MTYPE_TO_Shared_TY_array[t]
87 
88 #endif /* upc_symtab_utils_INCLUDED */