00001 00006 #if !defined(INC_HEUR_REGPROFQUERY_H) 00007 00008 #define INC_HEUR_REGPROFQUERY_H 00009 00010 #include <oski/common.h> 00011 #include <oski/simplelist.h> 00012 #include <oski/mangle.h> 00013 #include <oski/matrix.h> 00014 00015 #if defined(DO_NAME_MANGLING) 00016 00018 #define oski_regprofkernel_t MANGLE_(oski_regprofkernel_t) 00019 #define oski_GetRegProfileKernelWorkload \ 00020 MANGLE_(oski_GetRegProfielKernelWorkload) 00021 #define oski_DestroyRegProfileKernelWorkload \ 00022 MANGLE_(oski_DestroyRegProfielKernelWorkload) 00023 00024 #endif 00025 00027 typedef struct 00028 { 00029 oski_id_t id; 00031 union 00032 { 00033 oski_matop_t mat; 00034 oski_ataop_t ata; 00035 } op; 00036 00037 double num_flops; 00038 double norm_flops; 00039 oski_regprof_t profile; 00041 int has_alt_profile; 00042 oski_regprof_t alt_profile; 00043 } oski_regprofkernel_t; 00044 00046 simplelist_t *oski_GetRegProfileKernelWorkload (const oski_matcommon_t * A, 00047 const oski_trace_t W); 00048 00050 void oski_DestroyRegProfileKernelWorkload (simplelist_t * L); 00051 00052 #endif 00053 00054 /* eof */