This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def
- From: Tom de Vries <Tom_deVries at mentor dot com>
- To: Richard Biener <rguenther at suse dot de>
- Cc: "gcc-patches at gnu dot org" <gcc-patches at gnu dot org>, Jakub Jelinek <jakub at redhat dot com>
- Date: Fri, 20 Nov 2015 17:33:54 +0100
- Subject: Re: [PATCH, 10/16] Add pass_oacc_kernels pass group in passes.def
- Authentication-results: sourceware.org; auth=none
- References: <5640BD31 dot 2060602 at mentor dot com> <5640FB07 dot 6010008 at mentor dot com> <alpine dot LSU dot 2 dot 11 dot 1511111159040 dot 4884 at t29 dot fhfr dot qr> <5649C41A dot 40403 at mentor dot com> <alpine dot LSU dot 2 dot 11 dot 1511161341420 dot 4884 at t29 dot fhfr dot qr> <564DA4CA dot 3020506 at mentor dot com> <alpine dot LSU dot 2 dot 11 dot 1511201128590 dot 4884 at t29 dot fhfr dot qr> <564F1F85 dot 1000108 at mentor dot com> <alpine dot LSU dot 2 dot 11 dot 1511201428100 dot 4884 at t29 dot fhfr dot qr>
On 20/11/15 14:29, Richard Biener wrote:
I agree it's somewhat of an odd behavior but all passes should
either be placed in a sub-pipeline with an outer
loop_optimizer_init()/finalize () call or call both themselves.
Hmm, but adding loop_optimizer_finalize at the end of pass_lim breaks
the loop pipeline.
We could use the style used in pass_slp_vectorize::execute:
...
pass_slp_vectorize::execute (function *fun)
{
basic_block bb;
bool in_loop_pipeline = scev_initialized_p ();
if (!in_loop_pipeline)
{
loop_optimizer_init (LOOPS_NORMAL);
scev_initialize ();
}
...
if (!in_loop_pipeline)
{
scev_finalize ();
loop_optimizer_finalize ();
}
...
Although that doesn't strike me as particularly clean.
Thanks,
- Tom