Re: Ping: RFA: Improve doloop_begin support

2012-10-16 Thread Zdenek Dvorak
Hi, 2012-09-26 Jorn Rennecke joern.renne...@arc.com * loop-doloop.c (doloop_modify): Pass doloop_end pattern to gen_doloop_begin. * loop-doloop.c (doloop_optimize): Pass flag to indicate if loop is entered at top to gen_doloop_end. *

Re: Ping: RFA: Improve doloop_begin support

2012-10-16 Thread Joern Rennecke
Quoting Zdenek Dvorak rakd...@iuuk.mff.cuni.cz: + entered_at_top = loop_preheader_edge (loop)-dest == desc-in_edge-dest; is equivalent to + entered_at_top = loop-header == desc-in_edge-dest; But, I don't think it will do what you want. Loops are canonicalized so that their latch blocks

Re: Ping: RFA: Improve doloop_begin support

2012-10-16 Thread Zdenek Dvorak
Hi, The loop appears to be entered at the top, yet both my original and your test fail. Looking what happens with your test in more detail, I find that loop-latch == desc-in_edge-dest is true, but forwarder_block_p (loop-latch) fails: 562 if (dest-loop_father-header ==

Re: Ping: RFA: Improve doloop_begin support

2012-10-16 Thread Joern Rennecke
Quoting Zdenek Dvorak rakd...@iuuk.mff.cuni.cz: no -- you should also test that latch contains no active insns. I.e., factorize out whatever forwarder_block_p does except for the test (dest-loop_father-header == dest) test, Like this? * basic-block.h (forwarder_block_p_1):

Re: Ping: RFA: Improve doloop_begin support

2012-10-16 Thread Zdenek Dvorak
Quoting Zdenek Dvorak rakd...@iuuk.mff.cuni.cz: no -- you should also test that latch contains no active insns. I.e., factorize out whatever forwarder_block_p does except for the test (dest-loop_father-header == dest) test, Like this? * basic-block.h (forwarder_block_p_1):

Re: Ping: RFA: Improve doloop_begin support

2012-10-16 Thread Richard Biener
On Tue, Oct 16, 2012 at 4:30 PM, Joern Rennecke joern.renne...@embecosm.com wrote: Quoting Zdenek Dvorak rakd...@iuuk.mff.cuni.cz: no -- you should also test that latch contains no active insns. I.e., factorize out whatever forwarder_block_p does except for the test

Ping: RFA: Improve doloop_begin support

2012-10-14 Thread Joern Rennecke
2012-09-26 Jorn Rennecke joern.renne...@arc.com * loop-doloop.c (doloop_modify): Pass doloop_end pattern to gen_doloop_begin. * loop-doloop.c (doloop_optimize): Pass flag to indicate if loop is entered at top to gen_doloop_end. * config/arm/thumb2.md