This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[cilkplus] cleanup C++ pragma simd implementation


The attached patch cleans up the C++ pragma simd implementation to share more things with the C front-end, particularly the type checking. For instance, I got rid of all the specialized parsing routines to just use generic cp_parser_*expression* and then perform the actual typechecking in the C shared routines.

I also reworded some of the tests to match the C FE so we can share the tests there too.

There are also some fixes scattered throughout, all in an effort to pass all the c-c++-common Cilk Plus pragma simd tests. Almost there... :).

One bug I found that I don't know how to handle is:

@@ -30315,6 +30319,9 @@ cp_parser_simd_for_init_statement (cp_parser *parser, tree *init,
 	  && CLASS_TYPE_P (TREE_TYPE (decl)))
 	{
 	  tree rhs, new_expr;
+	  // ?? FIXME: I don't see any definition for *init in this
+	  // code path. ??
+	  gcc_unreachable ();
 	  cp_parser_parse_definitely (parser);
 	  cp_parser_require (parser, CPP_EQ, RT_EQ);

AFAICT, *init is not initialized in this code path and the caller uses it. Balaji, what's the intent here?

Committing to the aldyh/cilk-in-gomp branch.

Attachment: curr
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]