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