Ok, the updated changes look good, although you might want to add a
comment in the Makefile explaining that the code in this file is
sensitive to reassociation.  Please go ahead and commit.  Thanks,

-David Coakley / AMD Open Source Compiler Engineering

On Fri, Mar 4, 2011 at 12:36 AM, Wu Yongchong <wuyongch...@gmail.com> wrote:
> 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

Reply via email to