This is the mail archive of the
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:33:18 -0700
- Subject: Re: [tree-ssa] Avoid jump threading from producing irreducible regions
- Reply-to: law at redhat dot com
In message <20031121152630.GV12030@kam.mff.cuni.cz>, Jan Hubicka writes:
>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.
>2003-11-21 Jan Hubicka <firstname.lastname@example.org>
> * 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
[ 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?