[Bug libstdc++/15910] can't compile self defined void distance(std::vectorT, std::vectorT)

2005-08-11 Thread gdr at integrable-solutions dot net

--- Additional Comments From gdr at integrable-solutions dot net  
2005-08-11 06:31 ---
Subject: Re:  can't compile self defined void distance(std::vectorT, 
std::vectorT)

adah at netstd dot com [EMAIL PROTECTED] writes:
 
|  Furthermore, and more importantly, GCC bugzilla is the not the place
|  to record UNEXPECTED or PROBLEM with the C++ standard.
| 
| Is it a guideline of GCC Bugzilla that a PRoblem owing to the C++ Standard is 
| never considered a PRoblem at all? 
  
Ahem.  Can you read?
 
| If it is, please show me where I can read it.

I'm very willing to do so if you provide evidence that you can read.

| should be output.  If this function is in some namespace and the original 
| function call is not qualified, then an additional warning on argument-
| dependent lookup should be emitted.
| 
| Simple rules.  I do not think it is magic.

Surely, your rules do not require magic.  They just appear nonsensical to
me.  As argument dependent name lookup has become an essential part of
C++ libraries, begining the standard one.

| No.  If I put it simply, then this behaviour violates the rationale of 
| namespaces. 

Which rationale?

| This is not the behaviour I am currently requesting.  I just wanted to told 
| Wolfgang there is a third way to `fix' the problem which I prefer better than 
| his suggestions.

Essentially, you're here just to argue.

-- Gaby
 


-- 


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


[Bug libstdc++/15910] can't compile self defined void distance(std::vectorT, std::vectorT)

2005-08-11 Thread gdr at integrable-solutions dot net

--- Additional Comments From gdr at integrable-solutions dot net  
2005-08-11 06:46 ---
Subject: Re:  can't compile self defined void distance(std::vectorT, 
std::vectorT)

adah at netstd dot com [EMAIL PROTECTED] writes:

| Hi Gaby,
| 
| I have read Sutter's Modest Proposal on fixing ADL that you referred to me.  
If 
| you had told me earlier about this instead of bluntly telling me this was not 
a 
| GCC bug,

It still is NOT a GCC bug, no matter how you put it.  GCC
correctly implements the standard specifications.  Just because you
happen not to like the consequences of the rules under some
circumstances does not make it a GCC bug.  Furthermore, I've suggested
from the very outset that you take the issue to the C++ committee --
which if you have done, you would have discovered the many facets of
fixes you are discovering now. That was no bluntly telling you.  It
is not a GCC bug, it is a fact.  You would have learnt more about the
subject when you took it to the apporpriate place, is also a fact.
But, you were obsessed by the very idea that it must be a GCC bug,
rejecting outright suggestions to  take the issue to the appropriate
places and only  afterward half-admitting that is what you would have
done and are putting blame on other people for your irrational
refusal to give more thoughts to the issue and move and discuss it in
the apporpriate forums.  
 
-- Gaby


-- 


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


[Bug fortran/23323] New: Internal compiler error with CHARACTER functions and -fdefault-integer-8

2005-08-11 Thread georg dot denk at infineon dot com
When compiling the following subroutine test.F:

--- snip 
  SUBROUTINE BUG(ID,PARNAM)

  IMPLICIT NONE

C .. Scalar Arguments ..
  CHARACTER *8 PARNAM
  INTEGER  ID

C .. External Functions ..
  CHARACTER *8 PANAME
  EXTERNAL PANAME
C
  PARNAM = PANAME(ID)
C
  RETURN
  END
--- snap 

using 

gfortran -v -save-temps -fdefault-integer-8 -c test.F

gives an internal compiler error:

Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../../gcc-4.0.1/configure --prefix=/tmp2/denk/GCC4.0.1 --exec-p
refix=/tmp2/denk/GCC4.0.1/LINUXAMD64 --enable-languages=c,c++,f95,java --with-gm
p=/tmp2/denk/GCC4.0.1/LINUXAMD64 --with-mpfr=/tmp2/denk/GCC4.0.1
Thread model: posix
gcc version 4.0.1
 /share/kruemel/tmp2/denk/GCC4.0.1/LINUXAMD64/bin/../libexec/gcc/x86_64-unknown-
linux-gnu/4.0.1/cc1 -E -traditional-cpp -D_LANGUAGE_FORTRAN -quiet -v -iprefix /
share/kruemel/tmp2/denk/GCC4.0.1/LINUXAMD64/bin/../lib/gcc/x86_64-unknown-linux-
gnu/4.0.1/ test.F -mtune=k8 -fdefault-integer-8 -fpch-preprocess -o test.f
cc1: warning: command line option -fdefault-integer-8 is valid for F95 but not
 for C
ignoring nonexistent directory /share/kruemel/tmp2/denk/GCC4.0.1/LINUXAMD64/bin
/../lib/gcc/x86_64-unknown-linux-gnu/4.0.1/../../../../x86_64-unknown-linux-gnu/
include
ignoring duplicate directory /tmp2/denk/GCC4.0.1/LINUXAMD64/lib/gcc/x86_64-unkn
own-linux-gnu/4.0.1/include
ignoring nonexistent directory /tmp2/denk/GCC4.0.1/LINUXAMD64/lib/gcc/x86_64-un
known-linux-gnu/4.0.1/../../../../x86_64-unknown-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /share/kruemel/tmp2/denk/GCC4.0.1/LINUXAMD64/bin/../lib/gcc/x86_64-unknown-linu
x-gnu/4.0.1/include
 /usr/local/include
 /tmp2/denk/GCC4.0.1/include
 /usr/include
End of search list.
 /share/kruemel/tmp2/denk/GCC4.0.1/LINUXAMD64/bin/../libexec/gcc/x86_64-unknown-
linux-gnu/4.0.1/f951 test.f -ffixed-form -quiet -dumpbase test.F -mtune=k8 -auxb
ase test -version -fdefault-integer-8 -o test.s
GNU F95 version 4.0.1 (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.0.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
test.F: In function 'bug':
test.F:1: internal compiler error: in gfc_conv_string_tmp, at fortran/trans-expr
.c:782


Removing the option -fdefault-integer-8 gives a sucessful compile.

-- 
   Summary: Internal compiler error with CHARACTER functions and -
fdefault-integer-8
   Product: gcc
   Version: 4.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: georg dot denk at infineon dot com
CC: gcc-bugs at gcc dot gnu dot org,georg dot denk at
infineon dot com
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: Linux kruemel 2.4.21-32.0.1.ELsmp #1 SMP Tue Jun 7
12:33:30 MEST
GCC target triplet: x86_64-unknown-linux-gnu


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


[Bug c/23324] New: unsigned bitfield in struct not passed correctly as argument

2005-08-11 Thread lindig at cs dot uni-sb dot de
The following (generated) code fails an assertion that checks that values 
passed to a function are 
received correctly. This fails for one value: 

./gcc-4.1.1-ppc-cpp 
gcc-4.1.1-ppc.c:140: failed assertion `yv7.mv7 == dp7.mv7'
Abort trap

The particular value is an unsigned bitfield as part of a struct. The bug is 
likely to be related to inlining. 
The bug is detected in caller_bf7 but does not occur when the call to 
caller_bf6 is removed.

int main( int argc, char **argv )
{
caller_bf6 ();
caller_bf7 ();
return errors;
}

To reproduce the bug compile and run the attached code:

: tmp; /scratch/lindig/bin/gcc -O2 -o gcc-4.1.1-ppc-cpp gcc-4.1.1-ppc-cpp.c
: tmp; ./gcc-4.1.1-ppc-cpp 
gcc-4.1.1-ppc.c:140: failed assertion `yv7.mv7 == dp7.mv7'
Abort trap

: tmp; /scratch/lindig/bin/gcc -v
Using built-in specs.
Target: powerpc-apple-darwin7.9.0
Configured with: ../gcc/configure --prefix=/scratch/lindig --enable-languages=c 
: (reconfigured) ../
gcc/configure --prefix=/scratch/lindig --enable-languages=c : (reconfigured) 
../gcc/configure --
prefix=/scratch/lindig --enable-languages=c --no-create --no-recursion
Thread model: posix
gcc version 4.1.0 20050810 (experimental)

The code was generated by my test-code generator Quest: 
http://www.st.cs.uni-sb.de/~lindig/src/quest/index.html

I have reported the bug yesterday using gccbug but did not receive an email 
confirming the report. 
Therefore I'm filing it here again because I did not find it in the bug 
database.

# 1 gcc-4.1.1-ppc.c
# 0 built-in
# 1 command line
# 1 gcc-4.1.1-ppc.c
# 15 gcc-4.1.1-ppc.c
# 1 /usr/include/assert.h 1 3 4
# 45 /usr/include/assert.h 3 4
extern void __eprintf (const char *, const char *, unsigned, const char *)
__attribute__ ((noreturn));
# 16 gcc-4.1.1-ppc.c 2





# 1 /scratch/lindig/lib/gcc/powerpc-apple-darwin7.9.0/4.1.0/include/stdarg.h 
1 3 4
# 43 /scratch/lindig/lib/gcc/powerpc-apple-darwin7.9.0/4.1.0/include/stdarg.h 
3 4
typedef __builtin_va_list __gnuc_va_list;
# 105 
/scratch/lindig/lib/gcc/powerpc-apple-darwin7.9.0/4.1.0/include/stdarg.h 3 4
typedef __gnuc_va_list va_list;
# 22 gcc-4.1.1-ppc.c 2

extern int printf (char *, ...);
static int errors = 0;
static void failed( int line )
{ printf (failed in %s: %d\n, gcc-4.1.1-ppc.c, line); errors++; }
static union at6 { } vv6 = { };
static
struct et6
{
struct bt6
{
signed av6:6;
signed bv6:7;
signed cv6:6;
signed dv6:5;
unsigned char ev6;
unsigned int fv6;
long int gv6;
}
mv6;
unsigned long int nv6;
signed ov6:12;
signed pv6:3;
signed qv6:2;
signed rv6:10;
union ct6 { long int hv6; float iv6; float jv6; } sv6;
int *tv6;
union dt6 { double kv6; float lv6; } uv6;
}
wv6
=
{
{ 8, 9, 2, 4, '\x10', 67426805U, 1047191860L },
1366022414UL,
858,
1,
1,
305,
{ 1069379046L },
(int *) 358273621U,
{ 3318.041978 }
};
static double xv6 = 19239.101269;
static long long int yv6 = 1207859169L;
static int zv6 = 660195606;
static
union at6
callee_af6( struct et6 ap6, double bp6, long long int cp6, int dp6 )
{

((void) ((wv6.mv6.av6 == ap6.mv6.av6) ? 0 : (__eprintf (%s:%u: failed 
assertion `%s'\n, gcc-4.1.1-
ppc.c, 72, wv6.mv6.av6 == ap6.mv6.av6), 0)));
((void) ((wv6.mv6.bv6 == ap6.mv6.bv6) ? 0 : (__eprintf (%s:%u: failed 
assertion `%s'\n, gcc-4.1.1-
ppc.c, 73, wv6.mv6.bv6 == ap6.mv6.bv6), 0)));
((void) ((wv6.mv6.cv6 == ap6.mv6.cv6) ? 0 : (__eprintf (%s:%u: failed 
assertion `%s'\n, gcc-4.1.1-
ppc.c, 74, wv6.mv6.cv6 == ap6.mv6.cv6), 0)));
((void) ((wv6.mv6.dv6 == ap6.mv6.dv6) ? 0 : (__eprintf (%s:%u: failed 
assertion `%s'\n, gcc-4.1.1-
ppc.c, 75, wv6.mv6.dv6 == ap6.mv6.dv6), 0)));
((void) ((wv6.mv6.ev6 == ap6.mv6.ev6) ? 0 : (__eprintf (%s:%u: failed 
assertion `%s'\n, gcc-4.1.1-
ppc.c, 76, wv6.mv6.ev6 == ap6.mv6.ev6), 0)));
((void) ((wv6.mv6.fv6 == ap6.mv6.fv6) ? 0 : (__eprintf (%s:%u: failed 
assertion `%s'\n, gcc-4.1.1-
ppc.c, 77, wv6.mv6.fv6 == ap6.mv6.fv6), 0)));
((void) ((wv6.mv6.gv6 == ap6.mv6.gv6) ? 0 : (__eprintf (%s:%u: failed 
assertion `%s'\n, gcc-4.1.1-
ppc.c, 78, wv6.mv6.gv6 == ap6.mv6.gv6), 0)));
((void) ((wv6.nv6 == ap6.nv6) ? 0 : (__eprintf (%s:%u: failed assertion 
`%s'\n, gcc-4.1.1-ppc.c, 79, 
wv6.nv6 == ap6.nv6), 0)));
((void) ((wv6.ov6 == ap6.ov6) ? 0 : (__eprintf (%s:%u: failed assertion 
`%s'\n, gcc-4.1.1-ppc.c, 80, 
wv6.ov6 == ap6.ov6), 0)));
((void) ((wv6.pv6 == ap6.pv6) ? 0 : (__eprintf (%s:%u: failed assertion 
`%s'\n, gcc-4.1.1-ppc.c, 81, 
wv6.pv6 == ap6.pv6), 0)));
((void) ((wv6.qv6 == ap6.qv6) ? 0 : (__eprintf (%s:%u: failed assertion 
`%s'\n, gcc-4.1.1-ppc.c, 82, 
wv6.qv6 == ap6.qv6), 0)));
((void) ((wv6.rv6 == ap6.rv6) ? 0 : (__eprintf (%s:%u: failed assertion 
`%s'\n, gcc-4.1.1-ppc.c, 83, 
wv6.rv6 == ap6.rv6), 0)));
((void) ((wv6.sv6.hv6 == ap6.sv6.hv6) ? 0 : (__eprintf (%s:%u: failed 
assertion `%s'\n, 

[Bug c/23324] unsigned bitfield in struct not passed correctly as argument

2005-08-11 Thread lindig at cs dot uni-sb dot de

--- Additional Comments From lindig at cs dot uni-sb dot de  2005-08-11 
08:10 ---
Created an attachment (id=9468)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9468action=view)
Test case to reproduce the bug.

This is the same code that I included in the bug description.

-- 


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


[Bug tree-optimization/23320] [4.1 Regression] ICE in in base_addr_differ_p, at tree-data-ref.c:430

2005-08-11 Thread irar at il dot ibm dot com

--- Additional Comments From irar at il dot ibm dot com  2005-08-11 08:14 
---
Created an attachment (id=9469)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9469action=view)
Patch

Yes, you are right, I should check the type of the data-ref (array type in the
first case). And instead of the assert I'll add the check that both data-refs
are of pointer type in the second case.
I'll submit the changes after testing.
Thanks,
Ira

-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |irar at il dot ibm dot com
   |dot org |
 Status|NEW |ASSIGNED


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


[Bug c/23324] unsigned bitfield in struct not passed correctly as argument

2005-08-11 Thread lindig at cs dot uni-sb dot de

--- Additional Comments From lindig at cs dot uni-sb dot de  2005-08-11 
08:15 ---
The bitfield mv7 is actually signed, not unsigned:

struct et7
{
struct dt7 { float iv7; unsigned short int jv7; } kv7;
float lv7[0];
signed mv7:9;
short int nv7;
double ov7;
float pv7;
}
yv7


-- 


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


[Bug tree-optimization/23297] immediate uses hosed after CCP

2005-08-11 Thread rguenth at gcc dot gnu dot org

--- Additional Comments From rguenth at gcc dot gnu dot org  2005-08-11 
08:30 ---
Now that you describe what is going wrong, I remember having this problem 
earlier.
And even a fix.  Ugh.  Sorry for bothering you.

-- 


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


[Bug tree-optimization/23297] immediate uses hosed after CCP

2005-08-11 Thread rguenth at gcc dot gnu dot org

--- Additional Comments From rguenth at gcc dot gnu dot org  2005-08-11 
08:32 ---
Created an attachment (id=9470)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9470action=view)
patch fixing the problem

This is the patch which fixes the problem.  Whether this situation can happen
with an unpatched mainline is unclear to me.  What to do with bugreports like
this as well ;)  Leaving UNCONFIRMED.

-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED


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


[Bug target/23289] [4.1 Regression] tail call optimization not performed

2005-08-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-08-11 
08:59 ---
Subject: Bug 23289

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-08-11 08:59:22

Modified files:
gcc: ChangeLog 
gcc/config/i386: i386.c 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/gcc.target/i386: tailcall-1.c 

Log message:
2005-08-11  Richard Guenther  [EMAIL PROTECTED]

PR target/23289
* config/i386/i386.c (ix86_function_ok_for_sibcall): Handle
cases where we call to/from functions returning void.

* gcc.target/i386/tailcall-1.c: New testcase.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gccr1=2.9700r2=2.9701
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gccr1=1.851r2=1.852
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gccr1=1.5906r2=1.5907
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.target/i386/tailcall-1.c.diff?cvsroot=gccr1=NONEr2=1.1



-- 


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


[Bug target/23289] [4.1 Regression] tail call optimization not performed

2005-08-11 Thread rguenth at gcc dot gnu dot org

--- Additional Comments From rguenth at gcc dot gnu dot org  2005-08-11 
09:03 ---
Fixed.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug tree-optimization/23153] [4.1 Regression] code size regression from 4.0 on x86

2005-08-11 Thread rguenth at gcc dot gnu dot org


-- 
Bug 23153 depends on bug 23289, which changed state.

Bug 23289 Summary: [4.1 Regression] tail call optimization not performed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23289

   What|Old Value   |New Value

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

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


[Bug target/18649] terminate called after throwing - IOT/Abort trap (core dumped)

2005-08-11 Thread jkj at sco dot com

--- Additional Comments From jkj at sco dot com  2005-08-11 09:18 ---
On UnixWare I have a very similar failure. It seems to be -fPIC that's wreaking
the havoc. I have an almost identical test case, and it aborts with:
terminate called after throwing an instance of 'int'
terminate called recursively

This only happens when compiling a2.cpp with -fPIC and producing a .so. If you
link the two together, it works fine. This was with 3.4.4.

-- 


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


[Bug c++/23219] [4.1 Regression] ICE: Segmentation fault in decl_namespace_context

2005-08-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-08-11 
09:24 ---
Subject: Bug 23219

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-08-11 09:23:57

Modified files:
gcc/cp : ChangeLog name-lookup.c 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/g++.dg/parse: crash28.C 

Log message:
cp:
PR c++/23219
* name-lookup.c (pushtag): Process the template type before
altering the identifier lookup fields.  Remove unreachable code
creating an empty stub decl.
testsuite:
PR c++/23219
* g++.dg/parse/crash28.C: New.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gccr1=1.4846r2=1.4847
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/name-lookup.c.diff?cvsroot=gccr1=1.135r2=1.136
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gccr1=1.5907r2=1.5908
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/crash28.C.diff?cvsroot=gccr1=NONEr2=1.1



-- 


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


[Bug c++/23219] [4.1 Regression] ICE: Segmentation fault in decl_namespace_context

2005-08-11 Thread nathan at gcc dot gnu dot org

--- Additional Comments From nathan at gcc dot gnu dot org  2005-08-11 
09:29 ---
Fixed mainline and 4.0

2005-08-11  Nathan Sidwell  [EMAIL PROTECTED]

PR c++/23219
* name-lookup.c (pushtag): Process the template type before
altering the identifier lookup fields.  Remove unreachable code
creating an empty stub decl.



-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug c++/23219] [4.1 Regression] ICE: Segmentation fault in decl_namespace_context

2005-08-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-08-11 
09:31 ---
Subject: Bug 23219

CVSROOT:/cvs/gcc
Module name:gcc
Branch: gcc-4_0-branch
Changes by: [EMAIL PROTECTED]   2005-08-11 09:31:22

Modified files:
gcc/cp : ChangeLog name-lookup.c 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/g++.dg/parse: crash28.C 

Log message:
cp:
PR c++/23219
* name-lookup.c (pushtag): Process the template type before
altering the identifier lookup fields.
testsuite:
PR c++/23219
* g++.dg/parse/crash28.C: New.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.4648.2.74r2=1.4648.2.75
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/name-lookup.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.109.4.5r2=1.109.4.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.5084.2.328r2=1.5084.2.329
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/crash28.C.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=NONEr2=1.1.2.1



-- 


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


[Bug rtl-optimization/23322] [4.1 regression] performance regression, possibly related to caching

2005-08-11 Thread rguenth at gcc dot gnu dot org

--- Additional Comments From rguenth at gcc dot gnu dot org  2005-08-11 
10:30 ---
I cannot confirm your observations, instead, with -O2 timings are about the
same for 4.0.2 (20050728) and 4.1.0 (20050803), while with -O3 the 4.0.2
compiler seems to be about 2x faster even if the tree optimizers do a better
job in the 4.1 case.

One difference is:

(4.1)
.L37:
movl$0, (%eax)
movl$1074266112, 4(%eax)
addl$8, %eax
cmpl%eax, %edx
jne .L37

vs.

(4.0)
fldlinit_value
.L16:
fstl(%eax)
addl$8, %eax
cmpl%eax, %ecx
jne .L16

(known bug, I think - andrew will know the PR)

The other one is

(4.0)
.L8:
fldz
xorl%eax, %eax
fstl-16(%ebp)
.p2align 4,,15
.L11:
faddl   (%ebx,%eax,8)
incl%eax
cmpl%edx, %eax
fstl-16(%ebp)
jne .L11
fstp%st(0)
jmp .L10

vs.

(4.1)
fldz
xorl%eax, %eax
fstpl   -16(%ebp)
jmp .L31
.p2align 4,,7
.L43:
fstp%st(0)
.L31:
fldl-16(%ebp)
faddl   (%ebx,%eax,8)
incl%eax
cmpl%edx, %eax
fstl-16(%ebp)
jne .L43

which certainly explains the big difference.  This is just

L37:;
  result = 0.0;
  n = 0;

L8:;
  result = MEM[base: first, index: (double *) n, step: 8B] + result;
  n = n + 1;
  if (n != D.34008) goto L8; else goto L34;

btw. or

static double test0(double* first, double* last) {
double result = 0;
for (int n = 0; n  last - first; ++n) result += first[n];
return result;
}

Note that compiling this function stand-alone both produce identical
(good) assembly:

fldz
xorl%eax, %eax
.p2align 4,,15
.L5:
faddl   (%ecx,%eax,8)
incl%eax
cmpl%edx, %eax
jne .L5

so it looks to me that RTL optimization goes berzerk and messes things up
here.  The cerr effect may have to to sth with aliasing (though again at
the RTL level, I think).  IVOPTs dumps show

(4.0)
  # result_67 = PHI result_32(19), 0.0(17);
  # n_4 = PHI n_66(19), 0(17);
L6:;
  D.32905_127 = (unsigned int) n_4;
  D.32906_126 = (double *) D.32905_127;
  D.32907_125 = D.32906_126 * 8B;
  D.32908_124 = first_11 + D.32907_125;
  D.32848_69 = D.32908_124;
  #   VUSE init_value_5;
  #   VUSE data_12;
  #   VUSE Data_129;
  #   VUSE cerr_3;
  D.32849_64 = *D.32848_69;
  result_32 = D.32849_64 + result_67;
  n_66 = n_4 + 1;
  if (n_66 != D.32844_140) goto L34; else goto L35;

(4.1)
  # n_105 = PHI n_66(11), 0(9);
  # result_103 = PHI result_65(11), 0.0(9);
L8:;
  D.34086_22 = (double *) n_105;
  #   VUSE cerr_13;
  #   VUSE data_36;
  #   VUSE Data_27;
  D.34003_64 = MEM[base: first_11, index: D.34086_22, step: 8B];
  result_65 = D.34003_64 + result_103;
  n_66 = n_105 + 1;
  if (n_66 != D.34008_102) goto L33; else goto L34;

which shows there's no real difference in tree-level alias information.
For the separate function we do

  # n_27 = PHI n_19(3), 0(1);
  # result_25 = PHI result_18(3), 0.0(1);
L0:;
  D.1814_2 = (double *) n_27;
  #   VUSE TMT.8_20;
  D.1750_17 = MEM[base: first_7, index: D.1814_2, step: 8B];
  result_18 = D.1750_17 + result_25;
  n_19 = n_27 + 1;
  if (n_19 != D.1744_24) goto L9; else goto L10;

though.  I'll make this rtl-optimization until someone tries another 
architecture.

-- 
   What|Removed |Added

  Component|target  |rtl-optimization
   Keywords||missed-optimization
Summary|performance regression, |[4.1 regression] performance
   |possibly related to caching |regression, possibly related
   ||to caching


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


[Bug tree-optimization/22615] [4.1 Regression] ICE in first_vi_for_offset, at tree-ssa-structalias.c:2858

2005-08-11 Thread rguenth at gcc dot gnu dot org

--- Additional Comments From rguenth at gcc dot gnu dot org  2005-08-11 
10:44 ---
We inline all and get

void bar() ()
{
  char  D.1777;
  struct B * D.1776;
  char  D.1773;
  union C D.1772;

bb 0:
  D.1772.p = a;
  D.1776_5 = D.1772.q;
  D.1777_6 = D.1776_5-d;
  D.1773_7 = D.1777_6;
  *D.1773_7 = 0;
  return;

}

where we access the padding between c and i in struct A through an
object of type B.  This must be invalid code.  Even if it is, the
gcc_unreachable () is probably not a good idea - Danny, how should
we deal with this?  Ignore references to padding and just return
NULL from first_vi_for_offset?

There's a similar problem in get_constraint_for_component_ref which
I hit with array-aliasing and work-around by

*** get_constraint_for_component_ref (tree t
*** 2075,2082 
}
  /* assert that we found *some* field there. The user couldn't be
 accessing *only* padding.  */
!
! gcc_assert (curr);
}
else
if (dump_file  (dump_flags  TDF_DETAILS))
--- 2076,2084 
}
  /* assert that we found *some* field there. The user couldn't be
 accessing *only* padding.  */
! /* Still the user could access one past the end of an array
!embedded in a struct resulting in accessing *only* padding.  */
! /* gcc_assert (curr); */
}
else
if (dump_file  (dump_flags  TDF_DETAILS))


-- 
   What|Removed |Added

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


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


[Bug tree-optimization/22615] [4.1 Regression] ICE in first_vi_for_offset, at tree-ssa-structalias.c:2858

2005-08-11 Thread rguenth at gcc dot gnu dot org

--- Additional Comments From rguenth at gcc dot gnu dot org  2005-08-11 
10:53 ---
With the patch we make

_Z3barv:
.LFB6:
pushl   %ebp
.LCFI0:
movl%esp, %ebp
.LCFI1:
movb$0, a+1
popl%ebp
ret

out of it btw, which looks ok.

-- 


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


[Bug tree-optimization/15353] [tree-ssa] Merge two ifs if one subsumes the other.

2005-08-11 Thread rguenth at gcc dot gnu dot org

--- Additional Comments From rguenth at gcc dot gnu dot org  2005-08-11 
11:01 ---
Couldn't DOM do this at jump threading time? I.e.

  if (D.1286_3  D.1287_5) goto L3; else goto L1;

L1:;
  if (D.1286_3 == D.1287_5) goto L3; else goto L2;

during trying of threading through the jump at L1 merge the
two conditionals?

Just guessing...

-- 


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


[Bug java/23300] DECL_FIELD_OFFSET == 0 versus build_field_ref

2005-08-11 Thread rmathew at gcc dot gnu dot org

--- Additional Comments From rmathew at gcc dot gnu dot org  2005-08-11 
11:38 ---
(In reply to comment #2)
 
 
 I cannot debug it further as I debugging with an optimized compiled.

  cd $GCC_SRC_DIR/gcc/java
  touch class.c parse.y
  cd $GCC_BLD_DIR
  make BOOT_CFLAGS='-g3 -O0' bubblestrap

http://gcc.gnu.org/wiki/DebuggingGCC

-- 


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


[Bug java/23230] Wrong this used when call made to superclass which is also superclass of enclosing class

2005-08-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-08-11 
11:49 ---
Subject: Bug 23230

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-08-11 11:49:27

Modified files:
gcc/java   : ChangeLog java-gimplify.c parse.y 

Log message:
2005-08-10  Andrew Haley  [EMAIL PROTECTED]

* java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
type mismatches to make legal GIMPLE.

2005-08-10  Robin Green [EMAIL PROTECTED]

PR java/23230:
* parse.y (maybe_use_access_method): Generalize check from
java.lang.Object to any superclass of current_class

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/ChangeLog.diff?cvsroot=gccr1=1.1652r2=1.1653
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/java-gimplify.c.diff?cvsroot=gccr1=1.20r2=1.21
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/parse.y.diff?cvsroot=gccr1=1.550r2=1.551



-- 


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


[Bug target/23322] [4.1 regression] performance regression, possibly related to caching

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
12:01 ---
This is reg stack going funny so this is a target issue.

-- 
   What|Removed |Added

  Component|rtl-optimization|target


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


[Bug rtl-optimization/23324] unsigned bitfield in struct not passed correctly as argument

2005-08-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

  Component|c   |rtl-optimization
   Keywords||wrong-code


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


[Bug rtl-optimization/23324] [4.1 Regression] unsigned bitfield in struct not passed correctly as argument

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
12:22 ---
Confirmed,  This looks like an aliasing issue on the rtl level as -O2 
-fno-strict-aliasing works.

This also worked on the 4.0 branch.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
  GCC build triplet|powerpc-apple-darwin7.9.0   |
   GCC host triplet|powerpc-apple-darwin7.9.0   |
 GCC target triplet|powerpc-apple-darwin7.9.0   |powerpc-*-darwin*
   Keywords||alias
   Last reconfirmed|-00-00 00:00:00 |2005-08-11 12:22:54
   date||
Summary|unsigned bitfield in struct |[4.1 Regression] unsigned
   |not passed correctly as |bitfield in struct not
   |argument|passed correctly as argument
   Target Milestone|--- |4.1.0


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


[Bug rtl-optimization/23324] [4.1 Regression] unsigned bitfield in struct not accessed correctly

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
12:24 ---
Oh, and this is related to how we inline and then also inline the values of the 
static const variables (with 
-ftree-store-ccp).

-- 
   What|Removed |Added

Summary|[4.1 Regression] unsigned   |[4.1 Regression] unsigned
   |bitfield in struct not  |bitfield in struct not
   |passed correctly as argument|accessed correctly


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


[Bug rtl-optimization/23324] [4.1 Regression] unsigned bitfield in struct not accessed correctly

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
12:34 ---
CSE1 is where the differenet is between -O2 and -O2 -fno-strict-aliasing.

-- 


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


[Bug fortran/23323] Internal compiler error with CHARACTER functions and -fdefault-integer-8

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
12:47 ---


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

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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


[Bug fortran/20971] gfortran - internal compiler error on bad program -fdefault-integer-8

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
12:47 ---
*** Bug 23323 has been marked as a duplicate of this bug. ***

-- 
   What|Removed |Added

 CC||georg dot denk at infineon
   ||dot com


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


[Bug tree-optimization/22615] [4.1 Regression] ICE in first_vi_for_offset, at tree-ssa-structalias.c:2858

2005-08-11 Thread dberlin at dberlin dot org

--- Additional Comments From dberlin at gcc dot gnu dot org  2005-08-11 
12:55 ---
Subject: Re:  [4.1 Regression] ICE in
first_vi_for_offset, at tree-ssa-structalias.c:2858

On Thu, 2005-08-11 at 10:44 +, rguenth at gcc dot gnu dot org wrote:
 --- Additional Comments From rguenth at gcc dot gnu dot org  2005-08-11 
 10:44 ---
 We inline all and get
 
 void bar() ()
 {
   char  D.1777;
   struct B * D.1776;
   char  D.1773;
   union C D.1772;
 
 bb 0:
   D.1772.p = a;
   D.1776_5 = D.1772.q;
   D.1777_6 = D.1776_5-d;
   D.1773_7 = D.1777_6;
   *D.1773_7 = 0;
   return;
 
 }
 
 where we access the padding between c and i in struct A through an
 object of type B.  This must be invalid code.  Even if it is, the
 gcc_unreachable () is probably not a good idea - Danny, how should
 we deal with this?  Ignore references to padding and just return
 NULL from first_vi_for_offset?

I know what to do here. I've just been waiting as long as possible to
remove the assert because it also catches real bugs.
I actually plan on removing it today, and have bootstrapped and tested a
patch to do so.

 
 There's a similar problem in get_constraint_for_component_ref which
 I hit with array-aliasing and work-around by

 
 *** get_constraint_for_component_ref (tree t
 *** 2075,2082 
 }
   /* assert that we found *some* field there. The user couldn't be
  accessing *only* padding.  */
 !
 ! gcc_assert (curr);
 }
 else
 if (dump_file  (dump_flags  TDF_DETAILS))
 --- 2076,2084 
 }
   /* assert that we found *some* field there. The user couldn't be
  accessing *only* padding.  */
 ! /* Still the user could access one past the end of an array
 !embedded in a struct resulting in accessing *only* padding.  */
 ! /* gcc_assert (curr); */

You are right, but this can only occur with your patch, since it
wouldn't have had fields before, and thus it would have overlapped with
the actual variable, giving the right answer.  :)







-- 


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


[Bug java/23230] Wrong this used when call made to superclass which is also superclass of enclosing class

2005-08-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-08-11 
13:04 ---
Subject: Bug 23230

CVSROOT:/cvs/gcc
Module name:gcc
Branch: gcc-4_0-branch
Changes by: [EMAIL PROTECTED]   2005-08-11 13:03:51

Modified files:
gcc/java   : ChangeLog parse.y 

Log message:
2005-08-10  Robin Green [EMAIL PROTECTED]

PR java/23230:
* parse.y (maybe_use_access_method): Generalize check from
java.lang.Object to any superclass of current_class

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.1556.2.26r2=1.1556.2.27
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/parse.y.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.528.6.1r2=1.528.6.2



-- 


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


[Bug rtl-optimization/15265] delete_output_reload deletes necessary insn

2005-08-11 Thread rguenth at gcc dot gnu dot org

--- Additional Comments From rguenth at gcc dot gnu dot org  2005-08-11 
13:07 ---
4.1.0, 4.0.2 and 3.4.5 work with all -O0 -O1 -O2 -O3.
gcc (GCC) 3.3.3 (SuSE Linux) and gcc 3.3.6 abort with -O1.

I guess this is RESOLVED FIXED as far as gcc bugzilla is concerned?

-- 
   What|Removed |Added

  Known to fail||3.3.3 3.3.6
  Known to work||4.1.0 4.0.2 3.4.5


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


[Bug java/23230] Wrong this used when call made to superclass which is also superclass of enclosing class

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
13:26 ---
Fixed in 4.0.2.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.0.2


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


[Bug java/18131] [meta-bug] inner class problems in java front-end

2005-08-11 Thread pinskia at gcc dot gnu dot org


-- 
Bug 18131 depends on bug 23230, which changed state.

Bug 23230 Summary: Wrong this used when call made to superclass which is also 
superclass of enclosing class
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23230

   What|Old Value   |New Value

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

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


[Bug libfortran/23321] Direct unformatted read beyond EOF cores

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
13:31 ---
Confirmed.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-08-11 13:31:45
   date||


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


[Bug other/23325] New: gcc 64 bit build problem

2005-08-11 Thread sos at cal dot interrasystems dot com
Platform : AMD 64bit Opteron.
O/S : Redhat linux Advanced Server 3.0
Kernel Version : 2.4.21-1.1931.2.393.ent

When we try to build gcc 3.4.3, the build fails giving the following error.

/usr/bin/ld: cannot open crti.o: No such file or directory
collect2: ld returned 1 exit status
make[2]: *** [32/libgcc_s_32.so] Error 1
make[2]: *** Waiting for unfinished jobs
ranlib 32/libgcc.a

But crti.o is present at the path 
/usr/lib64/crti.o

-- 
   Summary: gcc 64 bit build problem
   Product: gcc
   Version: 3.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: other
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sos at cal dot interrasystems dot com
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug target/23325] gcc 64 bit build problem

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
13:33 ---
This is not a bug, it is trying to compile the 32bit multilib.

Use either --disable-multilib or install the 32bit libraries.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Component|other   |target
 Resolution||INVALID


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


[Bug tree-optimization/22555] array in struct disables salias subvars for other fields

2005-08-11 Thread rguenth at gcc dot gnu dot org

--- Additional Comments From rguenth at gcc dot gnu dot org  2005-08-11 
13:39 ---
Ok, patch finally has all latent problems fixed.  Maybe we can consider this for
4.2.

-- 
   What|Removed |Added

OtherBugsDependingO||23111
  nThis||
URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2005-
   ||08/msg00685.html
   Keywords||patch


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


[Bug fortran/23318] program works correctly with -g option but fails with -O option on LINUX

2005-08-11 Thread dir at lanl dot gov

--- Additional Comments From dir at lanl dot gov  2005-08-11 13:41 ---
In pulling the routines out, I forgot to set n1=1 and zero the others, but it
does not affect the results. The rest of the warning messages indicate that
ftnchek does not know how to correctly handle a program that does its own
dynamic memory management. In this case, there is enough information for ftnchek
to tell that the program is correct - if it analyzed the program and did the
math symbolically. I suspect that it is impossible to make ftnchek happy with
this type of program.

-- 


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


[Bug fortran/23318] program works correctly with -g option but fails with -O option on LINUX

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
13:43 ---
Hmm, -fno-tree-loop-im fixes it for some reason

-- 


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


[Bug tree-optimization/23318] [4.1 Regression] program works correctly with -g option but fails with -O option on LINUX

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
13:48 ---
Hmm, this worked in 4.0.0.

-- 
   What|Removed |Added

  Component|fortran |tree-optimization
   GCC host triplet|Suse Linux professional 9.3 |
 GCC target triplet||i686-linux
   Keywords||alias, wrong-code
Summary|program works correctly with|[4.1 Regression] program
   |-g option but fails with -O |works correctly with -g
   |option on LINUX |option but fails with -O
   ||option on LINUX
   Target Milestone|--- |4.1.0
Version|4.0.0   |4.1.0


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


[Bug libfortran/20006] $ format extension doesn't work

2005-08-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-08-11 
13:50 ---
Subject: Bug 20006

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-08-11 13:50:13

Modified files:
gcc/fortran: ChangeLog gfortran.h trans-decl.c trans.c 
 trans.h 
libgfortran: ChangeLog Makefile.am Makefile.in libgfortran.h 
libgfortran/io : format.c 
libgfortran/runtime: error.c main.c 
Added files:
gcc/testsuite/gfortran.dg: runtime_warning_1.f90 
libgfortran/runtime: compile_options.c 

Log message:
PR libfortran/20006
* gfortran.h: Add is_main_program member to symbol_attribute.
* trans-decl: Add a gfor_fndecl_set_std tree.
(gfc_build_builtin_function_decls): Create it.
(gfc_generate_function_code): Add this call at the beginning of
the main program.
* trans.c (gfc_generate_code): Move main_program and attr.
* trans.h: Add declaration for gfor_fndecl_set_std.

* Makefile.am: Add file runtime/compile_options.c.
* Makefile.in: Regenerate.
* libgfortran.h: Create structure compile_options_t. Define the
compile_options variable and GFC_STD_ macros.
* runtime/compile_options.c: New file.
* runtime/error.c (notify_std): New function.
* runtime/main.c (init): Call init_compile_options during
initialization.
* io/format.c: Use the new notify_std function for the $
descriptor extension.

* gfortran.dg/runtime_warning_1.f90: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gccr1=1.519r2=1.520
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/gfortran.h.diff?cvsroot=gccr1=1.79r2=1.80
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-decl.c.diff?cvsroot=gccr1=1.65r2=1.66
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans.c.diff?cvsroot=gccr1=1.27r2=1.28
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans.h.diff?cvsroot=gccr1=1.31r2=1.32
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/runtime_warning_1.f90.diff?cvsroot=gccr1=NONEr2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/ChangeLog.diff?cvsroot=gccr1=1.282r2=1.283
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/Makefile.am.diff?cvsroot=gccr1=1.40r2=1.41
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/Makefile.in.diff?cvsroot=gccr1=1.42r2=1.43
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/libgfortran.h.diff?cvsroot=gccr1=1.28r2=1.29
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/format.c.diff?cvsroot=gccr1=1.13r2=1.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/runtime/compile_options.c.diff?cvsroot=gccr1=NONEr2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/runtime/error.c.diff?cvsroot=gccr1=1.11r2=1.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/runtime/main.c.diff?cvsroot=gccr1=1.7r2=1.8



-- 


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


[Bug libfortran/20006] $ format extension doesn't work

2005-08-11 Thread fxcoudert at gcc dot gnu dot org

--- Additional Comments From fxcoudert at gcc dot gnu dot org  2005-08-11 
13:52 ---
This bug is fixed: we now have a framework for runtime warnings about standard
conformance, and we use it in this case.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.0.2


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


[Bug libgcj/23292] libjava build fails with recent version of GNU Make

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
13:53 ---
This seems like a bug in GNU make and should reported there instead as it could 
cause other issues.  
Seems like this should be turned off by default and have a way to turn it on 
for these makefiles who 
wants it.

-- 
   What|Removed |Added

  Component|java|libgcj


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


[Bug libfortran/20006] $ format extension doesn't work

2005-08-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-08-11 
13:53 ---
Subject: Bug 20006

CVSROOT:/cvs/gcc
Module name:gcc
Branch: gcc-4_0-branch
Changes by: [EMAIL PROTECTED]   2005-08-11 13:53:22

Modified files:
gcc/fortran: ChangeLog gfortran.h trans-decl.c trans.c 
 trans.h 
gcc/testsuite  : ChangeLog 
libgfortran: ChangeLog Makefile.am Makefile.in aclocal.m4 
 libgfortran.h 
libgfortran/io : format.c 
libgfortran/runtime: error.c main.c 

Log message:
PR libfortran/20006
* gfortran.h: Add is_main_program member to symbol_attribute.
* trans-decl: Add a gfor_fndecl_set_std tree.
(gfc_build_builtin_function_decls): Create it.
(gfc_generate_function_code): Add this call at the beginning of
the main program.
* trans.c (gfc_generate_code): Move main_program and attr.
* trans.h: Add declaration for gfor_fndecl_set_std.
* Makefile.am: Add file runtime/compile_options.c.
* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* libgfortran.h: Create structure compile_options_t. Define the
compile_options variable and GFC_STD_ macros.
* runtime/compile_options.c: New file.
* runtime/error.c (notify_std): New function.
* runtime/main.c (init): Call init_compile_options during
initialization.
* io/format.c: Use the new notify_std function for the $
descriptor extension.
* gfortran.dg/runtime_warning_1.f90: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.335.2.104r2=1.335.2.105
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/gfortran.h.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.58.2.13r2=1.58.2.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-decl.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.54.2.4r2=1.54.2.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.21.10.1r2=1.21.10.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans.h.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.23.2.4r2=1.23.2.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.5084.2.329r2=1.5084.2.330
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.163.2.76r2=1.163.2.77
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/Makefile.am.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.29.10.7r2=1.29.10.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/Makefile.in.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.30.10.6r2=1.30.10.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/aclocal.m4.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.6.12.3r2=1.6.12.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/libgfortran.h.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.23.8.3r2=1.23.8.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/format.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.9.12.3r2=1.9.12.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/runtime/error.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.9r2=1.9.12.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/runtime/main.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.6r2=1.6.12.1



-- 


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


[Bug target/23322] [4.1 regression] performance regression, possibly related to caching

2005-08-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

 CC||roger at eyesopen dot com
   Target Milestone|--- |4.1.0
Version|4.0.1   |4.1.0


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


[Bug libgcj/23292] libjava build fails with recent version of GNU Make

2005-08-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

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


[Bug tree-optimization/22471] [4.1 Regression] corrupted profile info with -O3 -fprofile-use

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
14:15 ---
Is this fixed?  profiledbootstrap works for me.

-- 


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


[Bug libstdc++/22205] [4.1 Regression] errors debug mode on aix

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
14:16 ---
A real good question is why does debug mode need link once at all?

-- 


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


[Bug libstdc++/22554] [4.1 Regression] pb_assoc header build and install overflows exec

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
14:18 ---
As I mentioned this effects more than AIX, though AIX's limits are lower than 
most other OS's

-- 
   What|Removed |Added

   GCC host triplet|powerpc-ibm-aix |
 GCC target triplet|powerpc-ibm-aix |


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


[Bug libfortran/22143] missing kinds 1 and 2 for eoshift and cshift

2005-08-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

   Target Milestone|--- |4.0.2


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


[Bug target/23250] [4.0/4.1 regression] 4.0.1 switch -mcallee-super-interworking generating wrong code for ARM7TDMI

2005-08-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-08-11 
14:20 ---
Subject: Bug 23250

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-08-11 14:20:25

Modified files:
gcc: ChangeLog 
gcc/config/arm : arm.c 

Log message:
PR target/23250
* arm.c (arm_override_options): If the user has selected callee-super-
interworking, then enable normal interworking.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gccr1=2.9703r2=2.9704
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/arm.c.diff?cvsroot=gccr1=1.471r2=1.472



-- 


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


[Bug target/23250] [4.0/4.1 regression] 4.0.1 switch -mcallee-super-interworking generating wrong code for ARM7TDMI

2005-08-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-08-11 
14:33 ---
Subject: Bug 23250

CVSROOT:/cvs/gcc
Module name:gcc
Branch: gcc-4_0-branch
Changes by: [EMAIL PROTECTED]   2005-08-11 14:33:19

Modified files:
gcc: ChangeLog 
gcc/config/arm : arm.c 

Log message:
PR target/23250
* arm.c (arm_override_options): If the user has selected callee-super-
interworking, then enable normal interworking.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=2.7592.2.362r2=2.7592.2.363
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/arm/arm.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.430.2.2r2=1.430.2.3



-- 


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


[Bug target/23250] [4.0/4.1 regression] 4.0.1 switch -mcallee-super-interworking generating wrong code for ARM7TDMI

2005-08-11 Thread rearnsha at gcc dot gnu dot org

--- Additional Comments From rearnsha at gcc dot gnu dot org  2005-08-11 
14:35 ---
Fixed.

-- 
   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Bug target/23322] [4.1 regression] performance regression, possibly related to caching

2005-08-11 Thread roger at eyesopen dot com

--- Additional Comments From roger at eyesopen dot com  2005-08-11 14:56 
---
I'll take a look, but on first inspection this looks more like a register
allocation issue than a reg-stack problem.  In the first (4.0) case, the
accumulator result is assigned a hard register in the loop, whilst in
the second (4.1) it is being placed in memory, at -16(%ebp).  This may also
explain why extracting that loop into a stand-alone function produces
optimal/original code, as the register allocator gets less confused by other
influences in the function.  The extracted code is also even better than 4.0's,
as it avoids writing result to memory on each iteration (store sinking).

The second failure does show an interesting reg-stack/reg-alloc interaction
though.  The hot accumulator value is live on the backedge and the exit
edge of the loop but not on the incoming edge.  Clearly, the best fix is to
make this value live on the incoming edge, but failing that it is actually
better to prevent it being live on the back and exit edges, and add compensation
code after the loop.  i.e. if the store to result in the loop used fstpl, you
wouldn't need to fstp %st(0) on each loop iteration, but would instead need a
compensating fldl after the loop.

I'm not sure how easy it would be to teach GCC's register allocation to take
these considerations into account, or failing that, whether reg-stack could be
tweaked/hacked to locally fix this up.  But the fundamental problem is that
reg-alloc should assign result to a hard resigster as it clearly knows there
are enough available in that block.

reg-stack.c is just doing what its told, and in this case its being told to
do something stupid.


-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-08-11 14:56:31
   date||


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


[Bug tree-optimization/23326] New: [4.0 Regression] Wrong code from forwprop

2005-08-11 Thread rguenth at gcc dot gnu dot org
The following testcase reduced from Kopete is miscompiled at -O2

struct Bar { bool is() const; int status() const; };

void foobar(void);
void foobar2(void);

void Foo(const Bar x, const Bar y)
{
  const bool wasOffline = !x.is();
  const bool isOffline = !y.is();
  if (wasOffline || y.status() == 10)
foobar();
  if (wasOffline != isOffline)
foobar2();
}

.t23.mergephi:
bb 0:
  D.1589_3 = is (x_2);
  wasOffline_4 = !D.1589_3;
  D.1590_6 = is (y_5);
  isOffline_7 = !D.1590_6;
  if (wasOffline_4) goto L1; else goto L0;

L0:;
  D.1596_10 = status (y_5);
  if (D.1596_10 == 10) goto L1; else goto L5;

L1:;
  foobar ();

L5:;
  if (wasOffline_4 != isOffline_7) goto L6; else goto L7;

L6:;
  foobar2 ();

L7:;
  return;

.t24.forwprop:
bb 0:
  D.1589_3 = is (x_2);
  D.1590_6 = is (y_5);
  isOffline_7 = !D.1590_6;
  if (D.1589_3 == 0) goto L1; else goto L0;

L0:;
  D.1596_10 = status (y_5);
  if (D.1596_10 == 10) goto L1; else goto L5;

L1:;
  foobar ();

L5:;
  if (D.1589_3 != 0) goto L6; else goto L7;

L6:;
  foobar2 ();

L7:;
  return;

note that the comparison preceding foobar2() is hosed now,
we even don't use isOffline or D.1590 anymore.

-- 
   Summary: [4.0 Regression] Wrong code from forwprop
   Product: gcc
   Version: 4.0.2
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: critical
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org,matz at suse dot de


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


[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop

2005-08-11 Thread rguenth at gcc dot gnu dot org


-- 
   What|Removed |Added

  Known to fail||4.0.2
  Known to work||4.1.0
   Target Milestone|--- |4.0.2


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


[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
15:29 ---
Confirmed.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-08-11 15:29:17
   date||


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


[Bug tree-optimization/15353] [tree-ssa] Merge two ifs if one subsumes the other.

2005-08-11 Thread law at redhat dot com

--- Additional Comments From law at redhat dot com  2005-08-11 15:43 ---
Subject: Re:  [tree-ssa] Merge two ifs if
one subsumes the other.

On Thu, 2005-08-11 at 11:01 +, rguenth at gcc dot gnu dot org wrote:
 --- Additional Comments From rguenth at gcc dot gnu dot org  2005-08-11 
 11:01 ---
 Couldn't DOM do this at jump threading time? I.e.
 
   if (D.1286_3  D.1287_5) goto L3; else goto L1;
 
 L1:;
   if (D.1286_3 == D.1287_5) goto L3; else goto L2;
 
 during trying of threading through the jump at L1 merge the
 two conditionals?
Jump threading isn't particularly well suited for this kind of
optimization.  

jeff




-- 


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


[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
15:51 ---
Oh, this is truely fixed for 4.1 and not a latent bug there.

-- 


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


[Bug tree-optimization/15353] [tree-ssa] Merge two ifs if one subsumes the other.

2005-08-11 Thread trt at acm dot org

--- Additional Comments From trt at acm dot org  2005-08-11 15:52 ---
I think http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21643 is closely related.

-- 


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


[Bug target/23150] 20050713-1.c fails on arm-none-eabi with -O2 or -Os.

2005-08-11 Thread rearnsha at gcc dot gnu dot org

--- Additional Comments From rearnsha at gcc dot gnu dot org  2005-08-11 
15:55 ---
The problem seems to be related to the fact that in this configuration the
compiler has decided that bar2 can tailcall foo2.  In order to do this it then
has to swap x  y in place (well, with one temporary copy on the stack).  But
the code emitted to do this appears to be completely bogus in the first rtl
dump.  For some reason this same code does not use a tailcall when -mabi=atpcs
is used.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
  Known to fail||4.1.0
   Last reconfirmed|-00-00 00:00:00 |2005-08-11 15:55:15
   date||


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


[Bug regression/23327] New: Improper removal of struct field assignments by optimizer

2005-08-11 Thread gcczilla at achurch dot org
GCC 4.0.0 and later optimize out struct assignments inappropriately when the
struct is used as an input to an asm().  For example, in:

struct {int a,b} args;
a

-- 
   Summary: Improper removal of struct field assignments by
optimizer
   Product: gcc
   Version: 4.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: regression
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gcczilla at achurch dot org
CC: gcc-bugs at gcc dot gnu 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=23327


[Bug regression/23328] New: Improper removal of struct field assignments by optimizer

2005-08-11 Thread gcczilla at achurch dot org
GCC 4.0.0 and later optimize out struct assignments inappropriately when the
struct is used as an input to an asm().  For example, in:

int foo(int a, int b) {
struct {int a,b} args;
args.a = a; args.b = b;
asm(... :  : S (args));
}

the args.a and args.b assignments are optimized out (with -O3 at least) despite
the structure being specified as an input to the asm().  See attached files.

-- 
   Summary: Improper removal of struct field assignments by
optimizer
   Product: gcc
   Version: 4.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: regression
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gcczilla at achurch dot org
CC: gcc-bugs at gcc dot gnu 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=23328


[Bug regression/23327] Improper removal of struct field assignments by optimizer

2005-08-11 Thread gcczilla at achurch dot org

--- Additional Comments From gcczilla at achurch dot org  2005-08-11 16:00 
---
Sorry, accidentally submitted while typing--refiled as bug 23328.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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


[Bug regression/23328] Improper removal of struct field assignments by optimizer

2005-08-11 Thread gcczilla at achurch dot org

--- Additional Comments From gcczilla at achurch dot org  2005-08-11 16:01 
---
Created an attachment (id=9473)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9473action=view)
Sample source file demonstrating bug


-- 


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


[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
16:03 ---
Created an attachment (id=9474)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9474action=view)
Patch which fixes but needs testing

This patch fixes the problem by continuing if we don't have a SSA_NAME or
zero/one in the conditional.

Richard if you could test this for me, that would be nice.

-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pinskia at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED


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


[Bug rtl-optimization/15265] delete_output_reload deletes necessary insn

2005-08-11 Thread matz at suse dot de

--- Additional Comments From matz at suse dot de  2005-08-11 16:13 ---
I don't think this is actually fixed in reload1.c.  Perhaps it is hidden 
by other changes, so that the particular miscompilation doesn't happen 
anymore, but even HEAD reload1.c contains the questionable double counting 
of inherited operands.  Might be with enough work (perhaps by disabling 
some tree-ssa passes, but retaining -O1) we can still make it fail with 
mainline. 

-- 


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


[Bug regression/23328] Improper removal of struct field assignments by optimizer

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
16:48 ---
The code is invalid as you don't say you going to access memory.
either mark the asm as clobbers memory (which is not fully true) or use the 
following replacement asm 
(which works):
asm(mov 0(%%esi),%%eax; mov 4(%%esi),%%edx; add %%edx,%%eax;
: =a (c)
: S (args)
,m (args)
: edx);

It says to the compiler that args is accessed as memory.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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


[Bug other/22368] [meta-bugs] mis-match types in GCC

2005-08-11 Thread pinskia at gcc dot gnu dot org


-- 
Bug 22368 depends on bug 23315, which changed state.

Bug 23315 Summary: java produces mismatch types in MODIFY_EXPR, down cast
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23315

   What|Old Value   |New Value

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

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


[Bug java/23315] java produces mismatch types in MODIFY_EXPR, down cast

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
16:50 ---
This was fixed by:
2005-08-10  Andrew Haley  [EMAIL PROTECTED]

* java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
type mismatches to make legal GIMPLE.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.1.0


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


[Bug java/23314] java produces mismatch types in MODIFY_EXPR

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
16:50 ---
Fixed by:
2005-08-10  Andrew Haley  [EMAIL PROTECTED]

* java-gimplify.c (java_gimplify_modify_expr): Fix any pointer
type mismatches to make legal GIMPLE.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.1.0


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


[Bug other/22368] [meta-bugs] mis-match types in GCC

2005-08-11 Thread pinskia at gcc dot gnu dot org


-- 
Bug 22368 depends on bug 23314, which changed state.

Bug 23314 Summary: java produces mismatch types in MODIFY_EXPR
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23314

   What|Old Value   |New Value

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

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


[Bug target/22225] Tru64 UNIX testsuite failure: gcc.dg/vect/pr18536.c: ICE in in alphaev4_insn_pipe

2005-08-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-08-11 
16:56 ---
Subject: Bug 5

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-08-11 16:56:33

Modified files:
gcc: ChangeLog 
gcc/config/alpha: alpha.c 

Log message:
PR target/5
* config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for
insn types not present on ev4.
(alphaev5_insn_pipe): Similarly.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gccr1=2.9704r2=2.9705
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/alpha/alpha.c.diff?cvsroot=gccr1=1.433r2=1.434



-- 


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


[Bug middle-end/21992] [4.1 regression] [unit-at-a-time] testsuite failure: many objc execution tests fail, first objc/execute/_cmd.m execution

2005-08-11 Thread hp at gcc dot gnu dot org

--- Additional Comments From hp at gcc dot gnu dot org  2005-08-11 16:59 
---
Clarification to comment #18; the newly-enabled-for-all-targets try-catch-8.m
(PR 23306) fails (so there was *one* failure in the objc testsuite at the time
the above commit was made).

-- 


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


[Bug target/22225] Tru64 UNIX testsuite failure: gcc.dg/vect/pr18536.c: ICE in in alphaev4_insn_pipe

2005-08-11 Thread rth at gcc dot gnu dot org

--- Additional Comments From rth at gcc dot gnu dot org  2005-08-11 16:59 
---
Fixed.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug target/22225] Tru64 UNIX testsuite failure: gcc.dg/vect/pr18536.c: ICE in in alphaev4_insn_pipe

2005-08-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

   Target Milestone|--- |4.1.0


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


[Bug rtl-optimization/15265] delete_output_reload deletes necessary insn

2005-08-11 Thread giovannibajo at libero dot it

--- Additional Comments From giovannibajo at libero dot it  2005-08-11 
17:05 ---
Bernd, do you believe this is taken care of by the reload branch?

-- 
   What|Removed |Added

 CC||bernds at gcc dot gnu dot
   ||org


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


[Bug tree-optimization/23329] New: hack in may_propagate_copy should be able to removed

2005-08-11 Thread pinskia at gcc dot gnu dot org
The hack in may_propagate_copy:
  /* FIXME.  GIMPLE is allowing pointer assignments and comparisons of
 pointers that have different alias sets.  This means that these
 pointers will have different memory tags associated to them.

 If we allow copy propagation in these cases, statements de-referencing
 the new pointer will now have a reference to a different memory tag
 with potentially incorrect SSA information.

 This was showing up in libjava/java/util/zip/ZipFile.java with code
 like:

struct java.io.BufferedInputStream *T.660;
struct java.io.BufferedInputStream *T.647;
struct java.io.InputStream *is;
struct java.io.InputStream *is.662;
[ ... ]
T.660 = T.647;
is = T.660; -- This ought to be type-casted
is.662 = is;

 Also, f/name.c exposed a similar problem with a COND_EXPR predicate
 that was causing DOM to generate and equivalence with two pointers of
 alias-incompatible types:

struct _ffename_space *n;
struct _ffename *ns; 
[ ... ]
if (n == ns)
  goto lab;
...
lab:
return n;
   
 I think that GIMPLE should emit the appropriate type-casts.  For the
 time being, blocking copy-propagation in these cases is the safe thing
 to do.  */

Should be able to removed now as both the DOM and java front-ends issues have 
been fixed now.

PR 22368 referenced the bugs which were filed so this hack could be removed.  
Even though PR 22368 
references more than what is needed to remove this hack, I am going to mark 
this new bug as 
depending on that bug.

-- 
   Summary: hack in may_propagate_copy should be able to removed
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org
CC: dnovillo at gcc dot gnu dot org,gcc-bugs at gcc dot gnu
dot org
 BugsThisDependsOn: 22368


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


[Bug other/22368] [meta-bugs] mis-match types in GCC

2005-08-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

OtherBugsDependingO||23329
  nThis||


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


[Bug other/22368] [meta-bugs] mis-match types in GCC

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
17:06 ---
(In reply to comment #6)
 Note I think I already fixed the DOM problem in PR 22335.

And now the java front-end bug has been fixed, maybe I should go ahead and test 
a patch to remove 
the hack from may_propagate_copy.

I also filed PR 23329 for the removal of the hack.

-- 
   What|Removed |Added

OtherBugsDependingO|23329   |
  nThis||


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


[Bug tree-optimization/23329] hack in may_propagate_copy should be able to removed

2005-08-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

  BugsThisDependsOn|22368   |


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


[Bug tree-optimization/23329] hack in may_propagate_copy should be able to removed

2005-08-11 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

  BugsThisDependsOn||22368


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


[Bug tree-optimization/23330] New: FIXME from passes.c: pass_may_alias should be a TODO item

2005-08-11 Thread pinskia at gcc dot gnu dot org
FIXME from passes.c:
  /* FIXME: SRA may generate arbitrary gimple code, exposing new
 aliased and call-clobbered variables.  As mentioned below,
 pass_may_alias should be a TODO item.  */

  /* FIXME: May alias should a TODO but for 4.0.0,
 we add may_alias right after fold builtins
 which can create arbitrary GIMPLE.  */

Just a bug to track progress on this FIXME.

-- 
   Summary: FIXME from passes.c: pass_may_alias should be a TODO
item
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug classpath/23238] split-for-gcj.sh should use CONFIG_SHELL

2005-08-11 Thread cvs-commit at developer dot classpath dot org

--- Additional Comments From cvs-commit at developer dot classpath dot org  
2005-08-11 17:11 ---
Subject: Bug 23238

CVSROOT:/cvsroot/classpath
Module name:classpath
Branch: 
Changes by: Tom Tromey [EMAIL PROTECTED]  05/08/11 16:40:53

Modified files:
.  : ChangeLog configure.ac 
lib: gen-classlist.sh.in 

Log message:
For PR classpath/23238:
* lib/gen-classlist.sh.in: Use @SHELL@; invoke split-for-gcj.sh
with it.
* configure.ac (SH): Removed subst.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.4384tr2=1.4385r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/configure.ac.diff?tr1=1.97tr2=1.98r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/lib/gen-classlist.sh.in.diff?tr1=1.28tr2=1.29r1=textr2=text






-- 


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


[Bug middle-end/23312] [4.0/4.1 Regression] ACATS ICE (32) gimplify_one_sizepos, at gimplify.c:4659

2005-08-11 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-08-11 
17:12 ---
Subject: Bug 23312

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-08-11 17:12:31

Modified files:
gcc: ChangeLog gimplify.c 

Log message:
PR middle-end/23312
* gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
before using TYPE_IS_SIZETYPE.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gccr1=2.9705r2=2.9706
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/gimplify.c.diff?cvsroot=gccr1=2.144r2=2.145



-- 


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


[Bug tree-optimization/23329] hack in may_propagate_copy should be able to removed

2005-08-11 Thread giovannibajo at libero dot it

--- Additional Comments From giovannibajo at libero dot it  2005-08-11 
17:13 ---
I don't think the hack should be removed until a verifier is committed, 
otherwise we could still get wrong code for other yet-to-be-fixed cases.

-- 


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


[Bug middle-end/23312] [4.0/4.1 Regression] ACATS ICE (32) gimplify_one_sizepos, at gimplify.c:4659

2005-08-11 Thread rth at gcc dot gnu dot org


-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rth at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-08-11 17:15:58
   date||


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


[Bug middle-end/23312] [4.0/4.1 Regression] ACATS ICE (32) gimplify_one_sizepos, at gimplify.c:4659

2005-08-11 Thread rth at gcc dot gnu dot org

--- Additional Comments From rth at gcc dot gnu dot org  2005-08-11 17:16 
---
Fixed.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug tree-optimization/23331] New: FIXME from tree-ssa-ccp: dealing with a[3]

2005-08-11 Thread pinskia at gcc dot gnu dot org
/* We can get here for out-of-range string constant accesses,
 such as _[3].  Bail out of the entire substitution search
 and arrange for the entire statement to be replaced by a
 call to __builtin_trap.  In all likelihood this will all be
 constant-folded away, but in the meantime we can't leave with
 something that get_expr_operands can't understand.  */

  t = base;
  STRIP_NOPS (t);
  if (TREE_CODE (t) == ADDR_EXPR
   TREE_CODE (TREE_OPERAND (t, 0)) == STRING_CST)
{
  /* FIXME: Except that this causes problems elsewhere with dead
 code not being deleted, and we die in the rtl expanders
 because we failed to remove some ssa_name.  In the meantime,
 just return zero.  */
  /* FIXME2: This condition should be signaled by
 fold_read_from_constant_string directly, rather than
 re-checking for it here.  */
  return integer_zero_node;
}


Just a bug to track progress on this FIXME.

-- 
   Summary: FIXME from tree-ssa-ccp: dealing with a[3]
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug tree-optimization/23134] Address escapes even though the called function does not cause it to escape

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
17:20 ---
I think the FIXME in tree-ssa-operands.c is the issue here:
  /* FIXME - if we have better information from the static vars
 analysis, we need to make the cache call site specific.  This way
 we can have the performance benefits even if we are doing good
 optimization.  */

-- 


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


[Bug gcov/profile/23332] New: FIXME in tree-profile.c: tree_gen_const_delta_profiler not implemented

2005-08-11 Thread pinskia at gcc dot gnu dot org
static void 
tree_gen_const_delta_profiler (histogram_value value ATTRIBUTE_UNUSED,
unsigned tag ATTRIBUTE_UNUSED,
unsigned base ATTRIBUTE_UNUSED)
{
  /* FIXME implement this.  */
#ifdef ENABLE_CHECKING
  internal_error (unimplemented functionality);
#endif
  gcc_unreachable ();
}


bug to track progress on this FIXME.

-- 
   Summary: FIXME in tree-profile.c: tree_gen_const_delta_profiler
not implemented
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: gcov/profile
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug c++/23333] New: accepts invalid pure specifier

2005-08-11 Thread pinskia at gcc dot gnu dot org
testcase:
class a
{
  virtual void f() = 0L;
};

See FIXME in parse.c:
  /* FIXME: Unfortunately, this will accept `0L' and `0x00' as well.
 We need to get information from the lexer about how the number
 was spelled in order to fix this problem.  */
  return integer_zero_node;

-- 
   Summary: accepts invalid pure specifier
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Keywords: accepts-invalid
  Severity: normal
  Priority: P2
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug tree-optimization/15353] [tree-ssa] Merge two ifs if one subsumes the other.

2005-08-11 Thread law at redhat dot com

--- Additional Comments From law at redhat dot com  2005-08-11 17:29 ---
Subject: Re:  [tree-ssa] Merge two ifs if
one subsumes the other.

On Thu, 2005-08-11 at 15:52 +, trt at acm dot org wrote:
 --- Additional Comments From trt at acm dot org  2005-08-11 15:52 ---
 I think http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21643 is closely related.
It's related.

However, there is a key difference.  In 21643, the object being tested
is a scalar and thus should be subject to optimization by fold-const.c's
range checking optimizations.  ie, the merging of the conditions in the
test should occur well before the SSA optimization path is run.

In 15353 the object being tested is a memory reference and thus we can
not safely merge the tests until later in the optimization path (after
we've exposed the memory loads and proved they're equivalent).

jeff




-- 


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


[Bug tree-optimization/22471] [4.1 Regression] corrupted profile info with -O3 -fprofile-use

2005-08-11 Thread janis at gcc dot gnu dot org

--- Additional Comments From janis at gcc dot gnu dot org  2005-08-11 17:29 
---
Mainline GCC built last night successfully compiles and runs the SPEC CPU2000
tests that failed earlier.  If anyone cares I can find out which patch fixed
it, otherwise we can just close this as magically fixed.

-- 


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


[Bug tree-optimization/22471] [4.1 Regression] corrupted profile info with -O3 -fprofile-use

2005-08-11 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-08-11 
17:31 ---
This was most likely fixed by the following patches:
2005-07-28  Jan Hubicka  [EMAIL PROTECTED]

* Makefile.in (rtl-profile.o): Kill all traces of it.
   
2005-08-03  Jan Hubicka  [EMAIL PROTECTED]

* cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
* cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
profile updating for complette unrolling.
* loop-unroll.c (peel_loop_completely): Use it.
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
(tree_unroll_loops_completely): Disable code growing unrolling of cold
loops.

2005-08-02  Jan Hubicka  [EMAIL PROTECTED]

* tree-ssa-dom.c (thread_across_edge): Remove updating here.
* tree-ssa-threadupdate.c (thread_block): Add it here.

2005-08-01  Jan Hubicka  [EMAIL PROTECTED]

* profile.c (compute_value_histograms): Fix thinko.
* value-prof.c: Include toplev.h
(check_counter): New function.
(tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform,
tree_mod_subtract_transform): Add sanity check.



-- 


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


[Bug gcov/profile/23334] New: FIXME in coverage.c: use build_constructor directly

2005-08-11 Thread pinskia at gcc dot gnu dot org
coverage.c:  /* FIXME: use build_constructor directly.  */
coverage.c:  /* FIXME: use build_constructor directly.  */
coverage.c:  /* FIXME: use build_constructor directly.  */
coverage.c:  /* FIXME: use build_constructor directly.  */
coverage.c:  /* FIXME: use build_constructor directly.  */
coverage.c:  /* FIXME: use build_constructor directly.  */


bug to track those FIXMEs.

-- 
   Summary: FIXME in coverage.c: use build_constructor directly
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P2
 Component: gcov/profile
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop

2005-08-11 Thread rguenth at tat dot physik dot uni-tuebingen dot de

--- Additional Comments From rguenth at tat dot physik dot uni-tuebingen 
dot de  2005-08-11 17:43 ---
I'll do that.  Though

+ /* If we don't have NE_EXPR/NE_EXPR x INT_CST, then we cannot
+optimize this case.  */
+ if ((cond_code == NE_EXPR || cond_code == EQ_EXPR)
+  TREE_CODE (TREE_OPERAND (cond, 1)) != INTEGER_CST)
+   continue;

should probably read

+ /* If we don't have NE_EXPR/EQ_EXPR x INT_CST, then we cannot
+optimize this case.  */
+ if (!((cond_code == NE_EXPR || cond_code == EQ_EXPR)
+TREE_CODE (TREE_OPERAND (cond, 1)) == INTEGER_CST))
+   continue;

because else we might get f.i. LE_EXPR passing through?  Maybe the little
context confuses me here, though.

I'll have a look before testing.

-- 


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


[Bug tree-optimization/23326] [4.0 Regression] Wrong code from forwprop

2005-08-11 Thread pinskia at physics dot uc dot edu

--- Additional Comments From pinskia at physics dot uc dot edu  2005-08-11 
17:45 ---
Subject: Re:  [4.0 Regression] Wrong code from forwprop


On Aug 11, 2005, at 1:43 PM, rguenth at tat dot physik dot 
uni-tuebingen dot de wrote:

 because else we might get f.i. LE_EXPR passing through?  Maybe the 
 little
 context confuses me here, though.

We will never get LE_EXPR here as this is always a boolean type.

-- Pinski



-- 


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


[Bug tree-optimization/23335] New: out of ssa does not delete single def single use variable

2005-08-11 Thread dann at godzilla dot ics dot uci dot edu
The .t82.uncprop dump looks like this:

L16:;
  D.15800_45 = *params_11;
  __nptr_47 = D.15800_45;
  D.15802_50 = __strtol_internal (__nptr_47, 0B, 10, 0);
  mult_55 = mult_1 * D.15802_50;
  goto bb 15 (L8);

L17:;
  D.15800_29 = *params_11;
  __nptr_31 = D.15800_29;
  D.15807_34 = __strtol_internal (__nptr_31, 0B, 10, 0);
  D.15790_39 = screen_16-whichVwin;
  D.15791_40 = D.15790_39-f_height;
  mult_41 = D.15807_34 * D.15791_40;
  goto bb 15 (L8);

L18:;
  D.15811_25 = screen_16-scrolllines;
  D.15790_26 = screen_16-whichVwin;
  D.15791_27 = D.15790_26-f_height;
  mult_28 = D.15811_25 * D.15791_27;
  goto bb 15 (L8);

L6:;
  D.15698_10 = gw_4-core.parent;
  D.15697_13 = AmountToScroll (D.15698_10, params_11, nparams_12);

  # D.15697_3 = PHI 0(3), mult_41(12), D.15697_13(14), 0(0), mult_55(11),
mult_28(13);
L8:;
  return D.15697_3;


and the .t87.final_cleanup dump looks like:

L16:;
  D.15802 = __strtol_internal (*params, 0B, 10, 0);
  mult.78 = mult * D.15802;
  D.15697 = mult.78;
  goto bb 17 (L26);

L17:;
  D.15807 = __strtol_internal (*params, 0B, 10, 0);
  mult.77 = D.15807 * screen-whichVwin-f_height;
  D.15697 = mult.77;
  goto bb 17 (L26);

L18:;
  mult.76 = screen-scrolllines * screen-whichVwin-f_height;
  D.15697 = mult.76;
  goto bb 17 (L26);

L6:;
  D.15697 = AmountToScroll (gw-core.parent, params, nparams);
  goto bb 17 (L26);

L8:;
  D.15697 = 0;

L26:;
  return D.15697;

Note that the mult.76, mult.77, mult.78 have a single use and a single def, they
could be eliminated.

Preprocessed code will be attached. The compilation flags were -O2 -march=i686
The function to look at is AmmountToScroll

-- 
   Summary: out of ssa does not delete single def single use
variable
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dann at godzilla dot ics dot uci dot edu
CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: i686-pc-linux-gnu


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


  1   2   >