Hi, David Thanks for your advice.
1. x8664 has the same issue . but in x8664 -O3 comes with -OPT:ro=1 while in IA64, -O3 comes with -OPT:ro=2, so we can not see the problem in x8664 2. I check that, in debug mode the library also build with -O3. Here is the new patch, remove the target specific code. Index: osprey/libu/Makefile.gbase =================================================================== --- osprey/libu/Makefile.gbase (revision 3495) +++ osprey/libu/Makefile.gbase (working copy) @@ -358,3 +358,10 @@ ./massage > numbers.h endif +ifeq ($(BUILD_COMPILER), OSP) +defgu2s.o defgu2s.pic.o defgu2s.pg.o : CFLAGS += -OPT:ro=1 +endif + +ifeq ($(BUILD_COMPILER), SELF) +defgu2s.o defgu2s.pic.o defgu2s.pg.o : CFLAGS += -OPT:ro=1 +endif On Fri, Mar 4, 2011 at 7:03 AM, David Coakley <dcoak...@gmail.com> wrote: > Hi Yongchong, > > You should be able to use target-specific variable assignment to avoid > rewriting the rules: > > defgu2s: CFLAGS += -OPT:ro=1 > > See: > > http://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html#Target_002dspecific > > Two things I am unclear on: > 1. The change is specific to IA64. Wouldn't this be a problem for > other targets, too? > 2. What if you are building the library in debug mode? Should the > flag change also be conditional on -O3 existing in CFLAGS? > > -David Coakley / AMD Open Source Compiler Engineering > > On Thu, Mar 3, 2011 at 12:34 AM, Wu Yongchong <wuyongch...@gmail.com> wrote: >> can a gatekeeper help review this patch >> >> This is a round off issue in IA64 system relative open64 library, the >> libffio.a. >> >> we use opencc -O3 to build libffio.a, the round off option in -O3 is >> -OPT:ro=2, it allow reassociation transforma\ >> tions. >> >> in line 531 of file osprey/libu/numconv/mpp/defgu2s.c >> >> expression >> pre_result = a*x + (a*y + x*b +(b*y >> + (table_high*exact_low_number + >> exact_high_number*table_low + >> table_low*exact_low_number))); >> >> the compiler will re-associated it to >> >> pre_result = (a*x + a*y + x*b + b*y) + >> (table_high*exact_low_number + >> exact_high_number*table_low + >> table_low*exact_low_number); >> >> so do the precision of pre_result, this difference may affect the >> result of 200.sixtrack and them get outp\ >> ut difference error. >> >> Here is my patch, I just add -OPT:ro=1 to make file defgu2s.c when >> building library libffio.a >> >> =================================================================== >> --- osprey/libu/Makefile.gbase (revision 3495) >> +++ osprey/libu/Makefile.gbase (working copy) >> @@ -358,3 +358,15 @@ >> ./massage > numbers.h >> endif >> >> +ifeq ($(BUILD_ARCH), IA64) >> + ifeq ($(BUILD_COMPILER), OSP) >> +defgu2s.o : defgu2s.c >> + $(cc) -c $(CPPFLAGS) $(CFLAGS) -OPT:ro=1 $< -o $@ >> + >> +defgu2s.pic.o : defgu2s.c >> + $(cc) $(pic_flag) -c $(CPPFLAGS) $(CFLAGS) -OPT:ro=1 $< -o $@ >> + >> +defgu2s.pg.o : defgu2s.c >> + $(cc) $(prof_flag) -c $(CPPFLAGS) $(CFLAGS) -OPT:ro=1 $< -o $@ >> + endif >> +endif >> \ No newline at end of file >> >> -- >> yongchong >> >> ------------------------------------------------------------------------------ >> Free Software Download: Index, Search & Analyze Logs and other IT data in >> Real-Time with Splunk. Collect, index and harness all the fast moving IT data >> generated by your applications, servers and devices whether physical, virtual >> or in the cloud. Deliver compliance at lower cost and gain new business >> insights. http://p.sf.net/sfu/splunk-dev2dev >> _______________________________________________ >> Open64-devel mailing list >> Open64-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/open64-devel >> > -- yongchong ------------------------------------------------------------------------------ What You Don't Know About Data Connectivity CAN Hurt You This paper provides an overview of data connectivity, details its effect on application quality, and explores various alternative solutions. http://p.sf.net/sfu/progress-d2d _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel