This is the mail archive of the 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]

Re: [RFC] [autovect patch] Implement vectorization hints

Devang Patel <> writes:

> This patch implements two #pragmas that developers can use to give
> hints to auto vectorization pass. These pragmas are inserted in the
> source file before the loop. They are effective only on the very next
> loop in the source file.
> "#pragma novector" instructs compiler to not vectorize the
> loop. Programmer may decide to do so for various reasons.
> "#pragma ivdep" instructs compiler to ignore possible data dependence
> when data dependence analyzer is not able determine it. This is useful
> in a situation where compiler does not have enough information to
> prove data independence, but developer knows about it.

I have not read your code in any detail, and do not intend to, but
please permit me to point out that GCC-specific #pragmas should begin
"#pragma GCC" (you do this with the namespace argument to
c_register_pragma - note the line immediately above the two you
added).  If these #pragmas are compatible with some other compiler,
please document which compiler that is.

Also, if I was just going along reading code and I saw 
#pragma [GCC] ivdep, I would have no idea what it did.  Could you
please use a more descriptive name, e.g. 
#pragma GCC ignore_data_dependencies?  (Ignore this critique if it's
"ivdep" for compatibility with some other compiler.)

Finally, I notice that your test cases are inconsistent with your code.


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