This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] Avoid jump threading from producing irreducible regions
- From: law at redhat dot com
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: gcc-patches at gcc dot gnu dot org, rth at redhat dot com
- Date: Fri, 21 Nov 2003 14:46:03 -0700
- Subject: Re: [tree-ssa] Avoid jump threading from producing irreducible regions
- Reply-to: law at redhat dot com
In message <20031121213637.GC737@atrey.karlin.mff.cuni.cz>, Jan Hubicka writes:
>> In message <20031121152630.GV12030@kam.mff.cuni.cz>, Jan Hubicka writes:
>> >Hi,
>> >as discussed earlier, I believe we must avoid producing irreducible
>> >loops in early stages of compilation as disabling loop optimizations for
>> >no good reason can be disasterous.
>> >regtested/bootstrapped i386
>> >OK?
>> >
>> >2003-11-21 Jan Hubicka <jh@suse.cz>
>> > * tree-ssa.dom.c (tree_ssa_domionator_thread_jumps): Mark back edges.
>> > (thread_across_edge): Do not thread across loop headers.
>> Note that the threader is run in two modes.
>>
>> The first (and the one you changed) is allowed to thread through blocks
>> which begin with PHI nodes.
>>
>> The second runs as part of the dominator optimizer, but is not allowed to
>> thread through a block with PHI nodes. You didn't change the behavior of
>> this instance.
>>
>> [ Note I fully expect that with Andrew's changes that we'll have a single
>> mode for the dominator based jump threader in the future. ]
>>
>> Anyway, I'm guessing that you don't have to worry about the second mode
>> (no threading through PHIs) since loops are going to have a PHI at the
>> the block which starts the natural loop. Right?
>I guess so. Except for loops with no loop carried variables that are
>out of interest anyway.
>OK then? :)
I'm doing some additional tests on it. There's little chance you'll have
an OK from me until Monday given the length of the test cycle on that
box.
jeff