[Bug target/36992] Very stange code for _mm_move_epi64

2008-08-02 Thread ubizjak at gmail dot com


--- Comment #17 from ubizjak at gmail dot com  2008-08-03 06:49 ---
Fixed.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 GCC target triplet||x86-pc-linux-gnu
 Resolution||FIXED
   Target Milestone|--- |4.4.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36992



[Bug bootstrap/37013] gcc-4.2.1 build breaks in fortran when using --with-mpfr=

2008-08-02 Thread rob1weld at aol dot com


--- Comment #3 from rob1weld at aol dot com  2008-08-03 06:29 ---
Reopened - Broken in 4.2.2 and 4.2.3 also.


-- 

rob1weld at aol dot com changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
  Known to fail||4.2.1 4.2.2 4.2.3
 Resolution|WONTFIX |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37013



[Bug target/36992] Very stange code for _mm_move_epi64

2008-08-02 Thread uros at gcc dot gnu dot org


--- Comment #16 from uros at gcc dot gnu dot org  2008-08-03 06:14 ---
Subject: Bug 36992

Author: uros
Date: Sun Aug  3 06:13:04 2008
New Revision: 138564

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=138564
Log:
PR target/36992
* config/i386/sse.md (vec_concatv2di): Add Y2 constraint to
alternative 0 of operand 1.
(*vec_concatv2di_rex64_sse): Ditto.
(*vec_concatv2di_rex64_sse4_1): Add x constraint to alternative 0
of operand 1.
(*sse2_storeq_rex64): Penalize allocation of "r" registers.
* config/i386/mmx.md (*mov_internal_rex64): Penalize allocation
of "Y2" registers to avoid SSE <-> MMX conversions for DImode moves.
(*movv2sf_internal_rex64): Ditto.

testsuite/ChangeLog:

PR target/36992
* gcc.target/i386/pr36992-1.c: New test.
* gcc.target/i386/pr36992-2.c: Ditto.

Added:
trunk/gcc/testsuite/gcc.target/i386/pr36992-1.c
trunk/gcc/testsuite/gcc.target/i386/pr36992-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/mmx.md
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36992



[Bug bootstrap/37013] gcc-4.2.1 build breaks in fortran when using --with-mpfr=

2008-08-02 Thread rob1weld at aol dot com


--- Comment #2 from rob1weld at aol dot com  2008-08-03 05:12 ---
> 4.2.1 is history and is completely and utterly unsupported.
OK.

Directory ftp://ftp.gnu.org/gnu/gcc/ says the date is 07/20/07 so it is barely
over one year old. I desire to build a 4.2.x series so I'll move up one minor.

Thanks, I'm marking this as WONTFIX based on your reply.


-- 

rob1weld at aol dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37013



[Bug bootstrap/37013] gcc-4.2.1 build breaks in fortran when using --with-mpfr=

2008-08-02 Thread kargl at gcc dot gnu dot org


--- Comment #1 from kargl at gcc dot gnu dot org  2008-08-03 04:58 ---
what happens with gcc versions 4.2.2, 4.2.3, 4.2.4, 4.3.0, and 4.3.1?

In other words, 4.2.1 is history and is completely and utterly 
unsupported.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37013



[Bug bootstrap/37013] New: gcc-4.2.1 build breaks in fortran when using --with-mpfr=

2008-08-02 Thread rob1weld at aol dot com
OpenSolaris is available free from: http://opensolaris.org/

I am building gcc-4.2.1 release from:
ftp://ftp.gnu.org/gnu/gcc/gcc-4.2.1/gcc-4.2.1.tar.bz2


When building gcc on Solaris operating systems it is required (by Sun) that you
use "--prefix=...", "--with-gmp=...", "--with-mpfr=...", (and
--with-ld=/usr/ccs/bin/ld, --enable-shared, --disable-static,
--enable-threads=solaris, --enable-multilib) in order to compile gcc correctly
and, when installing, to avoid overwriting the system compiler and libraries.

Overwriting the system compiler and libraries is not a supported configuration
(of the Operating System).

I used --with-mpfr=/opt/gnu/mpfr-2.3.1 so I could use my own copy of mpfr but
while building gcc the build broke here (in gcc/fortran stage 1):

...
build/genchecksum cc1plus-dummy > cc1plus-checksum.c
gcc -c   -g -fkeep-inline-functions -DIN_GCC   -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition
-Wmissing-format-attribute-DHAVE_CONFIG_H -I. -I. -I/aux0/gcc-4.2.1/gcc
-I/aux0/gcc-4.2.1/gcc/. -I/aux0/gcc-4.2.1/gcc/../include -I./../intl
-I/aux0/gcc-4.2.1/gcc/../libcpp/include  -I/aux0/gcc-4.2.1/gcc/../libdecnumber
-I../libdecnumbercc1plus-checksum.c -o cc1plus-checksum.o
gcc   -g -fkeep-inline-functions -DIN_GCC   -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition
-Wmissing-format-attribute-DHAVE_CONFIG_H  -o cc1plus \
  cp/cp-lang.o stub-objc.o cp/call.o cp/decl.o cp/expr.o cp/pt.o
cp/typeck2.o cp/class.o cp/decl2.o cp/error.o cp/lex.o cp/parser.o cp/ptree.o
cp/rtti.o cp/typeck.o cp/cvt.o cp/except.o cp/friend.o cp/init.o cp/method.o
cp/search.o cp/semantics.o cp/tree.o cp/repo.o cp/dump.o cp/optimize.o
cp/mangle.o cp/cp-objcp-common.o cp/name-lookup.o cp/cxx-pretty-print.o
cp/cp-gimplify.o tree-mudflap.o attribs.o c-common.o c-format.o c-pragma.o
c-semantics.o c-lex.o c-dump.o sol2-c.o c-pretty-print.o c-opts.o c-pch.o
c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o c-gimplify.o
c-omp.o tree-inline.o cc1plus-checksum.o main.o  libbackend.a
../libcpp/libcpp.a ../libdecnumber/libdecnumber.a ../libcpp/libcpp.a
./../intl/libintl.a  ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a
gcc -c   -g -fkeep-inline-functions -DIN_GCC   -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition
-Wmissing-format-attribute-DHAVE_CONFIG_H -I. -Ifortran
-I/aux0/gcc-4.2.1/gcc -I/aux0/gcc-4.2.1/gcc/fortran
-I/aux0/gcc-4.2.1/gcc/../include -I./../intl
-I/aux0/gcc-4.2.1/gcc/../libcpp/include  -I/aux0/gcc-4.2.1/gcc/../libdecnumber
-I../libdecnumber/aux0/gcc-4.2.1/gcc/fortran/arith.c -o fortran/arith.o
In file included from /aux0/gcc-4.2.1/gcc/fortran/arith.c:31:
/aux0/gcc-4.2.1/gcc/fortran/gfortran.h:1229:18: error: mpfr.h: No such file or
directory
In file included from /aux0/gcc-4.2.1/gcc/fortran/arith.c:31:
/aux0/gcc-4.2.1/gcc/fortran/gfortran.h:1263: error: syntax error before
'mpfr_t'
/aux0/gcc-4.2.1/gcc/fortran/gfortran.h:1263: warning: no semicolon at end of
struct or union
/aux0/gcc-4.2.1/gcc/fortran/gfortran.h:1263: warning: no semicolon at end of
struct or union
/aux0/gcc-4.2.1/gcc/fortran/gfortran.h:1267: error: syntax error before
'mpfr_t'
...


My mpfr.h file is present in directory /opt/gnu/mpfr-2.3.1/include but the '
gcc -o fortran/arith.o ... ' command does not "-I" that directory.


-- 
   Summary: gcc-4.2.1 build breaks in fortran when using --with-
mpfr=
   Product: gcc
   Version: 4.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rob1weld at aol dot com
 GCC build triplet: i386-pc-solaris2.11
  GCC host triplet: i386-pc-solaris2.11
GCC target triplet: i386-pc-solaris2.11


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37013



[Bug c++/37012] numerous stackalign related testsuite failures on i686-apple-darwin9

2008-08-02 Thread howarth at nitro dot med dot uc dot edu


--- Comment #3 from howarth at nitro dot med dot uc dot edu  2008-08-03 
04:30 ---
This testcase is compiled with...

/sw/src/fink.build/gcc44-4.3.999-20080801/darwin_objdir/gcc/testsuite/g++/../../g++
-B/sw/src/fink.build/gcc44-4.3.999-20080801/darwin_objdir/gcc/testsuite/g++/../../
/sw/src/fink.build/gcc44-4.3.999-20080801/gcc-4.4-20080801/gcc/testsuite/g++.dg/torture/stackalign/eh-alloca-1.C
-nostdinc++
-I/sw/src/fink.build/gcc44-4.3.999-20080801/darwin_objdir/i686-apple-darwin9/libstdc++-v3/include/i686-apple-darwin9
-I/sw/src/fink.build/gcc44-4.3.999-20080801/darwin_objdir/i686-apple-darwin9/libstdc++-v3/include
-I/sw/src/fink.build/gcc44-4.3.999-20080801/gcc-4.4-20080801/libstdc++-v3/libsupc++
-I/sw/src/fink.build/gcc44-4.3.999-20080801/gcc-4.4-20080801/libstdc++-v3/include/backward
-I/sw/src/fink.build/gcc44-4.3.999-20080801/gcc-4.4-20080801/libstdc++-v3/testsuite/util
-fmessage-length=0 -O3 -g -mstackrealign -mpreferred-stack-boundary=5
-L/sw/src/fink.build/gcc44-4.3.999-20080801/darwin_objdir/i686-apple-darwin9/./libstdc++-v3/src/.libs
-L/sw/src/fink.build/gcc44-4.3.999-20080801/darwin_objdir/i686-apple-darwin9/./libstdc++-v3/src/.libs
-L/sw/src/fink.build/gcc44-4.3.999-20080801/darwin_objdir/i686-apple-darwin9/./libiberty
-multiply_defined suppress --save-temps -lm -o ./eh-alloca-1.exe

on i686-apple-darwin9.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37012



[Bug c++/37012] numerous stackalign related testsuite failures on i686-apple-darwin9

2008-08-02 Thread howarth at nitro dot med dot uc dot edu


--- Comment #2 from howarth at nitro dot med dot uc dot edu  2008-08-03 
04:28 ---
Created an attachment (id=16003)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16003&action=view)
preprocessed source file for g++.dg/torture/stackalign/eh-alloca-1.C


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37012



[Bug c++/37012] numerous stackalign related testsuite failures on i686-apple-darwin9

2008-08-02 Thread howarth at nitro dot med dot uc dot edu


--- Comment #1 from howarth at nitro dot med dot uc dot edu  2008-08-03 
04:27 ---
Created an attachment (id=16002)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16002&action=view)
assembly file for g++.dg/torture/stackalign/eh-alloca-1.C


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37012



[Bug c++/37012] New: numerous stackalign related testsuite failures on i686-apple-darwin9

2008-08-02 Thread howarth at nitro dot med dot uc dot edu
Current gcc trunk exhibits a number of stackalign execution related testsuite
failures on i686-apple-darwin9...

http://gcc.gnu.org/ml/gcc-testresults/2008-08/msg00184.html

One example is g++.dg/torture/stackalign/eh-alloca-1.C which fails in the
execution tests at all optimization levels. In gdb, this segfault backtraces
as...

Starting program: /Users/howarth/stackalign/eh-alloca-1.exe 
Reading symbols for shared libraries +++. done
terminate called after throwing an instance of 'A'

Program received signal SIGABRT, Aborted.
0x92986b9e in __kill ()
(gdb) bt
#0  0x92986b9e in __kill ()
#1  0x92986b91 in kill$UNIX2003 ()
#2  0x929fdec2 in raise ()
#3  0x92a0d47f in abort ()
#4  0x001bed0b in __gnu_cxx::__verbose_terminate_handler ()
#5  0x001bc83a in __cxxabiv1::__terminate ()
#6  0x001bc87c in std::terminate ()
#7  0x001bc974 in __cxa_throw ()
#8  0x1ea1 in foo (size=192) at
/sw/src/fink.build/gcc44-4.3.999-20080801/gcc-4.4-20080801/gcc/testsuite/g++.dg/torture/stackalign/eh-alloca-1.C:47
#9  0x1ed5 in main () at
/sw/src/fink.build/gcc44-4.3.999-20080801/gcc-4.4-20080801/gcc/testsuite/g++.dg/torture/stackalign/eh-alloca-1.C:53


-- 
   Summary: numerous stackalign related testsuite failures on i686-
apple-darwin9
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: howarth at nitro dot med dot uc dot edu
 GCC build triplet: i686-apple-darwin9
  GCC host triplet: i686-apple-darwin9
GCC target triplet: i686-apple-darwin9


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37012



[Bug c++/36963] [4.4 Regression] Bogus narrowing conversion error in initializer list.

2008-08-02 Thread jason at gcc dot gnu dot org


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-08-03 03:01:20
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36963



[Bug c++/36963] [4.4 Regression] Bogus narrowing conversion error in initializer list.

2008-08-02 Thread jason at gcc dot gnu dot org


--- Comment #6 from jason at gcc dot gnu dot org  2008-08-03 03:01 ---
There is an open issue about this problem which should be addressed at the next
meeting.  I'm quite sure this will not be invalid C++0x when the standard is
finished.


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36963



[Bug bootstrap/36948] cc1.exe: internal compiler error: Segmentation fault

2008-08-02 Thread andry at inbox dot ru


--- Comment #14 from andry at inbox dot ru  2008-08-03 02:42 ---
(In reply to comment #12)
> MinGW apps like gcc have *no* way of interpreting anything but Win32 paths.
It is, i found that Msys bash shell (not console) converts all this stuff with
Msys paths. So xgcc already gothering paths in windows form.

> And yes, using Win32 paths with colons also fails because the gcc build
> system isn't expecting paths with colons.
Fails not the build, fails call to cc1.exe, in "/gcc" in build directory. I try
simply run it and it fails. Maybe problem in some library and in another
thing...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36948



[Bug bootstrap/36948] cc1.exe: internal compiler error: Segmentation fault

2008-08-02 Thread andry at inbox dot ru


--- Comment #13 from andry at inbox dot ru  2008-08-03 01:50 ---
(In reply to comment #12)
> You're not really testing what you think you are
Ok, i found that Msys console converts all application arguments and
environment variables before run any application. So, i missed out that in
Windows console GCC compiler doesn't understand MSYS paths.

> And yes, using Win32 paths with colons also fails because the gcc build
> system isn't expecting paths with colons.
So, have i any chances to pass in --prefix argument path in Windows form to not
mingw directory?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36948



[Bug middle-end/37009] No need to align stack when incoming stack is aligned

2008-08-02 Thread hjl dot tools at gmail dot com


--- Comment #1 from hjl dot tools at gmail dot com  2008-08-03 00:54 ---
A patch is posted at

http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00124.html


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

  BugsThisDependsOn||37010
URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2008-
   ||08/msg00124.html


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37009



[Bug target/37010] -Os passes __m128 on stack with wrong alignment

2008-08-02 Thread hjl dot tools at gmail dot com


--- Comment #1 from hjl dot tools at gmail dot com  2008-08-03 00:37 ---
A patch is posted at

http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00123.html


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 CC||Joey dot ye at intel dot
   ||com, xuepeng dot guo at
   ||intel dot com
URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2008-
   ||08/msg00123.html


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37010



[Bug fortran/37011] New: F2003, type extension: multiple inheritence not rejected

2008-08-02 Thread dfranke at gcc dot gnu dot org
F2003, sec. 4.5.1 (derived type definition): EXTENDS is an attribute that can
not be specified more than once. Currently (20080803), gfortran accepts:

TYPE :: b
  INTEGER :: i
END TYPE

TYPE, EXTENDS(b), EXTENDS(b) :: d
  INTEGER :: j
END TYPE


-- 
   Summary: F2003, type extension: multiple inheritence not rejected
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Keywords: accepts-invalid
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dfranke at gcc dot gnu dot org
OtherBugsDependingO 20585
 nThis:


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37011



[Bug libfortran/36886] misaligment for cshift of character

2008-08-02 Thread tkoenig at gcc dot gnu dot org


--- Comment #3 from tkoenig at gcc dot gnu dot org  2008-08-02 23:49 ---
Created an attachment (id=16001)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16001&action=view)
better patch

This one is better :-)


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #16000|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36886



[Bug libfortran/36886] misaligment for cshift of character

2008-08-02 Thread tkoenig at gcc dot gnu dot org


--- Comment #2 from tkoenig at gcc dot gnu dot org  2008-08-02 23:43 ---
Created an attachment (id=16000)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16000&action=view)
proposed patch for cshift0

Here's something that works for cshift0.

cshift1 still to do...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36886



[Bug rtl-optimization/36998] [4.3/4.4 regression] Ada bootstrap broken on i586-*-*

2008-08-02 Thread kkojima at gcc dot gnu dot org


--- Comment #10 from kkojima at gcc dot gnu dot org  2008-08-02 22:12 
---
(In reply to comment #8)
> If a label is reachable from different args_size levels, that's a severe bug
> and should be fixed wherever that is created, likely expander.

It seems that arg_size is reset with (set (reg sp) (reg fp))
just after label 77 in #7:

(code_label 77 42 76 10 "" [2 uses])

(note 76 77 61 [bb 9] NOTE_INSN_BASIC_BLOCK)

(insn 61 76 100 bas.c:22 (use (reg/i:SI 0 r0)) -1 (nil))

(note 100 61 101 NOTE_INSN_EPILOGUE_BEG)

(insn 101 100 102 bas.c:22 (unspec_volatile [
(const_int 0 [0x0])
] 0) 284 {blockage} (nil))

(insn 102 101 127 bas.c:22 (set (reg/f:SI 15 r15)
(reg/f:SI 14 r14)) 175 {movsi_ie} (nil))

Does it look a target bug?  If so, should I file a new
PR target to bugzilla?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36998



[Bug bootstrap/36948] cc1.exe: internal compiler error: Segmentation fault

2008-08-02 Thread brian at dessent dot net


--- Comment #12 from brian at dessent dot net  2008-08-02 21:02 ---
Subject: Re:  cc1.exe: internal compiler error: Segmentation 
 fault

You're not really testing what you think you are, because MSYS
translates everything on the command line, so saying that "gcc
-I/foo/bar" works just means that MSYS actually executed "gcc
-Ic:/path/to/foo/bar".  MinGW apps like gcc have *no* way of
interpreting anything but Win32 paths.

And yes, using Win32 paths with colons also fails because the gcc build
system isn't expecting paths with colons.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36948



[Bug bootstrap/36948] cc1.exe: internal compiler error: Segmentation fault

2008-08-02 Thread andry at inbox dot ru


--- Comment #11 from andry at inbox dot ru  2008-08-02 20:41 ---
> /c/foo/bar is valid for *MSYS* apps.  But we're talking about gcc which
> is NOT a MSYS app, it is a MinGW app, i.e. native win32.  /c/foo/bar is
> *not* valid for such an app.
Not true, for example, Mingw GCC 3.4.4 perfectly understands BOTH type of
paths. You can simply test it putting paths in to environment variables like
"CPATH" or in "-I" key on command line.

> In fact the whole point of MSYS is to
> rewrite these paths as c:/foo/bar when invoking MinGW apps, but that is
> only possible if they are passed on a command line.  The gcc build
> system sometimes embeds them in filenames and they won't be translated. 
> Thus you have to be careful to avoid using them.

If all this was true, then build should be crash on early stage then first
"incorrect" path come on commend line, but it wouldn't happend.

I test build with "c:\" and with "c:/" paths, the build crashes the same. I
think this is not a point of the bug.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36948



[Bug bootstrap/36948] cc1.exe: internal compiler error: Segmentation fault

2008-08-02 Thread brian at dessent dot net


--- Comment #10 from brian at dessent dot net  2008-08-02 19:24 ---
Subject: Re:  cc1.exe: internal compiler error: Segmentation 
 fault

/c/foo/bar is valid for *MSYS* apps.  But we're talking about gcc which
is NOT a MSYS app, it is a MinGW app, i.e. native win32.  /c/foo/bar is
*not* valid for such an app.  In fact the whole point of MSYS is to
rewrite these paths as c:/foo/bar when invoking MinGW apps, but that is
only possible if they are passed on a command line.  The gcc build
system sometimes embeds them in filenames and they won't be translated. 
Thus you have to be careful to avoid using them.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36948



[Bug c++/36963] [4.4 Regression] Bogus narrowing conversion error in initializer list.

2008-08-02 Thread manu at gcc dot gnu dot org


--- Comment #5 from manu at gcc dot gnu dot org  2008-08-02 19:05 ---
... to close as INVALID.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36963



[Bug c++/36963] [4.4 Regression] Bogus narrowing conversion error in initializer list.

2008-08-02 Thread manu at gcc dot gnu dot org


--- Comment #4 from manu at gcc dot gnu dot org  2008-08-02 19:04 ---
Reopened...


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|FIXED   |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36963



[Bug c++/37004] [C++ only] Wconversion warns for short y = 0x7fff; short z = (short) x & y;

2008-08-02 Thread manu at gcc dot gnu dot org


--- Comment #2 from manu at gcc dot gnu dot org  2008-08-02 19:03 ---
Wrong bug (argh!).


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|INVALID |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37004



[Bug c++/37004] [C++ only] Wconversion warns for short y = 0x7fff; short z = (short) x & y;

2008-08-02 Thread manu at gcc dot gnu dot org


--- Comment #1 from manu at gcc dot gnu dot org  2008-08-02 19:03 ---
INVALID (not FIXED).


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37004



[Bug c++/36963] [4.4 Regression] Bogus narrowing conversion error in initializer list.

2008-08-02 Thread manu at gcc dot gnu dot org


--- Comment #3 from manu at gcc dot gnu dot org  2008-08-02 19:02 ---
OK. Invalid then.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36963



[Bug target/36992] Very stange code for _mm_move_epi64

2008-08-02 Thread ubizjak at gmail dot com


--- Comment #15 from ubizjak at gmail dot com  2008-08-02 18:43 ---
Complete patch at http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00116.html


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2008-
   ||08/msg00116.html


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36992



[Bug c++/36963] [4.4 Regression] Bogus narrowing conversion error in initializer list.

2008-08-02 Thread chris dot fairles at gmail dot com


--- Comment #2 from chris dot fairles at gmail dot com  2008-08-02 18:41 
---
(In reply to comment #1)
> AFAIK, the error is a request of the c++0x standard and it seems -0.02435L 
> does
> not fit exactly in a float while  -0.25L does, so the message is correct and I
> thus I don't think there is a bug here. 
> 
> Perhaps it should be a permissive error, so users can compile legacy code in
> c++0x mode.
> 
> CCing Jason.
> 

I think you are right. Section 8.5.4 - List-initialization, in the current WD
(N2691) says that a narrowing conversion from double to float is only allowed
if the conversion is of a literal value and the value can fit into the
destination type such that it produces the exact same value when coverted back.
Then from 8.5.4 paragraph 3, 3rd bullet, if any argument requires a narrowing
conversion, the program is ill-formed.

If you use the "f" post-fix in the test case, no narrowing conversion is
required and the error is not issued as expected.

This can be marked as invalid I believe.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36963



[Bug target/35659] [4.3/4.4 Regression] Miscompiled code with -O2 (but not with -O2 -funroll-loops) on ia64

2008-08-02 Thread mkuvyrkov at gcc dot gnu dot org


--- Comment #23 from mkuvyrkov at gcc dot gnu dot org  2008-08-02 18:15 
---
(In reply to comment #22)
> Maxim, have you had time to look at this bug?  Given that it is generating bad
> code and is in 4.3.0 and 4.3.1 I was wondering if it will be fixed for 4.3.2.

Sorry for the delay.  I posted the fix at
http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00112.html.

I would appreciate if someone could test the cumulative patch of three fixes
for ia64 speculation support or provide a single-file executable testcase for
this bug.  Here are links to two other bugfixes for ia64 speculation support:
http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00110.html
http://gcc.gnu.org/ml/gcc-patches/2008-08/msg00111.html


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35659



[Bug bootstrap/36948] cc1.exe: internal compiler error: Segmentation fault

2008-08-02 Thread andry at inbox dot ru


--- Comment #9 from andry at inbox dot ru  2008-08-02 18:01 ---
(In reply to comment #8)
> It's a valid MinGW path only if you have created a physical directory
> named "c" at the root of the current drive, i.e. X:\c\_GccBuilds\...
> 
>From "/msys/1.0/doc/MSYS_VS_CYGWIN":
/cygdrive:  There is no such item.  All devices and mapped shares are auto
mounted with the device letter as the mount point.  E.G.: the C:\ drive is
referenced as /c.

>From this, "/c" is automount point to "c:".


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36948



[Bug target/37010] New: -Os passes __m128 on stack with wrong alignment

2008-08-02 Thread hjl dot tools at gmail dot com
-Os passes __m128 on stack with wrong alignment:

bash-3.2$ cat x.c
#include 

extern void foo (__m128 x, __m128 y ,__m128 z ,__m128 a, int size);

void
bar (void)
{
  __m128 x = { 1.0 };
  foo (x, x, x, x, 5);
}
bash-3.2$ /export/build/gnu/gcc-work/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-work/build-x86_64-linux/gcc/-Os  -msse2  -m32 x.c
-S 
bash-3.2$ cat x.s
.file   "x.c"
.text
.globl bar
.type   bar, @function
bar:
pushl   %ebp
movl%esp, %ebp
subl$20, %esp
movss   .LC0, %xmm0
pushl   $5
subl$16, %esp
movups  %xmm0, (%esp)
 This should be aligned at 16byte with movaps.
movaps  %xmm0, %xmm2
movaps  %xmm0, %xmm1
callfoo
addl$32, %esp
leave
ret


-- 
   Summary: -Os passes __m128 on stack with wrong alignment
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com
GCC target triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37010



[Bug bootstrap/36948] cc1.exe: internal compiler error: Segmentation fault

2008-08-02 Thread brian at dessent dot net


--- Comment #8 from brian at dessent dot net  2008-08-02 16:56 ---
Subject: Re:  cc1.exe: internal compiler error: Segmentation 
 fault

It's a valid MinGW path only if you have created a physical directory
named "c" at the root of the current drive, i.e. X:\c\_GccBuilds\...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36948



[Bug target/36992] Very stange code for _mm_move_epi64

2008-08-02 Thread ubizjak at gmail dot com


--- Comment #14 from ubizjak at gmail dot com  2008-08-02 16:01 ---
(In reply to comment #13)
> We should also test -O0.

Usage of MMX regs with -O0 is fixed by following patch:

Index: config/i386/mmx.md
===
--- config/i386/mmx.md  (revision 138553)
+++ config/i386/mmx.md  (working copy)
@@ -65,9 +65,9 @@

 (define_insn "*mov_internal_rex64"
   [(set (match_operand:MMXMODEI8 0 "nonimmediate_operand"
-   "=rm,r,!?y,!?y ,m  ,!y,Y2,x,x ,m,r,x")
+   "=rm,r,!?y,!?y ,m  ,!y,*Y2,x,x ,m,r,x")
(match_operand:MMXMODEI8 1 "vector_move_operand"
-   "Cr ,m,C  ,!?ym,!?y,Y2,!y,C,xm,x,x,r"))]
+   "Cr ,m,C  ,!?ym,!?y,*Y2,!y,C,xm,x,x,r"))]
   "TARGET_64BIT && TARGET_MMX
&& !(MEM_P (operands[0]) && MEM_P (operands[1]))"
   "@
@@ -124,9 +124,9 @@

 (define_insn "*movv2sf_internal_rex64"
   [(set (match_operand:V2SF 0 "nonimmediate_operand"
-   "=rm,r ,!?y,!?y ,m ,!y,Y2,x,x,x,m,r,x")
+   "=rm,r ,!?y,!?y ,m ,!y,*Y2,x,x,x,m,r,x")
 (match_operand:V2SF 1 "vector_move_operand"
-   "Cr ,m ,C  ,!?ym,!y,Y2,!y,C,x,m,x,x,r"))]
+   "Cr ,m ,C  ,!?ym,!y,*Y2,!y,C,x,m,x,x,r"))]
   "TARGET_64BIT && TARGET_MMX
&& !(MEM_P (operands[0]) && MEM_P (operands[1]))"
   "@

> Why do we use _mm_movepi64_pi64 at all? _mm_movepi64_pi64 is an MMX
> intrinsic. It isn't necessary here.

_mm_movepi64_pi64 extracts DImode element 0 from V2DI vector. It just generates
sse2_storeq_* pattern that operates also on SSE regs.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36992



[Bug rtl-optimization/36998] [4.3/4.4 regression] Ada bootstrap broken on i586-*-*

2008-08-02 Thread ebotcazou at gcc dot gnu dot org


--- Comment #9 from ebotcazou at gcc dot gnu dot org  2008-08-02 15:49 
---
> Untested patch to set args_size to 0 when encountering (set (reg sp) (reg di))
> etc.

OK on i586-linux (C/C++/Ada) on both the mainline and the 4.3 branch.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-08-02 15:49:07
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36998



[Bug c++/36963] [4.4 Regression] Bogus narrowing conversion error in initializer list.

2008-08-02 Thread manu at gcc dot gnu dot org


--- Comment #1 from manu at gcc dot gnu dot org  2008-08-02 15:28 ---
AFAIK, the error is a request of the c++0x standard and it seems -0.02435L does
not fit exactly in a float while  -0.25L does, so the message is correct and I
thus I don't think there is a bug here. 

Perhaps it should be a permissive error, so users can compile legacy code in
c++0x mode.

CCing Jason.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jason at redhat dot com,
   ||manu at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36963



[Bug target/36992] Very stange code for _mm_move_epi64

2008-08-02 Thread hjl dot tools at gmail dot com


--- Comment #13 from hjl dot tools at gmail dot com  2008-08-02 15:19 
---
We should also test -O0. This code:

extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__,
__artificial__))
_mm_movpi64_epi64 (__m64 __A) 
{
  return _mm_set_epi64 ((__m64)0LL, __A);
}

extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__,
__artificial__))
_mm_move_epi64 (__m128i __A) 
{
  return _mm_set_epi64 ((__m64)0LL, _mm_movepi64_pi64 (__A));
}

Why do we use _mm_movepi64_pi64 at all? _mm_movepi64_pi64 is an MMX
intrinsic. It isn't necessary here.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36992



[Bug rtl-optimization/36998] [4.3/4.4 regression] Ada bootstrap broken on i586-*-*

2008-08-02 Thread jakub at gcc dot gnu dot org


--- Comment #8 from jakub at gcc dot gnu dot org  2008-08-02 15:17 ---
If a label is reachable from different args_size levels, that's a severe bug
and should be fixed wherever that is created, likely expander.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36998



[Bug target/36992] Very stange code for _mm_move_epi64

2008-08-02 Thread ubizjak at gmail dot com


--- Comment #12 from ubizjak at gmail dot com  2008-08-02 15:07 ---
Patch in testing:

Index: testsuite/gcc.target/i386/pr36992.c
===
--- testsuite/gcc.target/i386/pr36992.c (revision 0)
+++ testsuite/gcc.target/i386/pr36992.c (revision 0)
@@ -0,0 +1,12 @@
+/* { dg-do compile }
+/* { dg-options "-msse2 -O2" } */
+
+#include 
+
+__m128i
+test (__m128i b)
+{
+  return _mm_move_epi64 (b);
+}
+
+/* { dg-final { scan-assembler-times "mov\[qd\]\[ \\t\]+.*%xmm" 1 } } */
Index: config/i386/sse.md
===
--- config/i386/sse.md  (revision 138553)
+++ config/i386/sse.md  (working copy)
@@ -4777,7 +4777,7 @@
   "")

 (define_insn "*sse2_storeq_rex64"
-  [(set (match_operand:DI 0 "nonimmediate_operand" "=mx,r,r")
+  [(set (match_operand:DI 0 "nonimmediate_operand" "=mx,*r,r")
(vec_select:DI
  (match_operand:V2DI 1 "nonimmediate_operand" "x,Yi,o")
  (parallel [(const_int 0)])))]
@@ -4940,10 +4940,10 @@
(set_attr "mode" "TI,V4SF,V2SF")])

 (define_insn "vec_concatv2di"
-  [(set (match_operand:V2DI 0 "register_operand" "=Y2,?Y2,Y2,x,x,x")
+  [(set (match_operand:V2DI 0 "register_operand" "=Y2 ,?Y2,Y2,x,x,x")
(vec_concat:V2DI
- (match_operand:DI 1 "nonimmediate_operand" "  m,*y ,0 ,0,0,m")
- (match_operand:DI 2 "vector_move_operand"  "  C,  C,Y2,x,m,0")))]
+ (match_operand:DI 1 "nonimmediate_operand" " mY2,*y ,0 ,0,0,m")
+ (match_operand:DI 2 "vector_move_operand"  " C  ,  C,Y2,x,m,0")))]
   "!TARGET_64BIT && TARGET_SSE"
   "@
movq\t{%1, %0|%0, %1}
@@ -4956,10 +4956,10 @@
(set_attr "mode" "TI,TI,TI,V4SF,V2SF,V2SF")])

 (define_insn "*vec_concatv2di_rex64_sse4_1"
-  [(set (match_operand:V2DI 0 "register_operand" "=x,x,Yi,!x,x,x,x,x")
+  [(set (match_operand:V2DI 0 "register_operand" "=x ,x ,Yi,!x,x,x,x,x")
(vec_concat:V2DI
- (match_operand:DI 1 "nonimmediate_operand" " 0,m,r ,*y,0,0,0,m")
- (match_operand:DI 2 "vector_move_operand"  "rm,C,C ,C ,x,x,m,0")))]
+ (match_operand:DI 1 "nonimmediate_operand" " 0 ,mx,r ,*y,0,0,0,m")
+ (match_operand:DI 2 "vector_move_operand"  " rm,C ,C ,C ,x,x,m,0")))]
   "TARGET_64BIT && TARGET_SSE4_1"
   "@
pinsrq\t{$0x1, %2, %0|%0, %2, 0x1}
@@ -4975,10 +4975,10 @@
(set_attr "mode" "TI,TI,TI,TI,TI,V4SF,V2SF,V2SF")])

 (define_insn "*vec_concatv2di_rex64_sse"
-  [(set (match_operand:V2DI 0 "register_operand" "=Y2,Yi,!Y2,Y2,x,x,x")
+  [(set (match_operand:V2DI 0 "register_operand" "=Y2 ,Yi,!Y2,Y2,x,x,x")
(vec_concat:V2DI
- (match_operand:DI 1 "nonimmediate_operand" "  m,r ,*y ,0 ,0,0,m")
- (match_operand:DI 2 "vector_move_operand"  "  C,C ,C  ,Y2,x,m,0")))]
+ (match_operand:DI 1 "nonimmediate_operand" " mY2,r ,*y ,0 ,0,0,m")
+ (match_operand:DI 2 "vector_move_operand"  " C  ,C ,C  ,Y2,x,m,0")))]
   "TARGET_64BIT && TARGET_SSE"
   "@
movq\t{%1, %0|%0, %1}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36992



[Bug rtl-optimization/36998] [4.3/4.4 regression] Ada bootstrap broken on i586-*-*

2008-08-02 Thread kkojima at gcc dot gnu dot org


--- Comment #7 from kkojima at gcc dot gnu dot org  2008-08-02 15:02 ---
I've tested the 2nd patch on sh4, but it doesn't fix the ICE
on sh4.  Perhaps the problem is slightly different from that
for i586.  Here is a reduced test case for the sh-elf compiler
with the option '-m4 -O -fasynchronous-unwind-tables':

union double_union
{
  double d;
  unsigned int i[2];
};

char *foo (double _d, char *s, char **rve)
{
  union double_union d;

  d.d = _d;
  if ((d.i[1]) & 0x8000UL)
(d.i[1]) &= ~0x8000UL;
  if (((d.i[1]) & 0x7ff0UL) == 0x7ff0UL)
return s;
  if (!d.d)
{
  s = "0";
  if (rve) *rve = s + 1;
  return s;
}
}

I've tried to see what is going on in the above test case
with stepping from the top of compute_barrier_args_size_1.
It seems that that function scans insns and updates
cur_args_size as follows:

(insn/f 95 ... (set (reg/f:SI 14 r14) (reg/f:SI 15 r15))...)
...
(insn 91 ... (set (mem/c:SF (pre_dec:SI (reg/f:SI 15 r15))) (reg:SF 68
fr4))...)
cur_args_size is updated to 4.

(insn 92 ... (set (mem/c:SF (pre_dec:SI (reg/f:SI 15 r15))) (reg:SF 69
fr5))...)
cur_args_size is updated to 8.
...
(jump_insn 22 ... (label_ref 77) ...)
...
(insn 86 ... (set (mem/c:DF (pre_dec:SI (reg/f:SI 15 r15))) (reg:DF 6 r6)))
cur_args_size is updated to 16.
...
(jump_insn 33 ... (label_ref 77) ...)
...
;; Exit block
(code_label 77 ...)
...
(insn 102 ... (set (reg/f:SI 15 r15) (reg/f:SI 14 r14)) ...)

Thus label 77 is reachable from (jump_insn 22 ...) where arg_size
is 8 and from (jump_insn 33 ...) where arg_size is 16.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36998



[Bug middle-end/37009] New: No need to align stack when incoming stack is aligned

2008-08-02 Thread hjl dot tools at gmail dot com
If a parameter is passed on stack, caller is responsible to align
the stack frame to at least the alignment of the parameter. But gcc
will align the stack even when it has been aligned already by caller.

bash-3.2$ cat 1.i
typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
int
__attribute__ ((noinline))
foo(__m128 x, int size, ...)
{
  volatile char * ptr=__builtin_alloca(size);
  volatile int __attribute((aligned(16))) xxx;

  xxx = 2;
  ptr [1]= 30;
  return xxx;
}

int
bar ()
{
  __m128 x = { 1.0 };
  foo (x, 30);
  return 0;
}
bash-3.2$  /export/build/gnu/gcc-avx/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-stack/build-x86_64-linux/gcc/ -msse2 -m32
-mpreferred-stack-boundary=2 -S -o 1.s 1.i
bash-3.2$ cat 1.s
.file   "1.i"
.text
.globl foo
.type   foo, @function
foo:
leal4(%esp), %ecx
andl$-16, %esp
pushl   -4(%ecx)
pushl   %ebp
movl%esp, %ebp
pushl   %ecx
subl$36, %esp
movl16(%ecx), %eax
addl$15, %eax
addl$3, %eax
shrl$2, %eax
sall$2, %eax
subl%eax, %esp
movl%esp, -28(%ebp)
movl-28(%ebp), %eax
addl$15, %eax
shrl$4, %eax
sall$4, %eax
movl%eax, -28(%ebp)
movl-28(%ebp), %eax
movl%eax, -12(%ebp)
movl$2, -24(%ebp)
movl-12(%ebp), %eax
addl$1, %eax
movb$30, (%eax)
movl-24(%ebp), %eax
movl-4(%ebp), %ecx
leave
leal-4(%ecx), %esp
ret
.size   foo, .-foo
.globl bar
.type   bar, @function
bar:
pushl   %ebp
movl%esp, %ebp
andl$-16, %esp
subl$48, %esp
movss   .LC0, %xmm0
movlps  %xmm0, 32(%esp)
movhps  %xmm0, 40(%esp)
movl$30, 16(%esp)
xorps   %xmm0, %xmm0
movlps  32(%esp), %xmm0
movhps  40(%esp), %xmm0
movlps  %xmm0, (%esp)
movhps  %xmm0, 8(%esp)
callfoo
movl$0, %eax
leave
ret
.size   bar, .-bar
.section.rodata
.align 16
.LC0:
.long   1065353216
.long   0
.long   0
.long   0
.ident  "GCC: (GNU) 4.4.0 20080802 (experimental) [stack revision
138551]"
.section.note.GNU-stack,"",@progbits
bash-3.2$


-- 
   Summary: No need to align stack when incoming stack is aligned
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37009



[Bug target/36992] Very stange code for _mm_move_epi64

2008-08-02 Thread ubizjak at gmail dot com


--- Comment #11 from ubizjak at gmail dot com  2008-08-02 13:22 ---
Uh, clearing of top bits is explicitly stated in latest Software Developer's
Manual for both movq and movd. I'll fix these patterns.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ubizjak at gmail dot com
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-08-02 13:22:36
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36992



[Bug rtl-optimization/31485] C complex numbers, amd64 SSE, missed optimization opportunity

2008-08-02 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2008-08-02 13:18 ---
Doh, this is indeed completely broken ;)  I'll experiment with lowering
complex operations to vectorized form a bit.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31485



[Bug target/36992] Very stange code for _mm_move_epi64

2008-08-02 Thread ubizjak at gmail dot com


--- Comment #10 from ubizjak at gmail dot com  2008-08-02 13:10 ---
"←" in my previous post represents left pointing arrow, <.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36992



[Bug target/36992] Very stange code for _mm_move_epi64

2008-08-02 Thread ubizjak at gmail dot com


--- Comment #9 from ubizjak at gmail dot com  2008-08-02 13:08 ---
Hm, IA-32 Intel® Architecture Software Developer’s Manual says about movq:

Operation
MOVQ instruction when operating on MMX technology registers and memory
locations:
   DEST ← SRC;
MOVQ instruction when source and destination operands are XMM registers:
   DEST[63:0] ← SRC[63:0];
MOVQ instruction when source operand is XMM register and destination
operand is memory location:
   DEST ← SRC[63:0];
MOVQ instruction when source operand is memory location and destination
operand is XMM register:
   DEST[63:0] ← SRC;
   DEST[127:64] ← H;

Please note, that the documentation doesn't say anything about clearing
destination bits [127:64] when both source and destination are in XMM register.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36992



[Bug rtl-optimization/31485] C complex numbers, amd64 SSE, missed optimization opportunity

2008-08-02 Thread ubizjak at gmail dot com


--- Comment #4 from ubizjak at gmail dot com  2008-08-02 13:00 ---
(In reply to comment #3)
> Operations in loops should now be vectorized.  The original testcase is
> probably not worth vectorizing due to calling convention problems (_Complex T
> is not passed as a vector).

Not really. For some unknown reason, _Complex float is passed as a two element
vector in SSE register. This introduces (double!) store forwarding penalty,
since we have to split the value into SSE pair before processing. This is wrong
ABI design, as shown by comparing generated code from following example:

--cut here--
_Complex float testf (_Complex float a, _Complex float b)
{
  return a + b;
}

_Complex double testd (_Complex double a, _Complex double b)
{
  return a + b;
}
--cut here--

testf:
movq%xmm0, -8(%rsp)
movq%xmm1, -16(%rsp)
movss   -8(%rsp), %xmm0
movss   -4(%rsp), %xmm2
addss   -16(%rsp), %xmm0
addss   -12(%rsp), %xmm2
movss   %xmm0, -24(%rsp)
movss   %xmm2, -20(%rsp)
movq-24(%rsp), %xmm0
ret

testd:
addsd   %xmm3, %xmm1
addsd   %xmm2, %xmm0
ret


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31485



[Bug rtl-optimization/31485] C complex numbers, amd64 SSE, missed optimization opportunity

2008-08-02 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2008-08-02 12:21 ---
Operations in loops should now be vectorized.  The original testcase is
probably not worth vectorizing due to calling convention problems (_Complex T
is not passed as a vector).

Complex lowering could generate vectorized code directly though for operations
not in a loop.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-08-02 12:21:42
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31485



[Bug c++/37008] [4.2 Regression] OOM on a big c++ file

2008-08-02 Thread livubuntu at lalescu dot ro


--- Comment #4 from livubuntu at lalescu dot ro  2008-08-02 12:21 ---
(In reply to comment #2)
> g++: Internal error: Killed (program cc1plus)
> 
> this means your system ran out of memory and the operating system decided
> to kill the compiler.  Note that memory usage problems are unlikely to be
> fixed in a further release of GCC 4.2, but you might want to try GCC 4.3.1
> or later which uses less memory than GCC 4.1 for your testcase.
> 

I tried the GCC 4.3.1, of course, but I got very very many weird warnings for
the Qt included files. I tried the binary GCC 4.3.1 from Debian.

A collaborator reports that he compiled successfully FET for the same Qt as
mine, with GCC 4.3.1, but for 32 bit version. He obtained only a few warnings.

Thank you for fast reply. I'll do some more tests with GCC 4.3.1 and maybe
report bugs to Trolltech for Qt or report bugs here for GCC 4.3.1.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37008



[Bug tree-optimization/35252] No vectorization for complex arrays

2008-08-02 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2008-08-02 12:06 ---
Subject: Bug 35252

Author: rguenth
Date: Sat Aug  2 12:05:47 2008
New Revision: 138553

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=138553
Log:
2008-08-02  Richard Guenther  <[EMAIL PROTECTED]>

PR target/35252
* config/i386/sse.md (SSEMODE4S, SSEMODE2D): New mode iterators.
(ssedoublesizemode): New mode attribute.
(sse_shufps): Call gen_sse_shufps_v4sf.
(sse_shufps_1): Macroize.
(sse2_shufpd): Call gen_Sse_shufpd_v2df.
(sse2_shufpd_1): Macroize.
(vec_extract_odd, vec_extract_even): New expanders.
(vec_interleave_highv4sf, vec_interleave_lowv4sf,
vec_interleave_highv2df, vec_interleave_lowv2df): Likewise.
* i386.c (ix86_expand_vector_init_one_nonzero): Call
gen_sse_shufps_v4sf instead of gen_sse_shufps_1.
(ix86_expand_vector_set): Likewise.
(ix86_expand_reduc_v4sf): Likewise.

* lib/target-supports.exp (vect_extract_even_odd_wide) Add.
(vect_strided_wide): Likewise.
* gcc.dg/vect/fast-math-pr35982.c: Enable for
vect_extract_even_odd_wide.
* gcc.dg/vect/fast-math-vect-complex-3.c: Likewise.
* gcc.dg/vect/vect-1.c: Likewise.
* gcc.dg/vect/vect-107.c: Likewise.
* gcc.dg/vect/vect-98.c: Likewise.
* gcc.dg/vect/vect-strided-float.c: Likewise.
* gcc.dg/vect/slp-11.c: Enable for vect_strided_wide.
* gcc.dg/vect/slp-12a.c: Likewise.
* gcc.dg/vect/slp-12b.c: Likewise.
* gcc.dg/vect/slp-19.c: Likewise.
* gcc.dg/vect/slp-23.c: Likewise.
* gcc.dg/vect/slp-5.c: Likewise.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/vect/fast-math-pr35982.c
trunk/gcc/testsuite/gcc.dg/vect/fast-math-vect-complex-3.c
trunk/gcc/testsuite/gcc.dg/vect/slp-11.c
trunk/gcc/testsuite/gcc.dg/vect/slp-12a.c
trunk/gcc/testsuite/gcc.dg/vect/slp-12b.c
trunk/gcc/testsuite/gcc.dg/vect/slp-19.c
trunk/gcc/testsuite/gcc.dg/vect/slp-23.c
trunk/gcc/testsuite/gcc.dg/vect/slp-5.c
trunk/gcc/testsuite/gcc.dg/vect/vect-1.c
trunk/gcc/testsuite/gcc.dg/vect/vect-107.c
trunk/gcc/testsuite/gcc.dg/vect/vect-98.c
trunk/gcc/testsuite/gcc.dg/vect/vect-strided-float.c
trunk/gcc/testsuite/lib/target-supports.exp


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35252



[Bug rtl-optimization/36998] [4.3/4.4 regression] Ada bootstrap broken on i586-*-*

2008-08-02 Thread jakub at gcc dot gnu dot org


--- Comment #6 from jakub at gcc dot gnu dot org  2008-08-02 11:57 ---
Created an attachment (id=15999)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15999&action=view)
sp=reg.patch

Untested patch to set args_size to 0 when encountering (set (reg sp) (reg di))
etc.

I'll be offline for a week, can somebody please test the latter patch (the
former
is just a short term hack to disable the ICEs and keeping the unwind info
bogus)?

What perhaps still should be asserted is that on CALL_INSNs current args_size
is equal to INTVAL (XEXP (call, 1)) (probably just in the !after_p case).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36998



[Bug rtl-optimization/36998] [4.3/4.4 regression] Ada bootstrap broken on i586-*-*

2008-08-02 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2008-08-02 11:53 ---
Created an attachment (id=15998)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15998&action=view)
disable-asserts.patch

Quick hack to disable asserts.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36998



[Bug tree-optimization/36922] [4.4 Regression] ICE in tree-data-ref.c with -ftree-loop-linear

2008-08-02 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2008-08-02 11:50 ---
Confirmed by the dup.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||ice-on-valid-code
   Priority|P3  |P2
   Last reconfirmed|-00-00 00:00:00 |2008-08-02 11:50:13
   date||
Summary|ICE in tree-data-ref.c with |[4.4 Regression] ICE in
   |-ftree-loop-linear  |tree-data-ref.c with -ftree-
   ||loop-linear
   Target Milestone|--- |4.4.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36922



[Bug c++/37008] [4.2 Regression] OOM on a big c++ file

2008-08-02 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|Crash bug on a big c++ file |[4.2 Regression] OOM on a
   ||big c++ file
   Target Milestone|--- |4.2.5


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37008



[Bug c++/37008] Crash bug on a big c++ file

2008-08-02 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2008-08-02 11:48 ---
Created an attachment (id=15997)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15997&action=view)
unincluded testcase

Testcase that works with either -m32/-m64 and all libstdc++ versions.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37008



[Bug c++/37008] Crash bug on a big c++ file

2008-08-02 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2008-08-02 11:47 ---
g++: Internal error: Killed (program cc1plus)

this means your system ran out of memory and the operating system decided
to kill the compiler.  Note that memory usage problems are unlikely to be
fixed in a further release of GCC 4.2, but you might want to try GCC 4.3.1
or later which uses less memory than GCC 4.1 for your testcase.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||compile-time-hog, memory-hog
  Known to fail||4.2.4
  Known to work||4.1.2 4.3.1
   Last reconfirmed|-00-00 00:00:00 |2008-08-02 11:47:05
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37008



[Bug target/36851] [4.4 regression] cc1plus SEGV compiling strstream.cc on Tru64 UNIX

2008-08-02 Thread jh at suse dot cz


--- Comment #7 from jh at suse dot cz  2008-08-02 11:31 ---
Subject: Re:  [4.4 regression] cc1plus SEGV compiling strstream.cc on Tru64
UNIX

Looks like Aplha is not tuplified yet?

../../gcc/config/alpha/alpha.c: In function 'va_list_skip_additions':
../../gcc/config/alpha/alpha.c:5815: warning: assignment from
incompatible pointer type
../../gcc/config/alpha/alpha.c:5817: error: 'PHI_NODE' undeclared (first
use in this function)
../../gcc/config/alpha/alpha.c:5817: error: (Each undeclared identifier
is reported only once
../../gcc/config/alpha/alpha.c:5817: error: for each function it appears
in.)


Honza


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36851



[Bug bootstrap/36948] cc1.exe: internal compiler error: Segmentation fault

2008-08-02 Thread andry at inbox dot ru


--- Comment #7 from andry at inbox dot ru  2008-08-02 11:10 ---
(In reply to comment #6)
> This kind of path
> '--prefix=/c/_GccBuilds/gcc-4.3.1-install/mingw-32-i686' may be understood by
But this is Mingw compatible path, isn't it?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36948



[Bug target/36851] [4.4 regression] cc1plus SEGV compiling strstream.cc on Tru64 UNIX

2008-08-02 Thread jh at suse dot cz


--- Comment #6 from jh at suse dot cz  2008-08-02 10:49 ---
Subject: Re:  [4.4 regression] cc1plus SEGV compiling strstream.cc on Tru64
UNIX

> > If you provide a preprocessed testcase maybe he can.  Otherwise patches 
> > welcome
> > I guess.
> 
> Done.  Unfortunately, I won't be available for testing until September 1st.
> 
> If this cannot be resolved, I'll certainly need quite some guidance to fix
> it myself.

I was also at conference till 1st.  I will try to look at it now.

Honza


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36851



[Bug c++/37008] Crash bug on a big c++ file

2008-08-02 Thread livubuntu at lalescu dot ro


--- Comment #1 from livubuntu at lalescu dot ro  2008-08-02 07:30 ---
Created an attachment (id=15996)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15996&action=view)
The .ii file (archived with zip)

The .ii file obtained by -save-temps command to g++ (archived with zip)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37008



[Bug c++/37008] New: Crash bug on a big c++ file

2008-08-02 Thread livubuntu at lalescu dot ro
My open source application FET compiles OK with g++ 4.1.3. But with 4.2.3 it
crashes on a bigger file named rules.cpp. My FET program is available at
http://lalescu.ro/liviu/fet/

I have 1 GB of RAM, AMD dual core 4000+


The g++ version:

[EMAIL PROTECTED]:~/t/fet-5.6.1$ gcc -v
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v
--enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --enable-nls
--with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2
--enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)


The command and output error:

[EMAIL PROTECTED]:~/t/fet-5.6.1$ make
cd src/ && make -f Makefile
make[1]: Entering directory `/home/goghi/t/fet/src'
cd interface/ && make -f Makefile
make[2]: Entering directory `/home/goghi/t/fet/src/interface'
g++ -save-temps -c -pipe -fpermissive -O2 -D_REENTRANT -Wall -W -DQT_SHARED
-DQT_NO_DEBUG -DQT_QT3SUPPORT_LIB -DQT3_SUPPORT -DQT_XML_LIB -DQT_GUI_LIB
-DQT_NETWORK_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I.
-I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore
-I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtNetwork
-I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml
-I/usr/include/qt4/QtXml -I/usr/include/qt4/Qt3Support
-I/usr/include/qt4/Qt3Support -I/usr/include/qt4 -I../engine -I../../tmp
-I../../tmp -o ../../tmp/rules.o ../engine/rules.cpp
g++: warning: -pipe ignored because -save-temps specified
g++: Internal error: Killed (program cc1plus)
Please submit a full bug report.
See http://gcc.gnu.org/bugs.html> for instructions.
For Debian GNU/Linux specific bug reporting instructions, see
.

make[2]: *** [../../tmp/rules.o] Error 1
make[2]: Leaving directory `/home/goghi/t/fet/src/interface'
make[1]: *** [sub-interface-make_default] Error 2
make[1]: Leaving directory `/home/goghi/t/fet/src'
make: *** [sub-src-make_default] Error 2
[EMAIL PROTECTED]:~/t/fet-5.6.1$


I'll attach also the .ii file.


-- 
   Summary: Crash bug on a big c++ file
   Product: gcc
   Version: 4.2.3
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: livubuntu at lalescu dot ro


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37008