Andrew Pinski <[EMAIL PROTECTED]> writes: > On Jun 20, 2005, at 11:28 AM, Sergei Organov wrote: > > > Andrew Pinski <[EMAIL PROTECTED]> 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.
Well, provided that: void default_elf_select_rtx_section (enum machine_mode mode, rtx x, unsigned HOST_WIDE_INT align) { /* ??? Handle small data here somehow. */ ... } is still there at varasm.c:5330, I don't think it's a target bug :( -- Sergei.