diff mbox

Move some Cilk+ code around

Message ID 20151020161716.GX13672@redhat.com
State New
Headers show

Commit Message

Marek Polacek Oct. 20, 2015, 4:17 p.m. UTC
The function is_cilkplus_vector_p is defined both in c-parser.c and parser.c
and is exactly the same so it seems that it should rather be defined in the
common Cilk+ code (even though for such a small static inline fn it probably
doesn't matter much).  While at it, fix some typos and simplify the code a bit.

Bootstrapped/regtested on x86_64-linux, ok for trunk?

2015-10-20  Marek Polacek  <polacek@redhat.com>

	* array-notation-common.c (is_cilkplus_vector_p): Define.
	* c-common.h (is_cilkplus_vector_p): Declare.

	* c-parser.c (is_cilkplus_vector_p): Don't define here.

	* parser.c (is_cilkplus_vector_p): Don't define here.


	Marek

Comments

Jeff Law Oct. 20, 2015, 8:26 p.m. UTC | #1
On 10/20/2015 10:17 AM, Marek Polacek wrote:
> The function is_cilkplus_vector_p is defined both in c-parser.c and parser.c
> and is exactly the same so it seems that it should rather be defined in the
> common Cilk+ code (even though for such a small static inline fn it probably
> doesn't matter much).  While at it, fix some typos and simplify the code a bit.
>
> Bootstrapped/regtested on x86_64-linux, ok for trunk?
>
> 2015-10-20  Marek Polacek  <polacek@redhat.com>
>
> 	* array-notation-common.c (is_cilkplus_vector_p): Define.
> 	* c-common.h (is_cilkplus_vector_p): Declare.
>
> 	* c-parser.c (is_cilkplus_vector_p): Don't define here.
>
> 	* parser.c (is_cilkplus_vector_p): Don't define here.
OK.

In fact, I think refactoring a routine that is obviously identical 
between the C/C++ front-ends and dropping it into c-family/ ought to be 
considered pre-approved.

jeff
diff mbox

Patch

diff --git gcc/c-family/array-notation-common.c gcc/c-family/array-notation-common.c
index 85ded8d..6b55747 100644
--- gcc/c-family/array-notation-common.c
+++ gcc/c-family/array-notation-common.c
@@ -676,3 +676,12 @@  fix_sec_implicit_args (location_t loc, vec <tree, va_gc> *list,
       vec_safe_push (array_operand, (*list)[ii]);
   return array_operand;
 }
+
+/* Returns true if NAME is an IDENTIFIER_NODE with identifier "vector",
+   "__vector", or "__vector__".  */
+
+bool
+is_cilkplus_vector_p (tree name)
+{
+  return flag_cilkplus && is_attribute_p ("vector", name);
+}
diff --git gcc/c-family/c-common.h gcc/c-family/c-common.h
index cf44482..4b5cac8 100644
--- gcc/c-family/c-common.h
+++ gcc/c-family/c-common.h
@@ -1435,6 +1435,7 @@  extern void cilkplus_extract_an_triplets (vec<tree, va_gc> *, size_t, size_t,
 					  vec<vec<an_parts> > *);
 extern vec <tree, va_gc> *fix_sec_implicit_args
   (location_t, vec <tree, va_gc> *, vec<an_loop_parts>, size_t, tree);
+extern bool is_cilkplus_vector_p (tree);
 
 /* In cilk.c.  */
 extern tree insert_cilk_frame (tree);
diff --git gcc/c/c-parser.c gcc/c/c-parser.c
index 704ebc6..a5c1d84 100644
--- gcc/c/c-parser.c
+++ gcc/c/c-parser.c
@@ -3848,17 +3848,6 @@  c_parser_attribute_any_word (c_parser *parser)
   return attr_name;
 }
 
-/* Returns true of NAME is an IDENTIFIER_NODE with identiifer "vector,"
-   "__vector" or "__vector__."  */
-
-static inline bool
-is_cilkplus_vector_p (tree name)
-{ 
-  if (flag_cilkplus && is_attribute_p ("vector", name)) 
-    return true;
-  return false;
-}
-
 #define CILK_SIMD_FN_CLAUSE_MASK				  \
 	((OMP_CLAUSE_MASK_1 << PRAGMA_CILK_CLAUSE_VECTORLENGTH)	  \
 	 | (OMP_CLAUSE_MASK_1 << PRAGMA_CILK_CLAUSE_LINEAR)	  \
diff --git gcc/cp/parser.c gcc/cp/parser.c
index f07a5e4..cfe5468 100644
--- gcc/cp/parser.c
+++ gcc/cp/parser.c
@@ -23225,17 +23225,6 @@  cp_parser_gnu_attributes_opt (cp_parser* parser)
   return attributes;
 }
 
-/* Returns true of NAME is an IDENTIFIER_NODE with identiifer "vector,"
-   "__vector" or "__vector__."  */
-
-static inline bool
-is_cilkplus_vector_p (tree name)
-{ 
-  if (flag_cilkplus && is_attribute_p ("vector", name)) 
-    return true;
-  return false;
-}
-
 /* Parse a GNU attribute-list.
 
    attribute-list: