Thanks, Mike.  No, I did not test on pre-sse2 hardware as I don't have
access to any (all 64-bit capable x86 platforms support sse2).  Since
we were forcing the compiler down that path with the -march=anyx86
option I don't expect any new problems.

On Fri, Dec 9, 2011 at 11:51 AM, Mike Murphy <mmur...@nvidia.com> wrote:
> 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.
> -----------------------------------------------------------------------------------

------------------------------------------------------------------------------
Learn Windows Azure Live!  Tuesday, Dec 13, 2011
Microsoft is holding a special Learn Windows Azure training event for 
developers. It will provide a great way to learn Windows Azure and what it 
provides. You can attend the event by watching it streamed LIVE online.  
Learn more at http://p.sf.net/sfu/ms-windowsazure
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to