This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Stabilization on the ARM: an unrolling bug



  In message <199901071557.PAA06669@sun52.NIS.cambridge>you write:
  > 
  > I've tried bootstrapping the egcs-cvs version as of Monday on an 
  > arm-netbsd machine with the following BOOT_CFLAGS.  All the bootstraps 
  > were successful except the one with -funroll-loops which generates bad 
  > code with the stage2 compiler.
That's pretty consistent with what I'm seeing.  -funroll-loops is causing
problems on a variety of platforms (mips, m68k, ppc).  It's not clear yet if
they're all symptoms of the same problem or not.

Michael Hayes believes there's a problem in the reg splitting code, and I
agree.  Neither of us is up to speed on that code yet.

[ ... ]

  > I've looked at some of the miscompiles and tracked it back to a 
  > mis-compilation of the for loop at the end of mark_modified_reg in jump.c. 
  >  The test case below produces bad code if compiled with an arm-aout 
  > configuration with -O2 -funroll-loops.  The bug was still present when I 
  > updated my source about half an hour ago.
  > 
  > If anyone with some experience of the unrolling code would like to have a 
  > look at it, I'd be very grateful.  The compiled code fails to execute the 
  > body of  the loop when regno is set to 24 (it should run it once).
Hmmm, looks like a different problem that what I found on the mips.  Thanks
for the testcase.  I'll take a look at it.

jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]