From d0ca1f81959511c70a9506fcd2170da6d62f443d Mon Sep 17 00:00:00 2001 From: jpekkila Date: Sun, 28 Jun 2020 18:16:19 +0300 Subject: [PATCH] Reduction types are now generated with acc instead of being explicitly declared in astaroth.h --- acc/src/code_generator.c | 17 +++++++---------- include/astaroth.h | 3 +++ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/acc/src/code_generator.c b/acc/src/code_generator.c index 2799429..11711c0 100644 --- a/acc/src/code_generator.c +++ b/acc/src/code_generator.c @@ -697,13 +697,11 @@ generate_headers(void) // Do Fortran-specific const char* fortran_structs = R"( - integer, parameter :: precision = c_float ! TODO WARNING - type, bind(C) :: AcMeshInfo integer(c_int), dimension(AC_NUM_INT_PARAMS) :: int_params integer(c_int), dimension(AC_NUM_INT3_PARAMS, 3) :: int3_params - real(precision), dimension(AC_NUM_REAL_PARAMS) :: real_params - real(precision), dimension(AC_NUM_REAL3_PARAMS, 3) :: real3_params + real, dimension(AC_NUM_REAL_PARAMS) :: real_params + real, dimension(AC_NUM_REAL3_PARAMS, 3) :: real3_params end type AcMeshInfo )"; fprintf(FHEADER, "%s\n", fortran_structs); @@ -722,9 +720,9 @@ generate_headers(void) fprintf(FHEADER, "integer(c_int), parameter :: STREAM_ALL = NUM_STREAMS\n"); fprintf(DSLHEADER, "typedef int Stream;\n"); - /* + // Reduction types - const size_t counter = 0; + size_t counter = 0; fprintf(DSLHEADER, "#define RTYPE_MAX (%lu)\n", counter); fprintf(FHEADER, "integer(c_int), parameter :: RTYPE_MAX = %lu\n", counter); ++counter; @@ -745,10 +743,9 @@ generate_headers(void) fprintf(FHEADER, "integer(c_int), parameter :: RTYPE_SUM = %lu\n", counter); ++counter; - fprintf(DSLHEADER, "#define RTYPE_MAX (%lu)\n", counter); - fprintf(FHEADER, "integer(c_int), parameter :: RTYPE_MAX = %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); } static void diff --git a/include/astaroth.h b/include/astaroth.h index 61a4f91..be323ef 100644 --- a/include/astaroth.h +++ b/include/astaroth.h @@ -50,6 +50,8 @@ typedef struct { typedef enum { AC_SUCCESS = 0, AC_FAILURE = 1 } AcResult; +/* +// Deprecated, defined during code generation typedef enum { RTYPE_MAX, RTYPE_MIN, @@ -58,6 +60,7 @@ typedef enum { RTYPE_SUM, NUM_REDUCTION_TYPES } ReductionType; +*/ #define AC_GEN_ID(X) X, typedef enum {