[Bug target/19774] New: VLA's vs SjLj EH unwind

2005-02-03 Thread dannysmith at users dot sourceforge dot net
The following testcase fails when using  sjlj EH unwind (mingw32
compiler) but succeeds when using Dwarf2 EH unwind (also mingw with
sources modified to enable Dwarf2).

Is this related to PR 19771?

/* sjlj_vla.cc */
extern "C" void abort(void);

void foo()
{
  int size = 1;
  int a[size];

  a[0] = 0;

  try
{
  throw 0;
}
  catch (int i)
{
}
  
  if (a[0] != 0)
abort();
}

int main()
{
  foo();
}

-- 
   Summary: VLA's vs SjLj EH unwind
   Product: gcc
   Version: 3.4.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dannysmith at users dot sourceforge dot net
CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pc-mingw32
  GCC host triplet: i686-pc-mingw32
GCC target triplet: i686-pc-mingw32


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


[Bug ada/19489] gnat tools not buildable cross

2005-02-03 Thread charlet at adacore dot com

--- Additional Comments From charlet at adacore dot com  2005-02-03 09:03 
---
Subject: Re:  gnat tools not buildable cross

> Arnauds: 
> checking for .preinit_array/.init_array/.fini_array support... yes  

For the record, it's Laurent's, not Arno's

Arno


-- 


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


[Bug middle-end/19331] [4.0 Regression] Inefficient code generated for bitfield assignment

2005-02-03 Thread giovannibajo at libero dot it

--- Additional Comments From giovannibajo at libero dot it  2005-02-03 
09:27 ---
Patch posted by Roger:
http://gcc.gnu.org/ml/gcc-patches/2005-02/msg00205.html
(thanks!)

-- 
   What|Removed |Added

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


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


[Bug middle-end/19775] New: [3.3 regression] sqrt(pow(x,y)) != pow(x,y*0.5)

2005-02-03 Thread rguenth at tat dot physik dot uni-tuebingen dot de
This one should not abort:

#include 
#include 

int main()
{
double x = -1.0;
if (sqrt(pow(x,2)) != 1.0)
abort();
return 0;
}

but both, 3.4.4 and 4.0.0 do sqrt(pow(x,y)) -> pow(x,y*0.5)
which in this case means sqrt(1.0) -> -1.0.

Ouch.

-- 
   Summary: [3.3 regression] sqrt(pow(x,y)) != pow(x,y*0.5)
   Product: gcc
   Version: 3.4.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rguenth at tat dot physik dot uni-tuebingen dot de
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug middle-end/19775] [3.3 regression] sqrt(pow(x,y)) != pow(x,y*0.5)

2005-02-03 Thread rguenth at tat dot physik dot uni-tuebingen dot de


-- 
   What|Removed |Added

   Severity|normal  |critical
   Keywords||wrong-code
  Known to fail||3.4.4 4.0.0
  Known to work||3.3.5
   Priority|P2  |P1


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


[Bug c++/19761] -Winit-self doesn't work anymore

2005-02-03 Thread oliverst at online dot de

--- Additional Comments From oliverst at online dot de  2005-02-03 10:19 
---
strange...I just tried it again with this example:

extern void foo(int);

int main()
{
int i = i;
foo(i);
return i;
}

And I get only this (C and C++ front-end / -O1, -O2 and -O3):

$ gcc -Wuninitialized -Winit-self -O1 test.cpp
test.cpp: In function `int main()':
test.cpp:5: warning: 'i' might be used uninitialized in this function

Maybe it was fixed between GCC 3.4.2 and GCC 3.4.3? Or it's a target-specific
problem? I unfortunately don't have a linux GCC 3.4.2.

-- 


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


[Bug c++/17401] [3.4/4.0 Regression] ICE with invalid pure specifier

2005-02-03 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-02-03 
10:26 ---
Subject: Bug 17401

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-02-03 10:26:23

Modified files:
gcc/cp : ChangeLog parser.c decl2.c 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/g++.dg/parse: error25.C 

Log message:
PR c++/17401
* parser.c (cp_parser_pure_specifier): Emit a specific error
message with an invalid pure specifier.
* decl2.c (grok_function_init): Remove.
(grokfield): An initializer for a method is a always a pure
specifier.

PR c++/17401
* g++.dg/parse/error25.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4614&r2=1.4615
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/parser.c.diff?cvsroot=gcc&r1=1.310&r2=1.311
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/decl2.c.diff?cvsroot=gcc&r1=1.764&r2=1.765
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4992&r2=1.4993
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/error25.C.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


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


[Bug c++/17401] [3.4/4.0 Regression] ICE with invalid pure specifier

2005-02-03 Thread giovannibajo at libero dot it

--- Additional Comments From giovannibajo at libero dot it  2005-02-03 
10:29 ---
I have fixed the diagnostic issue as well. I don't see anything else in this PR 
which is worth a regression, so I'm closing it.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug middle-end/19775] [3.4/4.0 regression] sqrt(pow(x,y)) != pow(x,y*0.5)

2005-02-03 Thread steven at gcc dot gnu dot org


-- 
   What|Removed |Added

Summary|[3.3 regression]|[3.4/4.0 regression]
   |sqrt(pow(x,y)) !=   |sqrt(pow(x,y)) !=
   |pow(x,y*0.5)|pow(x,y*0.5)


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


[Bug c++/19776] New: compiler crash (segmentation fault)

2005-02-03 Thread peter at syncad dot com
$ uname -a
Linux localhost 2.4.7-10 #1 Thu Sep 6 16:46:36 EDT 2001 i686 unknown
$ g++ -v
Using built-in specs.
Configured with: ../configure --prefix=/usr/local/toolchain-4.0.0
--with-gcc-version-trigger=/home/syncad/gcc-4.0-20050130/gcc/version.c
--enable-languages=c,c++
Thread model: posix
gcc version 4.0.0 20050130 (experimental)
$ g++ -g3 -ggdb3 -gstabs+ -O0 -fPIC -Wl,-O1 -trigraphs -Wall
-Wno-unknown-pragmas -Wno-trigraphs -Wno-deprecated -fpermissive
-fno-strict-aliasing -fPIC -fno-for-scope -fPIC  -c -o xxx  
importwaveformdlg.cpp
:1:1: warning: "__STDC_HOSTED__" redefined
:1:1: warning: this is the location of the previous definition
g++: -O1: linker input file unused because linking not done
:1:1: warning: "__STDC_HOSTED__" redefined
:1:1: warning: this is the location of the previous definition
In file included from ./gridtreectrl/GridOptionCell_src/GridComboCell.h:12,
 from ./gridtreectrl/TreeColumn_src/GridTreeCell.h:66,
 from ./newt/ch/igridtreecontrol.h:10,
 from ./gridtreectrl/dep/acommongridtreecontrol.h:9,
 from ./gridtreectrl/dep/avirtualgridtreecontrol.h:9,
 from newt/asyncadvirtualgridtreecontrol.h:9,
 from newt/availablesignalsvirttreectrl.h:9,
 from newt/importwaveformdlg.h:11,
 from newt/importwaveformdlg.cpp:22:
owl6/include/owl/commctrl.h:910: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.
$ 
 
I tried to remove parts of the code which are not needed to make gcc crash but
it did not go well. The code contains almost no implementation. It is almost all
only declarations. Regardless of this, trying to change class declarations with
forward declararions makes the crash disappear. I was able to remove something
but it seems that preprocessed code must be really so long (about 160,000 
lines).

I do not see a way to attach the preprocessed code here. So, please, (whoever
will look into this) send me an email to [EMAIL PROTECTED] so that I can send 
the
code as attachement.

Peter.

-- 
   Summary: compiler crash  (segmentation fault)
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Severity: critical
  Priority: P2
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: peter at syncad dot com
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug fortran/19777] New: -fbounds-check catches non-existent bounds violation

2005-02-03 Thread sfilippone at uniroma2 dot it
The attached sample code fails when compiledwith bounds-check, yet there's no
bounds violation. Note that it works correctly if the vector is declared with
v(n) instead of v(*). 
- i686-pc-linux-gnu 
[EMAIL PROTECTED] TEMP]$ gfortran -fbounds-check -otmp2 tmp2.f90
[EMAIL PROTECTED] TEMP]$ ./tmp2
Fortran runtime error: Array reference out of bounds
[EMAIL PROTECTED] TEMP]$ gfortran -v
Using built-in specs.
Configured with: ../gcc-4.0-20050130/configure --prefix=/usr/local/gfortran
Thread model: posix
gcc version 4.0.0 20050130 (experimental)

-- 
   Summary: -fbounds-check catches non-existent bounds violation
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sfilippone at uniroma2 dot it
CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: i686-pc-linux-gnu


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


[Bug fortran/19777] -fbounds-check catches non-existent bounds violation

2005-02-03 Thread sfilippone at uniroma2 dot it

--- Additional Comments From sfilippone at uniroma2 dot it  2005-02-03 
10:50 ---
Created an attachment (id=8133)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8133&action=view)
test case


-- 


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


[Bug tree-optimization/19778] New: Unnecessary jumps for comparisons

2005-02-03 Thread falk at debian dot org
unsigned long le1_bit(unsigned long x) {
return x == 0 || (x & (x - 1)) == 0;
}

yields with 4.0.0 20050201:

le1_bit: clr v0
 lda t0,-1(a0)
 beq a0,L1
 and a0,t0,t0
 bne t0,L2
L1:  lda v0,1
L2:  ret


that is, two unnecessary jumps as compared to the completely straight-forward
translation:

le1_bit: cmpeq   a0,0,t0
 lda t1,-1(a0)
 and a0,t1,t1
 cmpeq   t1,0,t1
 or  t0,t1,v0
 ret

-- 
   Summary: Unnecessary jumps for comparisons
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: falk at debian dot org
CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: alphaev68-unknown-linux-gnu
  GCC host triplet: alphaev68-unknown-linux-gnu
GCC target triplet: alphaev68-unknown-linux-gnu


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


[Bug c++/19776] compiler crash (segmentation fault)

2005-02-03 Thread falk at debian dot org

--- Additional Comments From falk at debian dot org  2005-02-03 11:09 
---
(In reply to comment #0)

> I do not see a way to attach the preprocessed code here.

Try here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19776


-- 


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


[Bug ada/19489] gnat tools not buildable cross

2005-02-03 Thread joel at oarcorp dot com

--- Additional Comments From joel at oarcorp dot com  2005-02-03 12:24 
---
Subject: Re:  gnat tools not buildable cross

neroden at gcc dot gnu dot org wrote:
> --- Additional Comments From neroden at gcc dot gnu dot org  2005-02-03 
> 00:57 ---
> Joel, I'm suspicious that the result you got on the branch should also be  
> happening on mainline; it's happening in a code section which I haven't 
> touched.  There's a suspicious-looking difference between Arnaud's configure  
> output for the GCC subdir and yours: 
> Arnauds: 
> checking for .preinit_array/.init_array/.fini_array support... yes  
> Yours:  
> checking for .preinit_array/.init_array/.fini_array support... no  

What is this checking?  Host, target?  My host compiler is:

bash-2.05$ type gcc
gcc is /opt/gcc-40-CVS/bin/gcc
bash-2.05$ type gnatmake
gnatmake is /opt/gcc-40-CVS/bin/gnatmake
bash-2.05$ gcc --version
gcc (GCC) 4.0.0 20050113 (experimental)

Same version for gnatmake.

Some targets do see to fail with errors indicating different
exception models.

--joel


-- 


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


[Bug driver/19117] gcc -v should include target information

2005-02-03 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-02-03 
13:03 ---
Subject: Bug 19117

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-02-03 13:03:26

Modified files:
gcc: ChangeLog gcc.c 

Log message:
PR driver/19117
* gcc.c (main): Include the target in -v output.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.7385&r2=2.7386
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/gcc.c.diff?cvsroot=gcc&r1=1.445&r2=1.446



-- 


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


[Bug c++/19776] compiler crash (segmentation fault)

2005-02-03 Thread peter at syncad dot com

--- Additional Comments From peter at syncad dot com  2005-02-03 13:16 
---
Created an attachment (id=8134)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8134&action=view)
This is the preprocessed code which leads to the crash.


-- 


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


[Bug driver/19117] gcc -v should include target information

2005-02-03 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-02-03 
13:46 ---
Fixed.

-- 
   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.0.0


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


[Bug tree-optimization/17549] [4.0 Regression] 10% increase in codesize with C code compared to GCC 3.3

2005-02-03 Thread amacleod at redhat dot com

--- Additional Comments From amacleod at redhat dot com  2005-02-03 14:37 
---
(In reply to comment #23)
> We have incomming into out-of-ssa,
> 
>x.1 = exp1
>x.2 = x.1 + exp2
>x.3 = x.2 + exp3
> 
> We're currently allowing TER to produce
> 
>x.3 = exp1 + exp2 + exp3
> 
> What if we were to disable TER substitution when the base variable on the lhs
> matches the base variable on the rhs?  So in this case we'd notice x.1 and x.2
> have the same base variable and not merge.  And (more importantly) so forth so
> that the definitions of x.20 and x.19 aren't merged either.


of course, the real issue isnt just the root variable is it? We could have TER
introduce an expression with 1000 different base variables in the expression,
and the problem is that we've got 1000 live now instead of something a little
more sane by accumulating along the way.

IN the above example, it depends on what is in exp1, exp2 and exp3 as to whether
you want to avoid the subsitution. if all 3 exp's end up equating to y.6 + y.6,
you probably DO want to let it happen so you end up with

x.3 = y.6 + y.6 + y.6 + y.6 + y.6 + y.6

> This can probably still fall down, especially when a lot of our variables get
> replaced by "ivtmp.x" and "pretmp.y", but at least we'll have some cut off 
> that
> handles accumulation naturally.  Perhaps there's some loser notion of "base
> variable" we can use, like "in the same partition", or something.


The partitions have been decided by the time TER runs, so we know what SSA_NAME
is going to be a different variable and what isn't.  all you need to do is
compare var_to_partition(ssa_name) to see if they are in the same partition 
number.


I suspect that anything easy we can do will have performance slow downs if we do
it at >=-O2, but you never know :-).  I suspect the better solution is to limit
the number of live ranges it can introduce to something sane.  I dont think that
is likely to be too hard to code, the question is how quickly can it run :-) At
every expression replacement point, we'd have to make a quick run through the
operands and count unique partitions. 

Are we looking to do this at -O2 as well? I guess thats a key question. at just
-Os, it might very well be sufficient.



-- 


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


[Bug tree-optimization/19736] [4.0 Regression] ICE with type mismatch between SSA_NAME and its symbol

2005-02-03 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-02-03 
15:12 ---
Fixed. thanks for your report.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug c++/19763] surplus -Wuninitialized warnings

2005-02-03 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-02-03 
15:14 ---
Subject: Bug 19763

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-02-03 15:13:45

Modified files:
gcc: ChangeLog tree-ssa.c 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/gcc.c-torture/compile: pr19736.c 

Log message:
2005-02-03  Andrew Pinski  <[EMAIL PROTECTED]>

PR tree-opt/19763
* gcc.c-torture/compile/pr19736.c: New test.

2005-02-03  Andrew Pinski  <[EMAIL PROTECTED]>

PR tree-opt/19736
* tree-ssa.c (replace_immediate_uses): Update the immediate_uses
information for the new statement.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.7386&r2=2.7387
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa.c.diff?cvsroot=gcc&r1=2.75&r2=2.76
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4993&r2=1.4994
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/compile/pr19736.c.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


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


[Bug tree-optimization/19736] [4.0 Regression] ICE with type mismatch between SSA_NAME and its symbol

2005-02-03 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-02-03 
15:14 ---
Subject: Bug 19736

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-02-03 15:13:45

Modified files:
gcc: ChangeLog tree-ssa.c 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/gcc.c-torture/compile: pr19736.c 

Log message:
2005-02-03  Andrew Pinski  <[EMAIL PROTECTED]>

PR tree-opt/19763
* gcc.c-torture/compile/pr19736.c: New test.

2005-02-03  Andrew Pinski  <[EMAIL PROTECTED]>

PR tree-opt/19736
* tree-ssa.c (replace_immediate_uses): Update the immediate_uses
information for the new statement.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.7386&r2=2.7387
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa.c.diff?cvsroot=gcc&r1=2.75&r2=2.76
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4993&r2=1.4994
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/compile/pr19736.c.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


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


[Bug middle-end/19775] [3.4/4.0 regression] sqrt(pow(x,y)) != pow(x,y*0.5) (with -ffast-math)

2005-02-03 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-02-03 
15:14 ---
Confirmed but you forgot the most important thing (even though you did say this 
on the mailing lists), 
the options you used to reproduce the failure.

 -funsafe-math-optimizations is needed to reproduce this.

-- 
   What|Removed |Added

   Severity|critical|normal
 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-02-03 15:15:00
   date||
Summary|[3.4/4.0 regression]|[3.4/4.0 regression]
   |sqrt(pow(x,y)) !=   |sqrt(pow(x,y)) !=
   |pow(x,y*0.5)|pow(x,y*0.5) (with -ffast-
   ||math)
   Target Milestone|--- |3.4.4


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


[Bug tree-optimization/17549] [4.0 Regression] 10% increase in codesize with C code compared to GCC 3.3

2005-02-03 Thread giovannibajo at libero dot it

--- Additional Comments From giovannibajo at libero dot it  2005-02-03 
15:15 ---
> Are we looking to do this at -O2 as well? I guess thats a key question.
> at just -Os, it might very well be sufficient.

As stevenb noted today in IRC, the code reduction substantially comes from less 
spilling code being emitted, which also means that the generated code *will* 
run faster. I guess it's better to have it at -O2 too (until the register 
allocator gets fixed, but hey...)

-- 


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


[Bug tree-optimization/19736] [4.0 Regression] ICE with type mismatch between SSA_NAME and its symbol

2005-02-03 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-02-03 
15:16 ---
Subject: Bug 19736

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-02-03 15:16:31

Modified files:
gcc/testsuite  : ChangeLog 

Log message:
fix PR number in the testsuite/Changelog:
2005-02-03  Andrew Pinski  <[EMAIL PROTECTED]>

PR tree-opt/19736
* gcc.c-torture/compile/pr19736.c: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4994&r2=1.4995



-- 


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


[Bug tree-optimization/19768] [4.0 Regression] ICE: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set

2005-02-03 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-02-03 
15:24 ---
Fixed. Thanks for your report.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug tree-optimization/19768] [4.0 Regression] ICE: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set

2005-02-03 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-02-03 
15:26 ---
Subject: Bug 19768

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-02-03 15:26:30

Modified files:
gcc: tree-ssa-dse.c ChangeLog 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/g++.dg/opt: pr19768.C 

Log message:
2005-02-03  Andrew Pinski  <[EMAIL PROTECTED]>

PR tree-opt/19768
* g++.dg/opt/pr19768.C: New test.

2005-02-03  Andrew Pinski  <[EMAIL PROTECTED]>

PR tree-opt/19768
* tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
phi flag if the phi is abnormal.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-dse.c.diff?cvsroot=gcc&r1=2.15&r2=2.16
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.7387&r2=2.7388
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4995&r2=1.4996
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/opt/pr19768.C.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


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


[Bug rtl-optimization/8126] [3.3/3.4/4.0 regression] Floating point computation far slower in 3.2 than in 2.95

2005-02-03 Thread uros at kss-loka dot si

--- Additional Comments From uros at kss-loka dot si  2005-02-03 15:40 
---
(In reply to comment #21)
> Uros, what exactly are you trying to show with numbers with and without 
> scheduling for Pentium 4?  There is no scheduler description for it, so 

Ooops... I have mixed-up the testcases. The timings and the testcase were from
PR13712. Where is that brown-paper bag of mine...?

I'll retest the cases from comment #20 with correct testcase. However, I would
like to show the effect of scheduler [please note that cases a) and b) are
compiled with pentium classic architecture] and reg-stack interactions.


-- 


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


[Bug c++/19776] compiler crash (segmentation fault)

2005-02-03 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-02-03 
15:44 ---
Hmm, here is the story on powerpc-darwin, I can reproduce it with a full 
bootstrapped compiler.  And I 
looked at the backtrace which looks very front-end dependent but it also was in 
the gc at the time so I 
don't know if this is a front-end bug or a gc bug somewhere.
I am rerunning it with "--param ggc-min-expand=0 --param ggc-min-heapsize=0".
Then again this might have been fixed already.

-- 
   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
   Severity|critical|normal


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


[Bug middle-end/19405] 18_support/numeric_limits.cc fails on ppc-darwin (long doubles)

2005-02-03 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-02-03 
15:45 ---
Fixed, I will file a new bug for the missed optimization now.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug middle-end/19779] New: IBM 128bit long double format is not constant foldded.

2005-02-03 Thread pinskia at gcc dot gnu dot org
This is the new bug for PR 19405. Keeping track of that we no longer constant 
fold long doubles in the 
IBM 128bit long double format.

-- 
   Summary: IBM 128bit long double format is not constant foldded.
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: enhancement
  Priority: P2
 Component: middle-end
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=19779


[Bug target/19520] protected function pointer doesn't work right

2005-02-03 Thread drow at gcc dot gnu dot org

--- Additional Comments From drow at gcc dot gnu dot org  2005-02-03 15:51 
---
FWIW, the reason this leaves a bad taste in my mouth is that I strongly believe
symbol visibility should be consistent between ELF platforms.  There's at least
one ELF platform where resolving a function pointer to a PLT entry is an
absolute no-show (MIPS binding stubs).

-- 
   What|Removed |Added

 CC||drow at gcc dot gnu dot org


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


[Bug target/19520] protected function pointer doesn't work right

2005-02-03 Thread hjl at lucon dot org

--- Additional Comments From hjl at lucon dot org  2005-02-03 15:59 ---
Each psABI defines how function address works. Not all of psABIs have
the same treatment for function address. Function address may mean different
things for different psABIs. You can't even compare function address between
the x86 psABI and the mips psABI. Where does the consistency come from?

-- 


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


[Bug tree-optimization/17549] [4.0 Regression] 10% increase in codesize with C code compared to GCC 3.3

2005-02-03 Thread amacleod at redhat dot com

--- Additional Comments From amacleod at redhat dot com  2005-02-03 16:05 
---
(In reply to comment #26)
> > Are we looking to do this at -O2 as well? I guess thats a key question.
> > at just -Os, it might very well be sufficient.
> 
> As stevenb noted today in IRC, the code reduction substantially comes from 
> less 
> spilling code being emitted, which also means that the generated code *will* 
> run faster. I guess it's better to have it at -O2 too (until the register 
> allocator gets fixed, but hey...)


You missed my point. Sure, in the cases where we end up spilling less, its
likely to run faster. But we are going to miss combine opportunites in other
cases where we wouldnt have spilled in the first place.   If we are going to do
this at >=-O2, we're probably better off actually looking at how many live
ranges we are introducing to solve the issue. If the big expression doesnt
introduce too many live ranges, we might as well allow TER to continue and give
the expanders a better view. Thats why TER exists in the first place.

In any case, its all heuristical, so there will always be cases it doesnt work
right for. If we measure SPEC or something else and the simple rootvar approach
works fine, then go with it.  If there are issues, then we can visit something a
bit different.

-- 


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


[Bug rtl-optimization/8126] [3.3/3.4/4.0 regression] Floating point computation far slower in 3.2 than in 2.95

2005-02-03 Thread uros at kss-loka dot si

--- Additional Comments From uros at kss-loka dot si  2005-02-03 16:17 
---
Promised timings, all on P4-3.2, 800MHz FSB:

gcc296 -O3:
real0m0.978s
user0m0.979s
sys 0m0.000s

gcc296 -O3 -march=i686:
real0m1.061s
user0m1.029s
sys 0m0.016s

gcc344-pre -03
real0m0.962s
user0m0.961s
sys 0m0.002s

gcc344-pre -03 -march=pentium4:
real0m0.962s
user0m0.961s
sys 0m0.000s

gcc-40 -O3 -march=i686:   <- scheduler is enabled here!
real0m0.605s
user0m0.605s
sys 0m0.000s

gcc-40 -O3 -march=pentium4:   <- scheduler disabled
real0m0.599s
user0m0.600s
sys 0m0.000s

gcc-40 -O3 -march=pentium4 -mfpmath=sse:
real0m0.726s
user0m0.727s
sys 0m0.000s

I didn't test 3.3 but I wouldn't call the results of 3.4 and 4.0 _FAR_SLOWER_ 
:) 

gcc -O3 -march=i686 -msse2 -mfpmath=sse
real0m0.726s
user0m0.725s
sys 0m0.002s

BTW: It looks there is a problem with -mfpmath=sse. I'll open another PR for
this problem: "Floating point computation far slower for -mfpmath=sse" :).

Steven, I guess this PR should be marked as fixed.


-- 
   What|Removed |Added

 Status|WAITING |NEW
   Last reconfirmed|2004-08-01 00:24:18 |2005-02-03 16:17:27
   date||


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


[Bug target/19780] New: Floating point computation far slower for -mfpmath=sse

2005-02-03 Thread uros at kss-loka dot si
The testcase from PR 8126 runs ~20% slower when compiled with -mfpmath=sse:

--cut here--
#include 

typedef float real;

int
main (int argc, char *argv[])
{
  int i;

  real v1x, v1y, v1z;
  real v2x, v2y, v2z;
  real v3x, v3y, v3z;

  printf ("Start?\n");

  v1x = 1.;
  v1y = 0.;
  v1z = 0.;

  v2x = 0.;
  v2y = 1.;
  v2z = 0.;

  for (i = 0; i < 1; i++)
{
  v3x = v1y * v2z - v1z * v2y;
  v3y = v1z * v2x - v1x * v2z;
  v3z = v1x * v2y - v1y * v2x;

  v1x = v2x;
  v1y = v2y;
  v1z = v2z;

  v2x = v3x;
  v2y = v3y;
  v2z = v3z;
}

  printf ("Stop!\n");
  printf ("Result = %f, %f, %f\n", v3x, v3y, v3z);

  return 0;
}
--cut here--

gcc -O3 -march=pentium4
real0m0.603s
user0m0.602s
sys 0m0.002s

gcc -O3 -march=pentium4 -mfpmath=sse
real0m0.726s
user0m0.727s
sys 0m0.000s

-- 
   Summary: Floating point computation far slower for -mfpmath=sse
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: uros at kss-loka dot si
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=19780


[Bug rtl-optimization/8126] [3.3/3.4/4.0 regression] Floating point computation far slower in 3.2 than in 2.95

2005-02-03 Thread uros at kss-loka dot si

--- Additional Comments From uros at kss-loka dot si  2005-02-03 16:26 
---
(In reply to comment #23)

> BTW: It looks there is a problem with -mfpmath=sse. I'll open another PR for
> this problem: "Floating point computation far slower for -mfpmath=sse" :).

PR 19780


-- 


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


[Bug rtl-optimization/8126] [3.3/3.4/4.0 regression] Floating point computation far slower in 3.2 than in 2.95

2005-02-03 Thread bangerth at dealii dot org

--- Additional Comments From bangerth at dealii dot org  2005-02-03 16:29 
---
Convincing evidence has been provided. I'll close the PR. 
 
W. 

-- 
   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Bug target/19780] Floating point computation far slower for -mfpmath=sse

2005-02-03 Thread uros at kss-loka dot si

--- Additional Comments From uros at kss-loka dot si  2005-02-03 16:40 
---
First thing to see is this:

...
mulss   %xmm7, %xmm1
movss   -12(%ebp), %xmm0
mulss   %xmm4, %xmm0
subss   %xmm0, %xmm1
movss   -12(%ebp), %xmm0
mulss   %xmm5, %xmm0
mulss   %xmm6, %xmm3
...

Memory access is expensive, but in -mfpmath=387 case we have equivalent code.

-- 


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


[Bug libstdc++/19781] New: testsuite_hooks.cc doesn't test for mkfifo

2005-02-03 Thread jifl-bugzilla at jifvik dot org
testsuite/testsuite_hooks.cc is compiled as part of the libstdc++ build itself,
rather than just for testing. I have a build problem there that therefore stops
the whole gcc build

On line 233 ish there is:
  int
  try_mkfifo (const char* filename, mode_t mode)
  {
#if defined (_NEWLIB_VERSION) || defined (__MINGW32_VERSION)
/* Newlib and MinGW32 do not have mkfifo.  */
exit(0);
#else
return mkfifo(filename, mode);
#endif
  }

However I am using an OS that does not have mkfifo, and is not newlib-based
(various system headers copied into the appropriate sys-include location). This
test should instead be done by autoconf, probably by just 
AC_CHECK_FUNCS(mkfifo) somewhere, but I'm not sure exactly what's best in a
cross-compiled situation.

I can prepare a patch against gcc 3.4.3 if I have a little guidance, or it may
be easier just to fix by someone more knowledgable in this area.

-- 
   Summary: testsuite_hooks.cc doesn't test for mkfifo
   Product: gcc
   Version: 3.4.3
Status: UNCONFIRMED
  Severity: minor
  Priority: P2
 Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jifl-bugzilla at jifvik 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: arm-unknown-elf


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


[Bug tree-optimization/17863] [4.0 Regression] threefold performance loss, not inlining as much

2005-02-03 Thread bonzini at gcc dot gnu dot org

--- Additional Comments From bonzini at gcc dot gnu dot org  2005-02-03 
16:49 ---
To the reporter: in this case you probably want __attribute__ ((leafify)), just 
in case, though you are right in expecting the compiler to inline it.

-- 


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


[Bug tree-optimization/17863] [4.0 Regression] threefold performance loss, not inlining as much

2005-02-03 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-02-03 17:32 ---
Subject: Re:  [4.0 Regression] threefold performance
 loss, not inlining as much

bonzini at gcc dot gnu dot org wrote:

> To the reporter: in this case you probably want __attribute__ ((leafify)), 
> just 
> in case, though you are right in expecting the compiler to inline it.

But of course attribute leafify is not available without patching your 
gcc sources.


-- 


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


const char *& and std::map<_K, _V>::iterator& : what's wrong?

2005-02-03 Thread Grigorio V. Moshkin
Hi!

First,  thanks to "Giovanni Bajo" <[EMAIL PROTECTED]> for help.

Consider simple C++ program:
-
#include 

template
void func_map(typename std::map<_K, _V>::iterator& root) {
}

int main() {
  std::map mymap;
  func_map(mymap.begin());
}
-

Notice '&' in the line: 
void func_map(typename std::map<_K, _V>::iterator& root) {

Just because this '&' program won't compile:
(gcc 3.4.1 log):

--
testref.cpp: In function `int main()':
testref.cpp:18: error: invalid initialization of non-const reference of type 
'std::_Rb_tree_iterator >&' from a temporary of 
type 'std::_Rb_tree_iterator >'
testref.cpp:9: error: in passing argument 1 of `void func_map(typename 
std::map<_K, _V, std::less<_Key>, std::allocator > 
>::iterator&) [with _K = int, _V = int]'
---

Why does std::_Rb_tree_iterator >& appear?

Just remove '&' from typename std::map<_K, _V>::iterator& root
- no warnings, no errors.
Is it gcc bug or ISO C++ violation?

Also, much more simple example won't work:
--
void func(const char *& p) { // Another developer puts '&' here.
}  
int main() {
char *ptr = "dsadas"; 
// I can't write 'const char *' because of program's mutable logic.
// This logic intoduced by another developer.
func(ptr);
}
---
And, just remove '&' and all is ok.
NOTE. MSVC6 compiles all code above.




[Bug middle-end/19775] [3.4/4.0 regression] sqrt(pow(x,y)) != pow(x,y*0.5) (with -ffast-math)

2005-02-03 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-02-03 
17:47 ---
Subject: Bug 19775

CVSROOT:/cvs/gcc
Module name:gcc
Branch: gcc-3_4-branch
Changes by: [EMAIL PROTECTED]   2005-02-03 17:47:33

Modified files:
gcc: ChangeLog builtins.c 
gcc/testsuite  : ChangeLog 
gcc/testsuite/gcc.dg: builtins-10.c 
Added files:
gcc/testsuite/gcc.dg: builtins-47.c 

Log message:
PR middle-end/19775

* builtins.c (fold_builtin_sqrt): Transform sqrt(pow(x,y))
to pow(fabs(x),y*0.5), not pow(x,y*0.5).

* gcc.dg/builtins-10.c: Disable test for invalid transformation
and one test we no longer optimize.
* gcc.dg/builtins-47.c: New testcase.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=2.2326.2.791&r2=2.2326.2.792
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/builtins.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.275.2.5&r2=1.275.2.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3389.2.355&r2=1.3389.2.356
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/builtins-47.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/builtins-10.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.1&r2=1.1.22.1



-- 


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