[Bug c/43385] [4.5 Regression] glibc regex testsuite failures

2010-03-23 Thread davem at gcc dot gnu dot org


--- Comment #3 from davem at gcc dot gnu dot org  2010-03-23 20:40 ---
Sorry, it's taking a long time to sort out the test case.  The
GLIBC regex code is huge and non-trivial.

However I did track down that it might be dependent upon optimization
options, for example I can reproduce with -mtune=niagara2 but I can't
reproduce without it.

I'll keep working on trying to cook up a test case.


-- 


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



[Bug c/43385] New: glibc regex testsuite failures

2010-03-15 Thread davem at gcc dot gnu dot org
posix/bug-regex11 and posix/bug-regex20 in the glibc testsuite
fail with gcc-4.5.0 on the trunk.  gcc-4.4.x and gcc-4.3.x do
not have this failure.

I'll try to put together a small minimal test case and also see
if i386 has the same problem to help diagnose this.


-- 
   Summary: glibc regex testsuite failures
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: davem at gcc dot gnu dot org
 GCC build triplet: sparc-linux-gnu
  GCC host triplet: sparc-linux-gnu
GCC target triplet: sparc-linux-gun


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



[Bug middle-end/34668] [4.3 Regression] ICE in find_compatible_field with -combine

2010-03-12 Thread davem at gcc dot gnu dot org


--- Comment #13 from davem at gcc dot gnu dot org  2010-03-12 20:58 ---
I'm still seeing this fail on 32-bit sparc with mainline:

home/davem/src/GIT/GCC/gcc/gcc/testsuite/gcc.dg/pr34668-2.c: In function
'set_conv_libfunc':
/home/davem/src/GIT/GCC/gcc/gcc/testsuite/gcc.dg/pr34668-2.c:5:15: error: type
mismatch in array reference
struct optab

struct optab

# .MEM_3 = VDEF .MEM_1(D)
optab_table[0].code = 57005;

/home/davem/src/GIT/GCC/gcc/gcc/testsuite/gcc.dg/pr34668-2.c:5:15: internal
compiler error: verify_stmts failed


-- 

davem at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


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



[Bug tree-optimization/38819] [4.3 Regression] trapping expression wrongly hoisted out of loop

2010-03-12 Thread davem at gcc dot gnu dot org


--- Comment #19 from davem at gcc dot gnu dot org  2010-03-12 21:00 ---
Like Eric I'm still seeing this fail on mainline on 32-bit sparc.


-- 


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



[Bug target/43004] sparc 64-bit stack slot allocation overlaps with alloca

2010-02-09 Thread davem at gcc dot gnu dot org


--- Comment #1 from davem at gcc dot gnu dot org  2010-02-09 22:08 ---
Ok, I now know a lot more about this bug.  It's effects were masked
before gcc-4.4 because we used to have the TFmode secondary reload
slot in every stack frame.  That got removed by my commit:

2009-01-04  David S. Miller  da...@davemloft.net

* config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
(STARTING_FRAME_OFFSET): Always set to zero.

The problem case is where the stack frame (with bias added) is only 8-byte
aligned.  The allocate_dynamic_stack_space() code ends up emitting (after
optimizations clean it up) something like:

0x1010b00 _dl_fini+864:   add  %i5, 0xf, %g4
0x1010b04 _dl_fini+868:   and  %g4, -16, %g4
0x1010b08 _dl_fini+872:   sub  %sp, %g4, %sp
0x1010b0c _dl_fini+876:   add  %sp, 0x8be, %i2
0x1010b10 _dl_fini+880:   b  %xcc, 0x10108bc _dl_fini+284
0x1010b14 _dl_fini+884:   and  %i2, -16, %i2

%i5 is the desired alloca length, and %i2 is the final alloca() buffer
pointer.

Consider a start condition such as:

%sp: 0x7fee399 + 2047 (BIAS) == 0x7feeb98
%i5: 0x20

We'll end up with a final %i2 value:

alloca area calculation:
   $i2 = (%sp + 0x8be) (0x8b3 == 2047 + 176 + 15)
   0x7feec37
   $i2 = -16
   0x7feec30

And this 0x7feec30 which is %sp + BIAS + 0xb8,
or 184 decimal into the stack frame.

We're supposed to use stack_frame + 176 decimal.  But
because of the way we've had to 16-byte align the final
pointer, we're now overflowing into the local variable
stack slots.


-- 


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



[Bug target/43004] sparc 64-bit stack slot allocation overlaps with alloca

2010-02-09 Thread davem at gcc dot gnu dot org


--- Comment #2 from davem at gcc dot gnu dot org  2010-02-09 22:13 ---
Reading further, the Sparc 64-bit ABI requires that the every stack frame
be 16 byte aligned.  And if that were the case this problem would never
happen.

Will try to determine how the stack is becomming only 8-byte aligned.


-- 


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



[Bug target/43004] sparc 64-bit stack slot allocation overlaps with alloca

2010-02-09 Thread davem at gcc dot gnu dot org


--- Comment #3 from davem at gcc dot gnu dot org  2010-02-10 00:49 ---
I've root caused this to the Linux kernel not 16-byte aligning thread
stacks when using the clone() system call (it was enforcing only 8-byte
alignment), and also signal stacks.

The seconday mem TFmode stack slot was hiding this bug.

All of this does point out, however, that GCC does a lot of unnecessary
alignment of the final alloca() buffer pointer.  Perhaps tweaking of
the MUST_ALIGN code in explow.c can fix this.


-- 

davem at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug target/43004] New: sparc 64-bit stack slot allocation overlaps with alloca

2010-02-08 Thread davem at gcc dot gnu dot org
When generating 64-bit code, stack slots allocated to
local variables can overlap alloca areas.

This bug may be specific to PIC code generation since the
test case I have (elf/dl-fini.c in GLIBC) is built with -fPIC.

I'm still trying to distill a small test case and, whether I
can or not, I'll attach some reproducer to this bug report.


-- 
   Summary: sparc 64-bit stack slot allocation overlaps with alloca
   Product: gcc
   Version: 4.4.4
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: davem at gcc dot gnu dot org
 GCC build triplet: sparc-unknown-linux-gnu
  GCC host triplet: sparc-unknown-linux-gnu
GCC target triplet: sparc-unknown-linux-gnu


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



[Bug bootstrap/21162] Build failure

2005-04-23 Thread davem at gcc dot gnu dot org

--- Additional Comments From davem at gcc dot gnu dot org  2005-04-22 18:08 
---
Yes, it should just work.  And it would have if you:

1) Make sure /lib64/libc.so.6 is installed.
2) Delete the file /etc/disable_64_gcc

Then gcc would output 64-bit code by default when the
uname command outputs sparc64.  You could then simply
run sparc32 bash to get an environment where uname outputs
plain sparc and this causes the Debian gcc to output 32-bit
code by default.

We plan on adding similar logic to the compiler driver itself.

I totally agree with you that when uname outputs sparc64
the compiler on the system should be outputting 64-bit code
by default which is what many (not just gcc's) configure
scripts and build trees expect.

Since this problem has to do with Debian's gcc behavior and
not with a gcc proper bug per-se, I'm closing this as invalid.


-- 
   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID


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


[Bug bootstrap/21162] Build failure

2005-04-23 Thread davem at gcc dot gnu dot org

--- Additional Comments From davem at gcc dot gnu dot org  2005-04-22 18:21 
---
Right, it can't compile a test program with -m64 because the
/lib64/libc.so.6 package is not installed.

Also, when you use sparc32 you should use it to create a
complete execution environment with sparc32 bash or whatever
shell you use.  You need to be in that environment when you
invoke the make, not just when you run the configure scripts.


-- 


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


[Bug bootstrap/21162] Build failure

2005-04-23 Thread davem at gcc dot gnu dot org

--- Additional Comments From davem at gcc dot gnu dot org  2005-04-22 18:27 
---
You may with to restart your build with the correct environment
setup, just to be safe.  Depending upon what you've enabled
it can take a long time :-)

Yes, the /etc/disable_64_gcc file is what prevents gcc from
outputting 64-bit code by default.


-- 


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


[Bug target/20673] [4.0 only] C PCH testsuite assembly comparison failure

2005-04-15 Thread davem at gcc dot gnu dot org

--- Additional Comments From davem at gcc dot gnu dot org  2005-04-15 19:26 
---
This should be fixed both in mainline and the 4.0 branch

-- 
   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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