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 <[email protected]>: > 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 <[email protected]>: >> 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 <[email protected]> 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 <[email protected]>: >>>> 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 >>>> [email protected] >>>> https://lists.sourceforge.net/lists/listinfo/open64-devel >>> >>> >>> >>> -- >>> Regards, >>> Lai Jian-Xin > > > > -- > Regards, > Lai Jian-Xin -- Regards, Lai Jian-Xin ------------------------------------------------------------------------------ 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 [email protected] https://lists.sourceforge.net/lists/listinfo/open64-devel
