[Bug rtl-optimization/323] optimized code gives strange floating point results

2008-11-04 Thread jsm28 at gcc dot gnu dot org


--- 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

2008-11-04 Thread Bastian Blank
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

2008-11-04 Thread Bastian Blank
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

2008-11-04 Thread Bastian Blank
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

2008-11-04 Thread jakub at gcc dot gnu dot org


--- 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

2008-11-04 Thread Thiemo Seufer
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

2008-11-04 Thread Uwe Kleine-König
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

2008-11-04 Thread Uwe Kleine-König
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

2008-11-04 Thread Uwe Kleine-König
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]