Hi Joern,

On Sat, Oct 10, 2009 at 5:27 PM, Joern Rennecke
<joern.renne...@embecosm.com> wrote:
> Quoting Li Feng <nemoking...@gmail.com>:
>>
>> So my question is,
>>
>> 1. Is this necessary/correct if we want to escape the re-optimization for
>> the
>> first few passes before tree-parloop.c and continue the optimization
>> passes
>> after it for the function fun.loop_f0, there must be compile time  savings
>> if we
>> do this in my opinion.
>
> Note that the process of parallelization adds new code, and make
> pre-existing code makes code sub-optimal - e.g. it transforms the loop into
> a normal form
> where there is only one induction variable.
>
> So, even if you have a homogeneous sets of cores that you are targeting, it
> makes sense in principle to re-start optimizations from the beginning.
> If the re-running of each individual optimization pass makes sense will
> depend
> on what that pass exactly does and how that relates to parallelized loop and
> the target.
>
> However, parallelization is done to differetn target architectures, then
> re-running the optimization becomes more improtant, since different
> parameters
> and heuristics can come into play.

I agree that re-running will take difference parameters and heuristics come
into play.
But I'm not clear about re-running the first few passes will do
optimizations for
different target architectures for parallelization. shouldn't such
kind optimizations
be done at back-end ? I mean, since the first few passes before
autopar is in the
middle end.

>
> Moreover, the set of optimization passes that run before parallelization is
> subject to change as GCC evolves.
>

Yes. I agree.
> Therefore, the most effective way to address the issue of running redundant
> optimization passes in the context is probably to put it in the wider
> context
> of the work to allow external plugins to influence the pass sequence that is
> being applied, and to control this with machine learning.
>

Thanks,
Li

Reply via email to