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 #if defined(__linux__) || defined(_GCC_NO_PRAGMAWEAK) || defined(__CYGWIN__)
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079 #include "defs.h"
00080 #include "wn.h"
00081 #include "pu_info.h"
00082 #include "ir_bwrite.h"
00083
00084
00085
00086
00087
00088 void (*lno_main_p) (INT, char**, INT, char**);
00089 void (*Lno_Init_p) ();
00090 void (*Lno_Fini_p) ();
00091 WN* (*Perform_Loop_Nest_Optimization_p) (PU_Info*, WN*, WN*, BOOL);
00092
00093
00094
00095
00096
00097 void (*Ipl_Extra_Output_p) (Output_File *);
00098 void (*Ipl_Init_p) ();
00099 void (*Ipl_Fini_p) ();
00100 void (*ipl_main_p) (INT, char **);
00101
00102
00103
00104
00105 void (*W2C_Cleanup_p)(void);
00106 void (*W2C_Fini_p)(void);
00107 void (*W2C_Init_p)(void);
00108 const char * (*W2C_Object_Name_p)(const ST *func_st);
00109 void (*W2C_Mark_Loads_p)(void);
00110 void (*W2C_Nomark_Loads_p)(void);
00111 void (*W2C_Outfile_Fini_p)(BOOL emit_global_decls);
00112 void (*W2C_Outfile_Init_p)(BOOL emit_global_decls);
00113 void (*W2C_Outfile_Translate_Pu_p)(WN *pu, BOOL emit_global_decls);
00114 void (*W2C_Pop_PU_p)(void);
00115 void (*W2C_Process_Command_Line_p)(INT phase_argc, char * const
00116 phase_argv[], INT argc, char * const argv[]);
00117 void (*W2C_Push_PU_p)(const WN *pu, WN *body_part_of_interest);
00118 void (*W2C_Set_Prompf_Emission_p)(const WN_MAP *construct_map);
00119 void (*W2C_Set_Frequency_Map_p)(WN_MAP frequency_map);
00120 const char *(*W2C_Get_Transformed_Src_Path_p)(void);
00121 void (*W2C_Set_Purple_Emission_p)(void);
00122 void (*W2C_Reset_Purple_Emission_p)(void);
00123 BOOL (*W2C_Should_Emit_Nested_PUs_p)(void);
00124 void (*W2C_Translate_Global_Defs_p)(FILE *outfile);
00125 void (*W2C_Translate_Global_Types_p)(FILE *outfile);
00126 void (*W2C_Translate_Istore_Lhs_p)(char *strbuf,
00127 UINT bufsize, const WN* lhs, mINT64 istore_ofst, TY_IDX istore_addr_ty,
00128 TYPE_ID istore_mtype);
00129 void (*W2C_Translate_Purple_Main_p)(FILE *outfile, const WN *pu,
00130 const char *region_name);
00131 void (*W2C_Translate_Stid_Lhs_p)(char *strbuf, UINT bufsize,
00132 const ST *stid_st, mINT64 stid_ofst, TY_IDX stid_ty, TYPE_ID stid_mtype);
00133 void (*W2C_Translate_Wn_p)(FILE *outfile, const WN *wn);
00134 void (*W2C_Translate_Wn_Str_p)(char *strbuf, UINT bufsize, const
00135 WN *wn);
00136
00137
00138
00139
00140
00141 void (*W2F_Cleanup_p)(void);
00142 void (*W2F_Def_ST_p)(FILE *outfile, ST *st);
00143 void (*W2F_Fini_p)(void);
00144 void (*W2F_Init_p)(void);
00145 void (*W2F_Mark_Loads_p)(void);
00146 void (*W2F_Nomark_Loads_p)(void);
00147 const char * (*W2F_Object_Name_p)(ST *func_st);
00148 void (*W2F_Outfile_Fini_p)(void);
00149 void (*W2F_Outfile_Init_p)(void);
00150 void (*W2F_Outfile_Translate_Pu_p)(WN *pu);
00151 void (*W2F_Pop_PU_p)(void);
00152 void (*W2F_Process_Command_Line_p)(INT phase_argc, char *phase_argv[],
00153 INT argc, char *argv[]);
00154 void (*W2F_Push_PU_p)(WN *pu, WN *body_part_of_interest);
00155 void (*W2F_Set_Prompf_Emission_p)(WN_MAP *construct_map);
00156 void (*W2F_Set_Frequency_Map_p)(WN_MAP frequency_map);
00157 const char * (*W2F_Get_Transformed_Src_Path_p)(void);
00158 void (*W2F_Reset_Purple_Emission_p)(void);
00159 void (*W2F_Set_Purple_Emission_p)(void);
00160 BOOL (*W2F_Should_Emit_Nested_PUs_p)(void);
00161 void (*W2F_Translate_Istore_Lhs_p)(char *strbuf, UINT bufsize,
00162 WN* lhs, mINT64 istore_ofst, TY_IDX istore_addr_ty, TYPE_ID istore_mtype);
00163 void (*W2F_Translate_Purple_Main_p)(FILE *outfile, WN *pu,
00164 const char *region_name);
00165 void (*W2F_Translate_Stid_Lhs_p)(char *strbuf, UINT bufsize,
00166 ST *stid_st, mINT64 stid_ofst, TY_IDX stid_ty, TYPE_ID stid_mtype);
00167 void (*W2F_Translate_Wn_p)(FILE *outfile, WN *wn);
00168 void (*W2F_Translate_Wn_Str_p)(char *strbuf, UINT bufsize, WN *wn);
00169
00170 #endif // __linux__