Reduction types are now generated in a same fashion as vertexbuffer handles and others

This commit is contained in:
jpekkila
2020-08-21 19:05:01 +03:00
parent 56273433fe
commit 8c28aacf96
2 changed files with 13 additions and 24 deletions

View File

@@ -731,29 +731,24 @@ external acdevicesynchronizestream
fprintf(DSLHEADER, "typedef int Stream;\n\n");
// Reduction types
fprintf(DSLHEADER, "#define AC_FOR_RTYPES(FUNC)\\\n");
fprintf(DSLHEADER, "FUNC(%s)\\\n", "RTYPE_MAX");
fprintf(DSLHEADER, "FUNC(%s)\\\n", "RTYPE_MIN");
fprintf(DSLHEADER, "FUNC(%s)\\\n", "RTYPE_RMS");
fprintf(DSLHEADER, "FUNC(%s)\\\n", "RTYPE_RMS_EXP");
fprintf(DSLHEADER, "FUNC(%s)\n", "RTYPE_SUM");
size_t counter = 0;
fprintf(DSLHEADER, "#define RTYPE_MAX (%lu)\n", counter);
fprintf(FHEADER, "integer(c_int), parameter :: RTYPE_MAX = %lu\n", counter);
++counter;
fprintf(DSLHEADER, "#define RTYPE_MIN (%lu)\n", counter);
fprintf(FHEADER, "integer(c_int), parameter :: RTYPE_MIN = %lu\n", counter);
++counter;
fprintf(DSLHEADER, "#define RTYPE_RMS (%lu)\n", counter);
fprintf(FHEADER, "integer(c_int), parameter :: RTYPE_RMS = %lu\n", counter);
++counter;
fprintf(DSLHEADER, "#define RTYPE_RMS_EXP (%lu)\n", counter);
fprintf(FHEADER, "integer(c_int), parameter :: RTYPE_RMS_EXP = %lu\n", counter);
++counter;
fprintf(DSLHEADER, "#define RTYPE_SUM (%lu)\n", counter);
fprintf(FHEADER, "integer(c_int), parameter :: RTYPE_SUM = %lu\n", counter);
++counter;
fprintf(DSLHEADER, "typedef int ReductionType;\n");
fprintf(DSLHEADER, "#define NUM_REDUCTION_TYPES (%lu)\n", counter);
fprintf(FHEADER, "integer(c_int), parameter :: NUM_REDUCTION_TYPES = %lu\n", counter);
// Fortran structs

View File

@@ -50,19 +50,12 @@ typedef struct {
typedef enum { AC_SUCCESS = 0, AC_FAILURE = 1 } AcResult;
/*
// Deprecated, defined during code generation
typedef enum {
RTYPE_MAX,
RTYPE_MIN,
RTYPE_RMS,
RTYPE_RMS_EXP,
RTYPE_SUM,
NUM_REDUCTION_TYPES
} ReductionType;
*/
#define AC_GEN_ID(X) X,
typedef enum {
AC_FOR_RTYPES(AC_GEN_ID) //
NUM_RTYPES
} ReductionType;
typedef enum {
AC_FOR_USER_INT_PARAM_TYPES(AC_GEN_ID) //
NUM_INT_PARAMS
@@ -96,6 +89,7 @@ typedef enum {
#define _UNUSED __attribute__((unused)) // Does not give a warning if unused
#define AC_GEN_STR(X) #X,
static const char* rtype_names[] _UNUSED = {AC_FOR_RTYPES(AC_GEN_STR) "-end-"};
static const char* intparam_names[] _UNUSED = {AC_FOR_USER_INT_PARAM_TYPES(AC_GEN_STR) "-end-"};
static const char* int3param_names[] _UNUSED = {AC_FOR_USER_INT3_PARAM_TYPES(AC_GEN_STR) "-end-"};
static const char* realparam_names[] _UNUSED = {AC_FOR_USER_REAL_PARAM_TYPES(AC_GEN_STR) "-end-"};