This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFC] [autovect patch] Implement vectorization hints
On Mar 2, 2005, at 11:38 AM, Zdenek Dvorak wrote:
Hello,
Just FYI, xlc associates the info with the loop in a loop table (the
frontend creates the initial loop table), and keeps the loop table
up
to
date forever onwards :)
But GCC does not keep up to date loop tables ;).
This won't change if everyone just keeps on doing other things instead
of doing the work necessary to start this.
I will start working on that; as a first step, I will try to get
loop-aware cfg cleanup merged, rest of the tree loop optimization
passes
should not be too problematic hopefully.
With your patch to make cfg cleanup loop aware,
http://gcc.gnu.org/ml/gcc-patches/2005-03/msg00244.html
I tried to initialize loop structure as early as possible, so I put it
immediately after build_ssa. Jump threading immediately ran into
problems
when loop header block is threaded. For example,
+ ----> [3] ---> Exit
|
Entry ---> [0] ---> [2] <---+
| |
v |
[1] ----+
Here [2] is loop header and [1] is loop latch.
After jump threading
Entry ---> [0] ---> [4] ---> [1] <---+
| |
v |
[2] ----+
|
+ ----> [3] ---> Exit
This means thread_blocks() need to update loop structure in this
case. But resulting cfg does not match loop criteria. latch does
not have exactly one successor.
Any thoughts how to handle this?
Thanks,
-
Devang