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? But even then, if I fix that, there still will be a problem that for given platform there doesn't seem to be a single reason to replace double const osv = 314314314; double osvf() { return osv; } with double const osv = 314314314; double const .LC0 = 314314314; double osvf() { return .LCO; } where .LCO is compiler-generated symbol. And the latter does have something to do with const folding, doesn't it? -- Sergei.