I was looking into other issues yesterday so I was sidetracked. > -----Original Message----- > From: Sun Chan [mailto:sun.c...@gmail.com] > Sent: Saturday, August 04, 2012 3:24 AM > To: Gilmore, Doug > Cc: "C. Bergström"; open64-devel > Subject: Re: [Open64-devel] Review request: fixing issues when building > the compiler as 64-bit binaries > > I haven't had any real code segment to explain why the change to float > to double is needed for the claim, i.e. enable 64bit porting, and > better precision. I have to do this in the abstract. > I don't see any relationship between float and double to 64 bit > porting. As for precision, the example given is "probability". For > compiler optimization, it is true that probability is widely used to > help heuristics, but I have yet to see an example where one needs > beyond 2 decimal point precision. If actually had 2 decimal point precision float point arithmetic, then you would need to be extremely careful to insure that there were no reordering of FP operations. Otherwise there would be enough noise in the calculations to produce different FP comparison results.
I am still collecting data on this. Sorry for the delay. Doug > I'm gonna have to say, this change from float to double is not useful > other than making data size larger, which is in general not a good > thing. > Sun > > On Fri, Aug 3, 2012 at 7:38 AM, Sun Chan <sun.c...@gmail.com> wrote: > > for the float/double issue, can you include a code snippet that will > > affect by this change (you have mentioned probability, for example) > > Thx! > > Sun > > > > On Fri, Aug 3, 2012 at 7:19 AM, Gilmore, Doug <doug.gilm...@amd.com> > wrote: > >> Sorry for the delay in my reply. > >>> -----Original Message----- > >>> From: "C. Bergström" [mailto:cbergst...@pathscale.com] > >>> Sent: Saturday, July 28, 2012 11:09 PM > >>> To: Gilmore, Doug > >>> Cc: open64-devel > >>> Subject: Re: [Open64-devel] Review request: fixing issues when > building > >>> the compiler as 64-bit binaries > >>> > >>> > >>> 0007 - I wouldn't agree to changing float to double. Determining > the > >>> actual correct size uint64_t or something is probably the most > future > >>> proof and portable. > >> A floating point format is needed since calculations involving > >> probabilities and frequencies are being performed. > >> > >> Using single precision exposes too many situations where ties can > >> occur or a 1LP change in an FP calculation can the effect of a > >> comparison result. Using double precisions drastically reduces the > >> chance that these situations will arise. > >>> Did you check if this also impacts compiler > >>> performance? > >> >From the timing runs I didn't see any. > >>> > >>> nit: You've also slipped in a small configuration change > >>> > >>> + CCNAME += -mfpmath=sse -msse2 > >>> + C++NAME += -mfpmath=sse -msse2 > >>> + F90 += -mfpmath=sse -msse2 > >>> --------- > >>> Speaking from experience - I'd need to know more details of why you > >>> felt this change is even necessary. > >>> -------------- > >> I explained this in the commit log message: > >> > >> When compiling with GCC at 32, add -mfpmath=sse -msse2, which > >> prevents i387 FP instructions from being generated, otherwise the > >> values for probabilities and frequencies can easily diverge between > >> the 32 and 64 bit builds of the compiler. > >> > >> I'll move this comment to gcommondefs and make a brief note > referring > >> to the comment in the commit log message. > >>> > >>> 0006 - The FFE clean-up is 494KB! I've copied below log of all the > >>> issues it fixes. It seems clear that for proper review they should > be > >>> individually pulled out. > >>> ------------- > >>> Adapted code conditionally compiled under _TARGET32, (now > >>> referred to _TARGET32_OR_64) and code compiled under _HOST32 > >>> now referred to_HOST32_OR_64) for use when building the > >>> compiler in 64 bit mode. > >>> > >>> Note that _TARGET32 was a misnomer, since the 32 bit FFE > >>> build could target both 32 and 64 bit targets. > >>> > >>> The end result is the 64 bit build of the FFE produces > >>> the same WHIRL and nearly the same debugging/trace output as > >>> the 32 bit build. > >>> > >>> The key (and quite obtrusive) change: > >>> > >>> Instead of just declaring variables with type long, > >>> use type names to describe variables for various storage: > >>> > >>> ... > >> The key to tracking down issues that causes differences in WHIRL > >> generated by the 32/64 bit builds of the FFE was to make the debug > >> output of the FFE comparable. > >> > >> The typing cleanup change along with the tracing changes in i_cvrt.c > >> (add calls to cwh_stab_dbg_id()/adding the -ustb_id option flag.) > are > >> the crucial changes. Otherwise there is just too much noise in the > >> debug file output in the 32/64 bit builds of the FFE. > >> > >> The cwh_stab_dbg_id() is too intertwined with the typing change to > break > >> out separately separately. > >> > >> The change of adding use INIT_OPND_TYPE to initialize variables of > >> type opnd_type has 604 occurances. Given the change innocuous, I > hope > >> that reviewers won't require the change to be pulled as a separate > >> commit. > >> > >> The other issues are localized changes that can be broken out. > >> > >> I can attended to that, though there will still be one quite large > >> change that will need to be reviewed and committed. > >> > >> Doug > >> > >> > >> -------------------------------------------------------------------- > ---------- > >> Live Security Virtual Conference > >> Exclusive live event will cover all the ways today's security and > >> threat landscape has changed and how IT managers can respond. > Discussions > >> will include endpoint security, mobile security and the latest in > malware > >> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > >> _______________________________________________ > >> Open64-devel mailing list > >> Open64-devel@lists.sourceforge.net > >> https://lists.sourceforge.net/lists/listinfo/open64-devel ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel