The patch looks okay to me.  But have you tested this on various platforms, 
e.g. both a sse2 platform and an earlier one? 

-----Original Message-----
From: David Coakley [mailto:dcoak...@gmail.com] 
Sent: Thursday, December 08, 2011 11:48 PM
To: Jian-Xin Lai
Cc: open64-devel; Mike Murphy
Subject: Re: [Open64-devel] x86 build change to use default cpu options [BUILD]

It sounds like you agree with the build change.  We can take a look at
bug 935 separately.  I don't think we pass any "-march" options to the
GCC FE right now.

Mike -- or any of the global gatekeepers -- have you had a chance to
review the patch at the beginning of the thread?

On Wed, Dec 7, 2011 at 9:07 PM, Jian-Xin Lai <laij...@gmail.com> wrote:
> It looks like when "-march=anyx86" is present, the similar option
> "-march=i386" needs to pass to GCC FE to detect the error?
>
> 2011/12/8 Jian-Xin Lai <laij...@gmail.com>:
>> I read the case attached in the #935. Since this problem happens in
>> the inline asm, it makes sense to remove -march=anyx86 from the
>> Makefile.
>>
>> 2011/12/8 David Coakley <dcoak...@gmail.com>:
>>> Hi Jian-Xin,
>>>
>>> You are right, there is a bug in that we should not emit bad assembly.
>>>  However, I think it is correct that this code does not compile with
>>> the options we are using and the bug doesn't change my proposed build
>>> change.
>>>
>>> I filed bug 935 ("impossible constraint error not detected") with a
>>> test case that might make things more clear:
>>>
>>> https://bugs.open64.net/show_bug.cgi?id=935
>>>
>>> Christopher, I believe SSE2 support has been cleaned up in the last
>>> few years and anything missing should be considered a bug.
>>>
>>> -David Coakley / AMD Open Source Compiler Engineering
>>>
>>> On Sat, Dec 3, 2011 at 10:49 PM, Jian-Xin Lai <laij...@gmail.com> wrote:
>>>> I haven't tried to build the compiler on Fedora 16. But it looks like
>>>> a bug in CG when generate the x87 instructions. Why not fix the error?
>>>>
>>>> 2011/12/4 David Coakley <dcoak...@gmail.com>:
>>>>> Hi all,
>>>>>
>>>>> I recently tried building on Fedora 16 64-bit and ran into the same
>>>>> error others have seen:
>>>>>
>>>>> /tmp/ccspin#.BqR0xk.s: Assembler messages:
>>>>> /tmp/ccspin#.BqR0xk.s:1662: Error: bad register name `%st2'
>>>>> /tmp/ccspin#.BqR0xk.s:1732: Error: operand type mismatch for `divss'
>>>>> make[3]: *** [ieee_module_support.o] Error 1
>>>>>
>>>>> The conflict occurs because the system include files assume SSE2
>>>>> support while the Open64 build is set up to target the most generic
>>>>> cpu possible -- for 32-bit code, it's i386 which does not support
>>>>> SSE2.
>>>>>
>>>>> My proposed fix follows -- we remove the restrictive options and just
>>>>> let the compiler use the default options according to the host system.
>>>>>  With this change I'm able to build on Fedora 16 since we
>>>>> automatically tune for a cpu that supports SSE2 for any 64-bit host.
>>>>> The only negative effect I can think of is that those who build binary
>>>>> releases of Open64 will need to be careful about selecting a build
>>>>> machine that matches the minimum target cpu requirements.
>>>>>
>>>>> -David Coakley / AMD Open Source Compiler Engineering
>>>>>
>>>>>
>>>>> Index: osprey/linux/make/gcommondefs
>>>>> ===================================================================
>>>>> --- osprey/linux/make/gcommondefs       (revision 3843)
>>>>> +++ osprey/linux/make/gcommondefs       (working copy)
>>>>> @@ -166,16 +166,6 @@
>>>>>   CCNAME = pathcc
>>>>>   C++NAME = pathCC
>>>>>   F90 = pathf90
>>>>> -  ifeq ($(BUILD_TARGET), X8664)
>>>>> -    CCNAME  += -march=anyx86
>>>>> -    C++NAME += -march=anyx86
>>>>> -    F90 += -march=anyx86
>>>>> -  endif
>>>>> -  ifeq ($(BUILD_TARGET), IA32)
>>>>> -    CCNAME  += -march=anyx86
>>>>> -    C++NAME += -march=anyx86
>>>>> -    F90 += -march=anyx86
>>>>> -  endif
>>>>>   F77 = $(F90)
>>>>>   AR      = ar
>>>>>  endif
>>>>>
>>>>> @@ -186,23 +176,6 @@
>>>>>   C++NAME = openCC
>>>>>   F90 = openf90
>>>>>   F90_RTLIBS = -Wl,-Bstatic -lfortran -Wl,-Bdynamic
>>>>> -
>>>>> -  ifeq ($(BUILD_TARGET), X8664)
>>>>> -    CCNAME  += -march=anyx86
>>>>> -    C++NAME += -march=anyx86
>>>>> -    F90 += -march=anyx86
>>>>> -  endif
>>>>> -  ifeq ($(BUILD_TARGET), IA32)
>>>>> -    CCNAME  += -march=anyx86
>>>>> -    C++NAME += -march=anyx86
>>>>> -    F90 += -march=anyx86
>>>>> -  endif
>>>>> -  ifeq ($(BUILD_TARGET), IA64)
>>>>> -    # only 64bit libraries set the BUILD_ARCH to X8664
>>>>> -    CCNAME  +=
>>>>> -    C++NAME +=
>>>>> -    F90 +=
>>>>> -  endif
>>>>>   F77 = $(F90)
>>>>>   AR      = ar
>>>>>  endif
>>>>> @@ -218,32 +191,15 @@
>>>>>   CCNAME += -run-build=$(TOP_BUILDDIR) -L$(BUILD_AREA)/libopen64rt
>>>>> -L$(BUILD_AREA)/libacml_mv
>>>>>   C++NAME += -run-build=$(TOP_BUILDDIR)
>>>>>   F90 += -run-build=$(TOP_BUILDDIR)
>>>>> -
>>>>> -  ifeq ($(BUILD_TARGET), X8664)
>>>>> -    CCNAME  += -march=anyx86
>>>>> -    C++NAME += -march=anyx86
>>>>> -    F90 += -march=anyx86
>>>>> -  endif
>>>>> -  ifeq ($(BUILD_TARGET), IA32)
>>>>> -    CCNAME  += -march=anyx86
>>>>> -    C++NAME += -march=anyx86
>>>>> -    F90 += -march=anyx86
>>>>> -  endif
>>>>> -  ifeq ($(BUILD_TARGET), IA64)
>>>>> -    # only 64bit libraries set the BUILD_ARCH to X8664
>>>>> -    CCNAME  +=
>>>>> -    C++NAME +=
>>>>> -    F90 +=
>>>>> -  endif
>>>>>   F77 = $(F90)
>>>>>   AR      = ar
>>>>>  endif
>>>>>
>>>>>  ifeq ($(BUILD_ARCH), IA32)
>>>>>  # only 32bit libraries set the BUILD_TARGET to IA32
>>>>> -  CCNAME  += -m32 -mno-sse2
>>>>> -  C++NAME += -m32 -mno-sse2
>>>>> -  F90 += -m32 -mno-sse2
>>>>> +  CCNAME  += -m32
>>>>> +  C++NAME += -m32
>>>>> +  F90 += -m32
>>>>>  endif
>>>>>
>>>>>  ifeq ($(BUILD_ARCH), X8664)
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> All the data continuously generated in your IT infrastructure
>>>>> contains a definitive record of customers, application performance,
>>>>> security threats, fraudulent activity, and more. Splunk takes this
>>>>> data and makes sense of it. IT sense. And common sense.
>>>>> http://p.sf.net/sfu/splunk-novd2d
>>>>> _______________________________________________
>>>>> Open64-devel mailing list
>>>>> Open64-devel@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/open64-devel
>>>>
>>>>
>>>>
>>>> --
>>>> Regards,
>>>> Lai Jian-Xin
>>
>>
>>
>> --
>> Regards,
>> Lai Jian-Xin
>
>
>
> --
> Regards,
> Lai Jian-Xin
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may 
contain
confidential information.  Any unauthorized review, use, disclosure or 
distribution
is prohibited.  If you are not the intended recipient, please contact the 
sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------

------------------------------------------------------------------------------
Cloud Services Checklist: Pricing and Packaging Optimization
This white paper is intended to serve as a reference, checklist and point of 
discussion for anyone considering optimizing the pricing and packaging model 
of a cloud services business. Read Now!
http://www.accelacomm.com/jaw/sfnl/114/51491232/
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to