This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: How to replace -O1 with corresponding -f's?
Andrew Pinski <pinskia@physics.uc.edu> writes:
> On Jun 20, 2005, at 11:28 AM, Sergei Organov wrote:
>
> > Andrew Pinski <pinskia@physics.uc.edu> writes:
> >
> >> On Jun 20, 2005, at 10:54 AM, Sergei Organov wrote:
> >>
> >>> so SYMBOL_FLAG_SMALL (flags 0x6 vs 0x2) is somehow being missed when -O1
>
> >>
> >>> is turned on. Seems to be something at tree-to-RTX conversion time.
> >>> Constant folding?
> >>
> >> No, it would mean that the target says that this is not a small data.
> >> Also try it with the following code and you will see there is no
> >> difference:
>
> >>
> >> double osvf() { return 314314314; }
> >
> > There is no difference in the sense that here both -O0 and -O1 behave
> > roughly the same. So the problem is with detecting "smallness" for true
> > constants by the target, right?
>
> I think the bug is in rs6000_elf_in_small_data_p but since I have not
> debuged it yet I don't know for sure.
>
> Could you file a bug? This is a target bug.
Yeah, and I've reported it rather long ago against gcc-3.3 (PR 9571).
That time there were 3 problems reported in the PR of which only the
first one seems to be fixed (or are the rest just re-appeared in 4.0?).
I think PR 9571 is in fact regression with respect to 2.95.x despite the
[wrong] comments:
------- Additional Comment #5 From Franz Sirl 2003-06-17 15:31 [reply] -------
r0 is used as a pointer to sdata2, this is a bug, it should be r2. And
since only r2 is initialized in the ecrt*.o files, how can this work?
Besides that, even if you initialize r0 manually, it is practically
clobbered in about every function.
------- Additional Comment #6 From Mark Mitchell 2003-07-20 00:52 [reply] -------
Based on Franz's comments, this bug is not really a regression at all.
I've therefore removed the regression tags.
that I've tried to explain in my comment #7.
I don't think I need to file yet another PR in this situation, right?
--
Sergei.