summaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-openmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/trans-openmp.c')
-rw-r--r--gcc/fortran/trans-openmp.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c
index dee7cc26a7d..d9dfcabc65e 100644
--- a/gcc/fortran/trans-openmp.c
+++ b/gcc/fortran/trans-openmp.c
@@ -3193,8 +3193,9 @@ gfc_trans_omp_code (gfc_code *code, bool force_empty)
return stmt;
}
-/* Trans OpenACC directives. */
-/* parallel, kernels, data and host_data. */
+/* Translate OpenACC 'parallel', 'kernels', 'serial', 'data', 'host_data'
+ construct. */
+
static tree
gfc_trans_oacc_construct (gfc_code *code)
{
@@ -3210,6 +3211,9 @@ gfc_trans_oacc_construct (gfc_code *code)
case EXEC_OACC_KERNELS:
construct_code = OACC_KERNELS;
break;
+ case EXEC_OACC_SERIAL:
+ construct_code = OACC_SERIAL;
+ break;
case EXEC_OACC_DATA:
construct_code = OACC_DATA;
break;
@@ -4017,7 +4021,9 @@ gfc_trans_omp_do (gfc_code *code, gfc_exec_op op, stmtblock_t *pblock,
return gfc_finish_block (&block);
}
-/* parallel loop and kernels loop. */
+/* Translate combined OpenACC 'parallel loop', 'kernels loop', 'serial loop'
+ construct. */
+
static tree
gfc_trans_oacc_combined_directive (gfc_code *code)
{
@@ -4035,6 +4041,9 @@ gfc_trans_oacc_combined_directive (gfc_code *code)
case EXEC_OACC_KERNELS_LOOP:
construct_code = OACC_KERNELS;
break;
+ case EXEC_OACC_SERIAL_LOOP:
+ construct_code = OACC_SERIAL;
+ break;
default:
gcc_unreachable ();
}
@@ -5267,9 +5276,11 @@ gfc_trans_oacc_directive (gfc_code *code)
{
case EXEC_OACC_PARALLEL_LOOP:
case EXEC_OACC_KERNELS_LOOP:
+ case EXEC_OACC_SERIAL_LOOP:
return gfc_trans_oacc_combined_directive (code);
case EXEC_OACC_PARALLEL:
case EXEC_OACC_KERNELS:
+ case EXEC_OACC_SERIAL:
case EXEC_OACC_DATA:
case EXEC_OACC_HOST_DATA:
return gfc_trans_oacc_construct (code);