Blackfin: Doloop optimization fix

Bernd Schmidt bernds_cb1@t-online.de
Mon Nov 3 14:32:00 GMT 2008


This is a problem introduced by some earlier changes I made to generate
more hardware loops on the Blackfin.  In one case, with the following
structure:

  ...
  jump point_inside_loop;
head:
  do_stuff;
point_inside_loop:
  do_some_more_stuff;
  if condition jump head;

we would lose the initial jump into the loop; it was replaced by the
LSETUP instruction.

This patch fixes it.  If do_some_more_stuff is simple enough, we emit it
after the LSETUP, otherwise we use a jump to the point inside the loop.

Committed as 141548.


Bernd
-- 
This footer brought to you by insane German lawmakers.
Analog Devices GmbH      Wilhelm-Wagenfeld-Str. 6      80807 Muenchen
Sitz der Gesellschaft Muenchen, Registergericht Muenchen HRB 40368
Geschaeftsfuehrer Thomas Wessel, William A. Martin, Margaret Seif
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: loopfix.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20081103/3e1ac611/attachment.ksh>


More information about the Gcc-patches mailing list