Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 #if defined(__linux__) || defined(_GCC_NO_PRAGMAWEAK) || defined(__CYGWIN__)
00047
00048 #include "defs.h"
00049 #include "wn.h"
00050 #include "pu_info.h"
00051 #include "w2c_driver.h"
00052
00053 extern void (*W2C_Cleanup_p)(void);
00054 extern void (*W2C_Fini_p)(void);
00055 extern void (*W2C_Init_p)(void);
00056 extern const char * (*W2C_Object_Name_p)(const ST *func_st);
00057 extern void (*W2C_Mark_Loads_p)(void);
00058 extern void (*W2C_Nomark_Loads_p)(void);
00059 extern void (*W2C_Outfile_Fini_p)(BOOL emit_global_decls);
00060 extern void (*W2C_Outfile_Init_p)(BOOL emit_global_decls);
00061 extern void (*W2C_Outfile_Translate_Pu_p)(WN *pu, BOOL emit_global_decls);
00062 extern void (*W2C_Pop_PU_p)(void);
00063 extern void (*W2C_Process_Command_Line_p)(INT phase_argc, char * const
00064 phase_argv[], INT argc, char * const argv[]);
00065 extern void (*W2C_Push_PU_p)(const WN *pu, WN *body_part_of_interest);
00066 extern void (*W2C_Set_Prompf_Emission_p)(const WN_MAP *construct_map);
00067 extern void (*W2C_Set_Frequency_Map_p)(WN_MAP frequency_map);
00068 extern const char *(*W2C_Get_Transformed_Src_Path_p)(void);
00069 extern void (*W2C_Reset_Purple_Emission_p)(void);
00070 extern void (*W2C_Set_Purple_Emission_p)(void);
00071 extern BOOL (*W2C_Should_Emit_Nested_PUs_p)(void);
00072 extern void (*W2C_Translate_Global_Defs_p)(FILE *outfile);
00073 extern void (*W2C_Translate_Global_Types_p)(FILE *outfile);
00074 extern void (*W2C_Translate_Istore_Lhs_p)(char *strbuf,
00075 UINT bufsize, const WN* lhs, mINT64 istore_ofst, TY_IDX istore_addr_ty,
00076 TYPE_ID istore_mtype);
00077 extern void (*W2C_Translate_Purple_Main_p)(FILE *outfile, const WN *pu,
00078 const char *region_name);
00079 extern void (*W2C_Translate_Stid_Lhs_p)(char *strbuf, UINT bufsize,
00080 const ST *stid_st, mINT64 stid_ofst, TY_IDX stid_ty, TYPE_ID stid_mtype);
00081 extern void (*W2C_Translate_Wn_p)(FILE *outfile, const WN *wn);
00082 extern void (*W2C_Translate_Wn_Str_p)(char *strbuf, UINT bufsize, const
00083 WN *wn);
00084
00085 struct W2C_INIT
00086 {
00087 W2C_INIT () {
00088 W2C_Cleanup_p = W2C_Cleanup;
00089 W2C_Fini_p = W2C_Fini;
00090 W2C_Init_p = W2C_Init;
00091 W2C_Object_Name_p = W2C_Object_Name;
00092 W2C_Mark_Loads_p = W2C_Mark_Loads;
00093 W2C_Nomark_Loads_p = W2C_Nomark_Loads;
00094 W2C_Outfile_Fini_p = W2C_Outfile_Fini;
00095 W2C_Outfile_Init_p = W2C_Outfile_Init;
00096 W2C_Outfile_Translate_Pu_p = W2C_Outfile_Translate_Pu;
00097 W2C_Pop_PU_p = W2C_Pop_PU;
00098 W2C_Process_Command_Line_p = W2C_Process_Command_Line;
00099 W2C_Push_PU_p = W2C_Push_PU;
00100 W2C_Set_Prompf_Emission_p = W2C_Set_Prompf_Emission;
00101 W2C_Set_Frequency_Map_p = W2C_Set_Frequency_Map;
00102 W2C_Get_Transformed_Src_Path_p = W2C_Get_Transformed_Src_Path;
00103 W2C_Reset_Purple_Emission_p = W2C_Reset_Purple_Emission;
00104 W2C_Set_Purple_Emission_p = W2C_Set_Purple_Emission;
00105 W2C_Should_Emit_Nested_PUs_p = W2C_Should_Emit_Nested_PUs;
00106 W2C_Translate_Global_Defs_p = W2C_Translate_Global_Defs;
00107 W2C_Translate_Global_Types_p = W2C_Translate_Global_Types;
00108 W2C_Translate_Istore_Lhs_p = W2C_Translate_Istore_Lhs;
00109 W2C_Translate_Purple_Main_p = W2C_Translate_Purple_Main;
00110 W2C_Translate_Stid_Lhs_p = W2C_Translate_Stid_Lhs;
00111 W2C_Translate_Wn_p = W2C_Translate_Wn;
00112 W2C_Translate_Wn_Str_p = W2C_Translate_Wn_Str;
00113 }
00114 } W2C_Initializer;
00115
00116 #endif // __linux__