From cbc7e47d439f024ed828cc31441218f1ec5ce235 Mon Sep 17 00:00:00 2001 From: Frederik Harwath Date: Tue, 16 Nov 2021 16:18:02 +0100 Subject: [PATCH] Add function for printing a single OMP_CLAUSE Commit 89f4f339130c ("For 'OMP_CLAUSE' in 'dump_generic_node', dump the whole OMP clause chain") changed the dumping behavior for OMP_CLAUSEs. The old behavior is required for a follow-up commit ("openacc: Add data optimization pass") that optimizes single OMP_CLAUSEs. gcc/ChangeLog: * tree-pretty-print.cc (print_omp_clause_to_str): Add new function. * tree-pretty-print.h (print_omp_clause_to_str): Add declaration. --- gcc/ChangeLog.omp | 5 +++++ gcc/tree-pretty-print.cc | 11 +++++++++++ gcc/tree-pretty-print.h | 1 + 3 files changed, 17 insertions(+) diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp index ec7d5e2c1cfa..04fd26f41295 100644 --- a/gcc/ChangeLog.omp +++ b/gcc/ChangeLog.omp @@ -1,3 +1,8 @@ +2021-11-16 Frederik Harwath + + * tree-pretty-print.cc (print_omp_clause_to_str): Add new function. + * tree-pretty-print.h (print_omp_clause_to_str): Add declaration. + 2021-11-16 Frederik Harwath * omp-offload.cc (oacc_remove_unused_partitioning): New function diff --git a/gcc/tree-pretty-print.cc b/gcc/tree-pretty-print.cc index d913f48e82d6..9e85b53493ed 100644 --- a/gcc/tree-pretty-print.cc +++ b/gcc/tree-pretty-print.cc @@ -1420,6 +1420,17 @@ dump_omp_clause (pretty_printer *pp, tree clause, int spc, dump_flags_t flags) } } +/* Print the single clause at the top of the clause chain C to a string and + return it. Note that print_generic_expr_to_str prints the whole clause chain + instead. The caller must free the returned memory. */ + +char * +print_omp_clause_to_str (tree c) +{ + pretty_printer pp; + dump_omp_clause (&pp, c, 0, TDF_VOPS|TDF_MEMSYMS); + return xstrdup (pp_formatted_text (&pp)); +} /* Dump chain of OMP clauses. diff --git a/gcc/tree-pretty-print.h b/gcc/tree-pretty-print.h index 7347878b95ad..27d202e27fc0 100644 --- a/gcc/tree-pretty-print.h +++ b/gcc/tree-pretty-print.h @@ -41,6 +41,7 @@ extern void print_generic_expr (FILE *, tree, dump_flags_t = TDF_NONE); extern char *print_generic_expr_to_str (tree); extern void dump_omp_clauses (pretty_printer *, tree, int, dump_flags_t, bool = true); +extern char *print_omp_clause_to_str (tree); extern void dump_omp_atomic_memory_order (pretty_printer *, enum omp_memory_order); extern void dump_omp_loop_non_rect_expr (pretty_printer *, tree, int, -- 2.47.2