Re: Patch: Add #pragma ivdep support to the ME and C FE (was: Re: RFC patch for #pragma ivdep)

2013-10-08 Thread Jakub Jelinek
On Tue, Oct 08, 2013 at 10:51:29PM +0200, Tobias Burnus wrote: > + return false; > + } > + c_parser_for_statement (parser, true); > + return false; > + > case PRAGMA_GCC_PCH_PREPROCESS: >c_parser_error (parser, "%<#pragma GCC pch_preprocess%> must be > first"); >

Patch: Add #pragma ivdep support to the ME and C FE (was: Re: RFC patch for #pragma ivdep)

2013-10-08 Thread Tobias Burnus
Jakub Jelinek wrote: On Tue, Oct 08, 2013 at 08:51:50AM +0200, Tobias Burnus wrote: + if (loop->latch && loop->latch->next_bb != EXIT_BLOCK_PTR + && bb_seq_addr (loop->latch->next_bb)) Why this bb_seq_addr guard? Without, I get a segfault in the stage 1 (prev-gcc/xg++) compiler

Re: RFC patch for #pragma ivdep

2013-10-08 Thread Jakub Jelinek
On Tue, Oct 08, 2013 at 08:51:50AM +0200, Tobias Burnus wrote: > --- a/gcc/cfgloop.c > +++ b/gcc/cfgloop.c > @@ -507,6 +507,39 @@ flow_loops_find (struct loops *loops) > loop->latch = latch; > } > } > + /* Search for ANNOTATE call with annot_expr_ivdep_kind; if foun

RFC patch for #pragma ivdep

2013-10-07 Thread Tobias Burnus
Attached is an early version (C only) for #pragma ivdep, which aids vectorization by setting (for the following for-loop) loop->safelen to INT_MAX. [In the final version, I will also add parsing support for C++ and use it for Fortran's "do concurrent".] As suggested by Richard and Jakub (than