[Bug rtl-optimization/323] optimized code gives strange floating point results
--- Comment #123 from jsm28 at gcc dot gnu dot org 2008-11-04 13:25 --- Subject: Bug 323 Author: jsm28 Date: Tue Nov 4 13:24:30 2008 New Revision: 141578 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141578 Log: PR rtl-optimization/323 * c-common.c (convert_and_check, c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR. * c-common.def (EXCESS_PRECISION_EXPR): New. * c-cppbuiltin.c (builtin_define_float_constants): Define constants with enough digits for long double. * c-lex.c (interpret_float): Interpret constant with excess precision where appropriate. * c-opts.c (c_common_post_options): Set flag_excess_precision_cmdline. * c-parser.c (c_parser_conditional_expression): Handle excess precision in condition. * c-typeck.c (c_fully_fold): Handle EXCESS_PRECISION_EXPR. (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR. (convert_arguments): Handle arguments with excess precision. (build_unary_op): Move excess precision outside operation. (build_conditional_expr): Likewise. (build_compound_expr): Likewise. (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR. (build_modify_expr): Handle excess precision in RHS. (convert_for_assignment): Handle excess precision in converted value. (digest_init, output_init_element, process_init_element): Handle excess precision in initializer. (c_finish_return): Handle excess precision in return value. (build_binary_op): Handle excess precision in operands and add excess precision as needed for operation. * common.opt (-fexcess-precision=): New option. * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New. * config/i386/i386.md (float2): For standard excess precision, output explicit conversion to and truncation from XFmode. (*float2_1, *float2_i387_with_temp, *float2_i387, two unnamed define_splits, floatdi2_i387_with_xmm, two unnamed define_splits, *floatunssi2_1, two unnamed define_splits, floatunssi2, add3, sub3, mul3, divdf3, divsf3, *fop__comm_i387, *fop__1_i387, *fop__2_i387, *fop__3_i387, *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed define_splits, sqrt2): Disable where appropriate for standard excess precision. * convert.c (convert_to_real): Do not shorten arithmetic to type for which excess precision would be used. * doc/invoke.texi (-fexcess-precision=): Document option. (-mfpmath=): Correct index entry. * flags.h (enum excess_precision, flag_excess_precision_cmdline, flag_excess_precision): New. * langhooks.c (lhd_post_options): Set flag_excess_precision_cmdline. * opts.c (common_handle_option): Handle -fexcess-precision=. * toplev.c (flag_excess_precision_cmdline, flag_excess_precision, init_excess_precision): New. (lang_dependent_init_target): Call init_excess_precision. * tree.c (excess_precision_type): New. * tree.h (excess_precision_type): Declare. ada: * gcc-interface/misc.c (gnat_post_options): Set flag_excess_precision_cmdline. fortran: * options.c (gfc_post_options): Set flag_excess_precision_cmdline. java: * lang.c (java_post_options): Set flag_excess_precision_cmdline. testsuite: * gcc.target/i386/excess-precision-1.c, gcc.target/i386/excess-precision-2.c, gcc.target/i386/excess-precision-3.c, gcc.target/i386/excess-precision-4.c, gcc.target/i386/excess-precision-5.c, gcc.target/i386/excess-precision-6.c: New tests. Added: branches/c-4_5-branch/gcc/ada/ChangeLog.c45 branches/c-4_5-branch/gcc/fortran/ChangeLog.c45 branches/c-4_5-branch/gcc/java/ChangeLog.c45 branches/c-4_5-branch/gcc/testsuite/gcc.target/i386/excess-precision-1.c branches/c-4_5-branch/gcc/testsuite/gcc.target/i386/excess-precision-2.c branches/c-4_5-branch/gcc/testsuite/gcc.target/i386/excess-precision-3.c branches/c-4_5-branch/gcc/testsuite/gcc.target/i386/excess-precision-4.c branches/c-4_5-branch/gcc/testsuite/gcc.target/i386/excess-precision-5.c branches/c-4_5-branch/gcc/testsuite/gcc.target/i386/excess-precision-6.c Modified: branches/c-4_5-branch/gcc/ChangeLog.c45 branches/c-4_5-branch/gcc/ada/gcc-interface/misc.c branches/c-4_5-branch/gcc/c-common.c branches/c-4_5-branch/gcc/c-common.def branches/c-4_5-branch/gcc/c-cppbuiltin.c branches/c-4_5-branch/gcc/c-lex.c branches/c-4_5-branch/gcc/c-opts.c branches/c-4_5-branch/gcc/c-parser.c branches/c-4_5-branch/gcc/c-typeck.c branches/c-4_5-branch/gcc/common.opt branches/c-4_5-branch/gcc/config/i386/i386.h branches/c-4_5-branch/gcc/config/i386/i386.md branche
Bug#504487: gcc-4.3: build cross toolchain for powerpc fails
On Tue, Nov 04, 2008 at 02:09:08PM +0100, Thiemo Seufer wrote: > Uwe Kleine-König wrote: > > Package: gcc-4.3 > > Version: 4.3.2-1 > > Severity: wishlist > > > > Hello, > > > > I tried building a cross toolchain for powerpc following the steps on > > http://www.emdebian.org/tools/crossdev.html (i.e. installing > > binutils-$arch-linux-gnu and libc6-dev-$arch-cross, then export > > GCC_TARGET=arch, debian/rules control, dpkg-buildpackage -b -rfakeroot). > > I see this problem on powerpc, mips and mipsel, but not on i386. > I haven't tested sparc and s390. A workaround (when 64-bit isn't > needed) is to disable multilibs. This will break _any_ biarch compiling which matches the setup as in Debian. You need to find a way without touching the patches which are applied. Bastian -- You're dead, Jim. -- McCoy, "The Tholian Web", stardate unknown -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#504487: gcc-4.3: build cross toolchain for powerpc fails
On Tue, Nov 04, 2008 at 01:06:43PM +0100, Uwe Kleine-König wrote: > I tried building a cross toolchain for powerpc following the steps on > http://www.emdebian.org/tools/crossdev.html (i.e. installing > binutils-$arch-linux-gnu and libc6-dev-$arch-cross, then export > GCC_TARGET=arch, debian/rules control, dpkg-buildpackage -b -rfakeroot). You miss the 64bit libc. The other variant is to build without shared libgcc. Bastian -- Kirk to Enterprise -- beam down yeoman Rand and a six-pack. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#504487: gcc-4.3: build cross toolchain for powerpc fails
On Tue, Nov 04, 2008 at 01:06:43PM +0100, Uwe Kleine-König wrote: > I tried building a cross toolchain for powerpc following the steps on > http://www.emdebian.org/tools/crossdev.html (i.e. installing > binutils-$arch-linux-gnu and libc6-dev-$arch-cross, then export > GCC_TARGET=arch, debian/rules control, dpkg-buildpackage -b -rfakeroot). Does defining DEB_CROSS_NO_BIARCH help? Bastian -- Those who hate and fight must stop themselves -- otherwise it is not stopped. -- Spock, "Day of the Dove", stardate unknown -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
[Bug middle-end/37914] [4.4 Regression] internal compiler error: vector VEC(basic_block,base) index domain error
--- Comment #2 from jakub at gcc dot gnu dot org 2008-11-04 17:46 --- Bootstrapped it again. Reopen if you still have problems with current snapshots. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Status|WAITING |RESOLVED Resolution||WORKSFORME http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37914 --- You are receiving this mail because: --- You are on the CC list for the bug, or are watching someone who is. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#504487: gcc-4.3: build cross toolchain for powerpc fails
Uwe Kleine-König wrote: > Package: gcc-4.3 > Version: 4.3.2-1 > Severity: wishlist > > Hello, > > I tried building a cross toolchain for powerpc following the steps on > http://www.emdebian.org/tools/crossdev.html (i.e. installing > binutils-$arch-linux-gnu and libc6-dev-$arch-cross, then export > GCC_TARGET=arch, debian/rules control, dpkg-buildpackage -b -rfakeroot). I see this problem on powerpc, mips and mipsel, but not on i386. I haven't tested sparc and s390. A workaround (when 64-bit isn't needed) is to disable multilibs. Thiemo Index: gcc-4.3-4.3.1-2/debian/rules.defs === --- gcc-4.3-4.3.1-2.orig/debian/rules.defs 2008-08-09 14:30:01.0 +0200 +++ gcc-4.3-4.3.1-2/debian/rules.defs 2008-08-09 17:10:39.0 +0200 @@ -934,7 +934,11 @@ biarch_cpu := $(patsubst $(DEB_TARGET_GNU_CPU)=%,%, \ $(filter $(DEB_TARGET_GNU_CPU)=%,$(biarch_map))) +ifeq ($(DEB_CROSS),yes) +biarch64_archs := /i386/sparc/s390/ +else biarch64_archs := /i386/powerpc/sparc/s390/mips/mipsel/ +endif ifneq (yes,$(call envfilt, biarch, , ,yes)) biarch64_archs := @@ -1042,7 +1046,11 @@ export TARGET64_MACHINE endif +ifeq ($(DEB_CROSS),yes) +biarchn32_archs := +else biarchn32_archs := /mips/mipsel/ +endif ifneq (yes,$(call envfilt, biarch, , ,yes)) biarchn32_archs := endif -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#504487: gcc-4.3: build cross toolchain for powerpc fails
Package: gcc-4.3 Version: 4.3.2-1 Severity: wishlist Hello, I tried building a cross toolchain for powerpc following the steps on http://www.emdebian.org/tools/crossdev.html (i.e. installing binutils-$arch-linux-gnu and libc6-dev-$arch-cross, then export GCC_TARGET=arch, debian/rules control, dpkg-buildpackage -b -rfakeroot). I succeeded with gcc-4.2 for powerpc and arm and gcc-4.3 for arm. gcc-4.3 for powerpc fails with /home/ukleinek/debsrc/gcc-4.3-4.3.2/build/./gcc/xgcc -B/home/ukleinek/debsrc/gcc-4.3-4.3.2/build/./gcc/ -B/usr/powerpc-linux-gnu/bin/ -B/usr/powerpc-linux-gnu/lib/ -isystem /usr/powerpc-linux-gnu/include -isystem /usr/powerpc-linux-gnu/sys-include -O2 -O2 -g -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -mno-minimal-toc -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o 64/libgcc_s.so.1.tmp -O2 -g -g -O2 -m64 -fPIC -mstrict-align -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o _enable_execute_stack_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _powitf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o _multc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _divtc3_s.o _bswapsi2_s.o _bswapdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixtfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _fixunstfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatditf_s.o _floatundisf_s.o _floatundidf_s.o _floatundixf_s.o _floatunditf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o darwin-ldouble_s.o ppc64-fp_s.o adddf3_s.o addsf3_s.o divdf3_s.o divsf3_s.o eqdf2_s.o eqsf2_s.o extendsfdf2_s.o fixdfsi_s.o fixsfsi_s.o floatsidf_s.o floatsisf_s.o floatunsidf_s.o floatunsisf_s.o gedf2_s.o gesf2_s.o ledf2_s.o lesf2_s.o muldf3_s.o mulsf3_s.o negdf2_s.o negsf2_s.o subdf3_s.o subsf3_s.o truncdfsf2_s.o unorddf2_s.o unordsf2_s.o tramp_s.o unwind-dw2_s.o unwind-dw2-fde-glibc_s.o unwind-sjlj_s.o gthr-gnat_s.o unwind-c_s.o emutls_s.o -lc && rm -f 64/libgcc_s.so && if [ -f 64/libgcc_s.so.1 ]; then mv -f 64/libgcc_s.so.1 64/libgcc_s.so.1.backup; else true; fi && mv 64/libgcc_s.so.1.tmp 64/libgcc_s.so.1 && ln -s libgcc_s.so.1 64/libgcc_s.so /usr/powerpc-linux-gnu/bin/ld: skipping incompatible /usr/powerpc-linux-gnu/lib/libc.so when searching for -lc /usr/powerpc-linux-gnu/bin/ld: skipping incompatible /usr/powerpc-linux-gnu/lib/libc.a when searching for -lc /usr/powerpc-linux-gnu/bin/ld: skipping incompatible /usr/powerpc-linux-gnu/bin/../../lib/libc.so when searching for -lc /usr/powerpc-linux-gnu/bin/ld: skipping incompatible /usr/powerpc-linux-gnu/bin/../../lib/libc.a when searching for -lc /usr/powerpc-linux-gnu/bin/ld: cannot find -lc collect2: ld returned 1 exit status make[6]: *** [libgcc_s.so] Error 1 make[6]: Leaving directory `/home/ukleinek/debsrc/gcc-4.3-4.3.2/build/powerpc-linux-gnu/64/libgcc' make[5]: *** [multi-do] Error 1 make[5]: Leaving directory `/home/ukleinek/debsrc/gcc-4.3-4.3.2/build/powerpc-linux-gnu/libgcc' make[4]: *** [all-multi] Error 2 make[4]: Leaving directory `/home/ukleinek/debsrc/gcc-4.3-4.3.2/build/powerpc-linux-gnu/libgcc' make[3]: *** [all-target-libgcc] Error 2 make[3]: Leaving directory `/home/ukleinek/debsrc/gcc-4.3-4.3.2/build' make[2]: *** [all] Error 2 make[2]: Leaving directory `/home/ukleinek/debsrc/gcc-4.3-4.3.2/build' s=`cat status`; rm -f status; test $s -eq 0 make[1]: *** [stamps/05-build-stamp] Error 1 make[1]: Leaving directory `/home/ukleinek/debsrc/gcc-4.3-4.3.2' make: *** [stamps/05-build-stamp] Error 2 dpkg-buildpackage: failure: debian/rules build gave error exit status 2 I have: [EMAIL PROTECTED]:~/debsrc/gcc-4.3-4.3.2$ dpkg -l binutils-\* | grep ^ii ii binutils-arm-linux-gnu 2.18.1~cvs20080103-7 The GNU binary utilities, for arm-linux-gnu target ii binutils-multiarch 2.18.1~cvs20080103-7 Binary utilities that support multi-arch targets ii binutils-powerpc-linux-gnu 2.18.1~cvs20080103-7 The GNU binary utilities, for powerpc-linux-gnu ta [EMAIL PROTECTED]:~/debsrc/gcc-4.3-4.3.2$ dpkg -l \*-cross | grep ^ii ii apt-cross
Bug#504487: gcc-4.3: build cross toolchain for powerpc fails
Hello Bastian, On Tue, Nov 04, 2008 at 03:16:40PM +0100, Bastian Blank wrote: > On Tue, Nov 04, 2008 at 01:06:43PM +0100, Uwe Kleine-König wrote: > > I tried building a cross toolchain for powerpc following the steps on > > http://www.emdebian.org/tools/crossdev.html (i.e. installing > > binutils-$arch-linux-gnu and libc6-dev-$arch-cross, then export > > GCC_TARGET=arch, debian/rules control, dpkg-buildpackage -b -rfakeroot). > > You miss the 64bit libc. This is not the error: [EMAIL PROTECTED]:~$ dpkg -l libc6-p* | grep ^ii ii libc6-powerpc-cross 2.7-15 GNU C Library: Shared libraries (for cross-compiling) ii libc6-ppc64-powerpc-cross 2.7-15 GNU C Library: 64bit Shared libraries for PowerPC64 ( > The other variant is to build without shared > libgcc. Is this something that's interesting to test? If yes, how do I do it? Best regards Uwe -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Bug#504487: gcc-4.3: build cross toolchain for powerpc fails
On Tue, Nov 04, 2008 at 03:25:13PM +0100, Bastian Blank wrote: > On Tue, Nov 04, 2008 at 01:06:43PM +0100, Uwe Kleine-König wrote: > > I tried building a cross toolchain for powerpc following the steps on > > http://www.emdebian.org/tools/crossdev.html (i.e. installing > > binutils-$arch-linux-gnu and libc6-dev-$arch-cross, then export > > GCC_TARGET=arch, debian/rules control, dpkg-buildpackage -b -rfakeroot). > > Does defining DEB_CROSS_NO_BIARCH help? Yes, then the build completes. If I understand correctly with the resulting toolchain I cannot build 64bit binaries, right? This is OK for me. Anything I can do to help closing the bug? E.g. a more complete build log? Thanks for you help Uwe -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]