[Bug c/25559] New: Internal compiler error when specifying vector_size(2)

2005-12-25 Thread guilhem at kaffe dot org
I have found this bug when playing a bit with the vector_size attribute. To
reproduce just compile the attached program with

gcc  -march=pentium4 runsimd.c

Result:
runsimd.c:1: internal compiler error: in round_up, at fold-const.c:11606
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.


-- 
   Summary: Internal compiler error when specifying vector_size(2)
   Product: gcc
   Version: 4.0.2
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: guilhem at kaffe dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug c/25559] Internal compiler error when specifying vector_size(2)

2005-12-25 Thread guilhem at kaffe dot org


--- Comment #1 from guilhem at kaffe dot org  2005-12-25 14:51 ---
Created an attachment (id=10554)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10554&action=view)
Testcase


-- 


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



[Bug c/25559] Internal compiler error when specifying vector_size(2)

2005-12-25 Thread guilhem at kaffe dot org


--- Comment #2 from guilhem at kaffe dot org  2005-12-25 14:52 ---
Changing vector_size(2) to vector_size(4) does not show any problem by the way.


-- 


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



[Bug c/25559] [4.0/4.1/4.2 Regression] Internal compiler error when specifying vector_size(2) of int

2005-12-25 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2005-12-25 14:57 ---
Reduced testcase:
typedef int __m64 __attribute__ ((vector_size(2)));


This is invalid as int is 4 bytes but you are trying to fit a vector of 2bytes
which is just wrong


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|major   |minor
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||ice-on-invalid-code
  Known to fail||4.0.0 4.1.0 4.2.0
  Known to work||3.4.0
   Last reconfirmed|-00-00 00:00:00 |2005-12-25 14:57:06
   date||
Summary|Internal compiler error when|[4.0/4.1/4.2 Regression]
   |specifying vector_size(2)   |Internal compiler error when
   ||specifying vector_size(2) of
   ||int
   Target Milestone|--- |4.0.3


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



[Bug bootstrap/23430] --with-comment configure option isn't documented

2005-12-25 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|NEW


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



[Bug gcov/profile/25560] New: Incorrect path assumptions

2005-12-25 Thread cyberax at elewise dot com
GCOV works incorrectly with the Windows-style paths. There are lots of places
in GCOV where it assumes that '/' is the only path separator.

As a result 'make_gcov_file_name' function will return invalid paths like
"a\b\c.cpp".


-- 
   Summary: Incorrect path assumptions
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: gcov/profile
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: cyberax at elewise dot com
 GCC build triplet: i686-mingw32
  GCC host triplet: i686-mingw32
GCC target triplet: i686-mingw32


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



[Bug gcov/profile/25560] Incorrect path assumptions

2005-12-25 Thread cyberax at elewise dot com


--- Comment #1 from cyberax at elewise dot com  2005-12-25 16:51 ---
Created an attachment (id=10555)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10555&action=view)
Quick fix

A quick fix for 'make_gcov_file_name'.


-- 


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



[Bug gcov/profile/25560] Incorrect path assumptions

2005-12-25 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2005-12-25 16:57 ---


*** This bug has been marked as a duplicate of 17040 ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug gcov/profile/17040] GCOV not working properly on Windows platforms

2005-12-25 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2005-12-25 16:57 ---
*** Bug 25560 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||cyberax at elewise dot com


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



[Bug libfortran/25561] New: Eventually get rid of the Alloc Stream Facility

2005-12-25 Thread jb at gcc dot gnu dot org
Currently the gfortran IO library is based on a design called the "Alloc Stream
Facility" (ASF), described in the paper 

 *  "Exploiting the advantages of mapped files for stream I/O",
 *  O. Krieger, M. Stumm and R. Umrau, "Proceedings of the 1992 Winter
 *  USENIX conference", p. 27-42.

The idea is to present an interface that avoids an extra copy when used
together with mmap, and the application uses ASF directly instead of
read/write. However, Fortran IO follows a traditional read/write model, and
thus the buffer copy is still needed in the library.

Thus, ASF makes the IO library unnecessarily complex and doesn't improve
performance. If ASF would provide any real benefit, it could be implemented in
the C library or the kernel, and any program using read/write, including the
gfortran IO library, would benefit.


-- 
   Summary: Eventually get rid of the Alloc Stream Facility
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: libfortran
AssignedTo: jb at gcc dot gnu dot org
ReportedBy: jb at gcc dot gnu dot org


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



[Bug debug/25562] New: [4.1/4.2 Regression] cannot debug VLA local

2005-12-25 Thread pinskia at gcc dot gnu dot org
Take the following code:
int main(void)
{
  int i = 7;
  int t[i];
  int j;
  for(j=0;jhttp://gcc.gnu.org/bugzilla/show_bug.cgi?id=25562



[Bug debug/25562] [4.1/4.2 Regression] cannot debug VLA local

2005-12-25 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.1.0


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



[Bug tree-optimization/25563] New: Assembler referenced static variable optimized out (bug in gcc or in code?)

2005-12-25 Thread drab at kepler dot fjfi dot cvut dot cz
I'm not sure whether it's a bug in gcc or rather a bug in the code. When I
compile the attached code with just "-O0" I get

$ nm test.o | grep _mmx_one
 r _mmx_one

but when I compile with "-O1" the variable is probably optimized out and I get

$ nm test.o | grep _mmx_one
 U _mmx_one

If it is a wrong code, what is the proper way to handle this situation to force
gcc not to optimize the static variable out completely?

--- test.c -
static short const _mmx_one[] = { 1, 1, 1, 1 };

void mmx_interpolate(unsigned char **ref,
   int pitch,
   int rounding)
{
  int dummy = 0;
  short _mmx_rc[4];
  register short *rc = _mmx_rc;

  _mmx_rc[0] = 1 - rounding;
  _mmx_rc[1] = 1 - rounding;
  _mmx_rc[2] = 1 - rounding;
  _mmx_rc[3] = 1 - rounding;

  asm volatile ("movl (%0), %3\n"
  "pxor %%mm7, %%mm7\n"
  "movq (%3), %%mm0\n"
  "movq 1(%3), %%mm1\n"
  "movq %%mm0, %%mm2\n"
  "movq %%mm1, %%mm3\n"
  "punpcklbw %%mm7, %%mm0\n"
  "punpcklbw %%mm7, %%mm1\n"
  "punpckhbw %%mm7, %%mm2\n"
  "punpckhbw %%mm7, %%mm3\n"
  "movq %%mm0, %%mm4\n"
  "movq %%mm2, %%mm5\n"
  "paddw %%mm1, %%mm0\n"
  "paddw %%mm3, %%mm2\n"
  "paddw (%2), %%mm0\n"
  "paddw (%2), %%mm2\n"
  "psrlw $1, %%mm2\n"
  "psrlw $1, %%mm0\n"
  "packuswb %%mm2, %%mm0\n"
  "movq (%3, %1), %%mm1\n"
  "movq 1(%3, %1), %%mm3\n"
  "movq %%mm1, %%mm2\n"
  "movq %%mm3, %%mm6\n"
  "punpcklbw %%mm7, %%mm1\n"
  "punpcklbw %%mm7, %%mm3\n"
  "punpckhbw %%mm7, %%mm2\n"
  "punpckhbw %%mm7, %%mm6\n"
  "paddw %%mm1, %%mm4\n"
  "paddw %%mm2, %%mm5\n"
  "paddw (%2), %%mm4\n"
  "paddw (%2), %%mm5\n"
  "paddw %%mm4, %%mm3\n"
  "paddw %%mm5, %%mm6\n"
  "psrlw $1, %%mm4\n"
  "psrlw $1, %%mm5\n"
  "paddw " "_mmx_one, %%mm3\n"
  "paddw " "_mmx_one, %%mm6\n"
  "packuswb %%mm5, %%mm4\n"
  "movq 1(%3), %%mm1\n"
  "movq %%mm1, %%mm2\n"
  "punpcklbw %%mm7, %%mm1\n"
  "punpckhbw %%mm7, %%mm2\n"
  "paddw %%mm1, %%mm3\n"
  "paddw %%mm2, %%mm6\n"
  "psrlw $2, %%mm3\n"
  "psrlw $2, %%mm6\n"
  "packuswb %%mm6, %%mm3\n"
  "movl 4(%0), %3\n"
  "movq %%mm0, (%3)\n"
  "movl 8(%0), %3\n"
  "movq %%mm4, (%3)\n"
  "movl 12(%0), %3\n"
  "movq %%mm3, (%3)\n"
  : "=r"(ref), "=r"(pitch), "=r"(rc), "=r"(dummy)
  : "0"(ref), "1"(pitch), "2"(rc), "3"(dummy)
  : "memory");
}



-- 
   Summary: Assembler referenced static variable optimized out (bug
in gcc or in code?)
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drab at kepler dot fjfi dot cvut dot cz


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



[Bug tree-optimization/25563] Assembler referenced static variable optimized out (bug in gcc or in code?)

2005-12-25 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2005-12-26 00:22 ---
Bug in your code:
the compiler has no way to knowing that  _mmx_one is used.

Use the attribute used to fix your code.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug tree-optimization/25564] New: Assembler referenced static variable optimized out (bug in gcc or in code?)

2005-12-25 Thread drab at kepler dot fjfi dot cvut dot cz
I'm not sure whether it's a bug in gcc or rather a bug in the code. When I
compile the attached code with just "-O0" I get

$ nm test.o | grep _mmx_one
 r _mmx_one

but when I compile with "-O1" the variable is probably optimized out and I get

$ nm test.o | grep _mmx_one
 U _mmx_one

If it is a wrong code, what is the proper way to handle this situation to force
gcc not to optimize the static variable out completely?

--- test.c -
static short const _mmx_one[] = { 1, 1, 1, 1 };

void mmx_interpolate(unsigned char **ref,
   int pitch,
   int rounding)
{
  int dummy = 0;
  short _mmx_rc[4];
  register short *rc = _mmx_rc;

  _mmx_rc[0] = 1 - rounding;
  _mmx_rc[1] = 1 - rounding;
  _mmx_rc[2] = 1 - rounding;
  _mmx_rc[3] = 1 - rounding;

  asm volatile ("movl (%0), %3\n"
  "pxor %%mm7, %%mm7\n"
  "movq (%3), %%mm0\n"
  "movq 1(%3), %%mm1\n"
  "movq %%mm0, %%mm2\n"
  "movq %%mm1, %%mm3\n"
  "punpcklbw %%mm7, %%mm0\n"
  "punpcklbw %%mm7, %%mm1\n"
  "punpckhbw %%mm7, %%mm2\n"
  "punpckhbw %%mm7, %%mm3\n"
  "movq %%mm0, %%mm4\n"
  "movq %%mm2, %%mm5\n"
  "paddw %%mm1, %%mm0\n"
  "paddw %%mm3, %%mm2\n"
  "paddw (%2), %%mm0\n"
  "paddw (%2), %%mm2\n"
  "psrlw $1, %%mm2\n"
  "psrlw $1, %%mm0\n"
  "packuswb %%mm2, %%mm0\n"
  "movq (%3, %1), %%mm1\n"
  "movq 1(%3, %1), %%mm3\n"
  "movq %%mm1, %%mm2\n"
  "movq %%mm3, %%mm6\n"
  "punpcklbw %%mm7, %%mm1\n"
  "punpcklbw %%mm7, %%mm3\n"
  "punpckhbw %%mm7, %%mm2\n"
  "punpckhbw %%mm7, %%mm6\n"
  "paddw %%mm1, %%mm4\n"
  "paddw %%mm2, %%mm5\n"
  "paddw (%2), %%mm4\n"
  "paddw (%2), %%mm5\n"
  "paddw %%mm4, %%mm3\n"
  "paddw %%mm5, %%mm6\n"
  "psrlw $1, %%mm4\n"
  "psrlw $1, %%mm5\n"
  "paddw " "_mmx_one, %%mm3\n"
  "paddw " "_mmx_one, %%mm6\n"
  "packuswb %%mm5, %%mm4\n"
  "movq 1(%3), %%mm1\n"
  "movq %%mm1, %%mm2\n"
  "punpcklbw %%mm7, %%mm1\n"
  "punpckhbw %%mm7, %%mm2\n"
  "paddw %%mm1, %%mm3\n"
  "paddw %%mm2, %%mm6\n"
  "psrlw $2, %%mm3\n"
  "psrlw $2, %%mm6\n"
  "packuswb %%mm6, %%mm3\n"
  "movl 4(%0), %3\n"
  "movq %%mm0, (%3)\n"
  "movl 8(%0), %3\n"
  "movq %%mm4, (%3)\n"
  "movl 12(%0), %3\n"
  "movq %%mm3, (%3)\n"
  : "=r"(ref), "=r"(pitch), "=r"(rc), "=r"(dummy)
  : "0"(ref), "1"(pitch), "2"(rc), "3"(dummy)
  : "memory");
}



-- 
   Summary: Assembler referenced static variable optimized out (bug
in gcc or in code?)
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: drab at kepler dot fjfi dot cvut dot cz


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



[Bug tree-optimization/25564] Assembler referenced static variable optimized out (bug in gcc or in code?)

2005-12-25 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2005-12-26 00:32 ---


*** This bug has been marked as a duplicate of 25563 ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug tree-optimization/25563] Assembler referenced static variable optimized out (bug in gcc or in code?)

2005-12-25 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2005-12-26 00:32 ---
*** Bug 25564 has been marked as a duplicate of this bug. ***


-- 


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



[Bug c/25565] New: GCC compiled with --target=powerpcle-*-eabi produces big-endian logic with little-endian ordering

2005-12-25 Thread aweiner at lsil dot com
I built GCC 4.0.2 with --target=powerpcle-440-eabi. The resulting GCC produces
little-endian objects but with big-endian logic (big-endian register and
load/store usage). I can force the compiler to use little-endian logic by
specifying -mlittle on the command line...but does powerpcle-*-eabi not imply a
default of little-endian for both byte ordering and logic? Secondary issue is
that the GCC libaries built with --target=poerpcle-*-eabi contain big-endian
logic and so will break with compiled code meant to use -mlittle.

Source:
typedef long long LL;
LL increment(LL x) {
return x+1;
}

Object compiled with "-O2":

 :
   0:   01 00 84 30 addic   r4,r4,1 /* big-endian logic, little-endian
ordering */
   4:   94 01 63 7c addze   r3,r3
   8:   20 00 80 4e blr

Object compiled with "-O2 -mlittle":
 :
   0:   01 00 63 30 addic   r3,r3,1 /* little-endian logic, little-endian
ordering */
   4:   94 01 84 7c addze   r4,r4
   8:   20 00 80 4e blr

Object compiled with "-O2 -mbig":
 :
   0:   30 84 00 01 addic   r4,r4,1 /* big-endian logic, big-endian
ordering */
   4:   7c 63 01 94 addze   r3,r3
   8:   4e 80 00 20 blr


-- 
   Summary: GCC compiled with --target=powerpcle-*-eabi produces
big-endian logic with little-endian ordering
   Product: gcc
   Version: 4.0.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: aweiner at lsil dot com


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



[Bug middle-end/25566] New: Variable length types and inlining

2005-12-25 Thread pinskia at gcc dot gnu dot org
According to the following comment:
  /* We cannot inline a function of the form

   void F (int i) { struct S { int ar[i]; } s; }

 Attempting to do so produces a catch-22.
 If walk_tree examines the TYPE_FIELDS chain of RECORD_TYPE/
 UNION_TYPE nodes, then it goes into infinite recursion on a
 structure containing a pointer to its own type.  If it doesn't,
 then the type node for S doesn't get adjusted properly when
 F is inlined.

 ??? This is likely no longer true, but it's too late in the 4.0
 cycle to try to find out.  This should be checked for 4.1.  */

We don't inline functions with variable length types but we should check this
out for 4.1 (but it is too late even for 4.1).


-- 
   Summary: Variable length types and inlining
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Keywords: missed-optimization, FIXME
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org


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



[Bug middle-end/25566] Variable length types and inlining

2005-12-25 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2005-12-26 03:58 ---
Oh, forgot to say this comment is in tree-inline.c.


-- 


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



[Bug middle-end/25566] Variable length types and inlining

2005-12-25 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |enhancement


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



[Bug middle-end/25522] zero-initialized constants are place in .bss

2005-12-25 Thread drepper at redhat dot com


--- Comment #5 from drepper at redhat dot com  2005-12-26 05:52 ---
> What happens if you use -fno-common?

In this case the variable gets the index of .bss in the symbol table instead of
using SHN_COMMON.


-- 


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



[Bug libfortran/25419] gfortran read does not take comma for default on one entry

2005-12-25 Thread jvdelisle at gcc dot gnu dot org


--- Comment #1 from jvdelisle at gcc dot gnu dot org  2005-12-26 06:00 
---
I have a fix for this already.  Patch for submottal soon.


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jvdelisle at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2005-12-26 06:00:20
   date||


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