[Bug fortran/24784] Warning about unused routine argument should not read unused variable

2007-07-04 Thread patchapp at dberlin dot org


--- Comment #5 from patchapp at dberlin dot org  2007-07-04 06:00 ---
Subject: Bug number PR24784

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2007-07/msg00326.html


-- 


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



[Bug fortran/29651] Subroutine: Kind convertion of intent(out) value: signal

2007-07-04 Thread jv244 at cam dot ac dot uk


--- Comment #5 from jv244 at cam dot ac dot uk  2007-07-04 06:19 ---
(In reply to comment #4)
 Subject: Bug number PR29651
 
 A patch for this bug has been added to the patch tracker.
 The mailing list url for the patch is
 http://gcc.gnu.org/ml/gcc-patches/2007-05/msg02108.html
 

patch ping?


-- 


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



[Bug fortran/29606] Internal Error: Derived type I/O should have been handled via the frontend

2007-07-04 Thread jv244 at cam dot ac dot uk


--- Comment #2 from jv244 at cam dot ac dot uk  2007-07-04 06:25 ---
(In reply to comment #1)
 This is a general problem for gfortran.  A pointer to a component of an array
 of derived types cannot, at the moment be represented. Some brave soul need to
 come up with a proposal as to how to do it and then to change every single
 client for array descriptors in gfortran.  I periodically contemplate how to 
 do
 it and recoil in horror at the size of the job.

If this would require an ABI change, 4.3.0 would be the right time to fix this.
This looks like rather important functionality.


-- 


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



[Bug fortran/29389] Statement functions are not recognized as pure when they are

2007-07-04 Thread jv244 at cam dot ac dot uk


--- Comment #7 from jv244 at cam dot ac dot uk  2007-07-04 06:29 ---
list link: 

http://gcc.gnu.org/ml/fortran/2007-01/msg00361.html
this suggests that it is now an accepts-invalid bug with an easy fix 

(Bug reporter / assignee should change keyword)


-- 


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



[Bug fortran/30625] Array pointers to components of derived type arrays do not work

2007-07-04 Thread jv244 at cam dot ac dot uk


--- Comment #8 from jv244 at cam dot ac dot uk  2007-07-04 06:33 ---
target milestone 4.3.0 ?


-- 


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



[Bug fortran/31119] -fbounds-check: Check for presence of optional arguments before bound checking

2007-07-04 Thread jv244 at cam dot ac dot uk


--- Comment #4 from jv244 at cam dot ac dot uk  2007-07-04 06:35 ---
patch ping ?


-- 


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



[Bug fortran/29651] Subroutine: Kind convertion of intent(out) value: signal

2007-07-04 Thread dfranke at gcc dot gnu dot org


--- Comment #6 from dfranke at gcc dot gnu dot org  2007-07-04 06:40 ---
 patch ping?

Still working on this (that is, shunning it for the work involved). It does not
yet work correctly with actual arguments that are optional dummy arguments. 

Thanks for the reminder :)


-- 


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



[Bug libgcj/32619] -static-libgcj includes entire gnu classpath (30MB executable from 95byte source)

2007-07-04 Thread mtrudel at gmx dot ch


--- Comment #3 from mtrudel at gmx dot ch  2007-07-04 06:59 ---
This is an old discussion and comes up in the mailinglist regularly. The most
promising approach is to explicitly exclude parts of the class library. JNC
(http://jnc.mtsystems.ch/) supports excluding the GUI stuff (AWT/Swing) and JCE
what already leads to a great size reduction (since these will be pulled into
every binary).

BTW, here the FAQ entry for your question from the JNC website:

Why are the binaries so big?
As JNC evolves, it supports more and more classes of the Java API. The problem
now is, that the Java API classes are heavily interconnected; a simple Hello
World application uses the security manager which uses AWT which uses...
Because of this, you will always have a big part of the classlibrary in your
binaries.
For Java, this is not a problem. Endusers require to have the JVM, thus having
all classes anyway. For native compilation, this is a bigger problem because
it's not just a bug that can be fixed. The design of Java doesn't fit into the
concept of native compilation (concerning the size of binaries).
Since JNC 0.9, you can exclude parts of the class library if you don't need
them and thus drastically reduce the size of your binaries.


-- 


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



[Bug target/32457] [4.3 Regression] Complete program optimized away (i686, -ftree-vectorize)

2007-07-04 Thread spop at gcc dot gnu dot org


--- Comment #19 from spop at gcc dot gnu dot org  2007-07-04 07:04 ---
Subject: Bug 32457

Author: spop
Date: Wed Jul  4 07:04:31 2007
New Revision: 126305

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=126305
Log:
PR middle-end/32457
* tree-data-ref.c (analyze_siv_subscript_cst_affine,
compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
init_omega_for_ddr_1): Use non conservative number of iterations
estimations.
(analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
(analyze_siv_subscript): Remove FIXME and reinitialization of 
last_conflicts to chrec_dont_know.
* testsuite/gfortran.dg/vect/pr32457.f90: New.


Added:
trunk/gcc/testsuite/gfortran.dg/vect/pr32457.f90
Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-data-ref.c


-- 


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



[Bug target/32457] [4.3 Regression] Complete program optimized away (i686, -ftree-vectorize)

2007-07-04 Thread spop at gcc dot gnu dot org


--- Comment #20 from spop at gcc dot gnu dot org  2007-07-04 07:08 ---
Fixed.


-- 

spop at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug libfortran/32611] Print sign of negative zero

2007-07-04 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2007-07-04 07:08 ---
Jerry, I think this is something for you.

y = -0.0 is printed as
  0.E+00
instead of
 -0.E+00

I think the problem is in io/write.c's output_float.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jvdelisle at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
  Component|fortran |libfortran
 Ever Confirmed|0   |1
   Keywords||wrong-code
   Last reconfirmed|-00-00 00:00:00 |2007-07-04 07:08:52
   date||
Summary|signed zero |Print sign of negative zero
   Target Milestone|--- |4.3.0


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



[Bug middle-end/32004] [4.1/4.2/4.3 regression] : can't find a register in class 'GENERAL_REGS' while reloading 'asm'

2007-07-04 Thread bonzini at gnu dot org


--- Comment #17 from bonzini at gnu dot org  2007-07-04 07:11 ---
I'm working on this, but don't hold your breath (hence not assigning to
myself).


-- 


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



[Bug target/25216] -fpic/-fPIC failure in gcc.target/i386/pr21291.c

2007-07-04 Thread bonzini at gnu dot org


--- Comment #5 from bonzini at gnu dot org  2007-07-04 07:12 ---


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


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug middle-end/32004] [4.1/4.2/4.3 regression] : can't find a register in class 'GENERAL_REGS' while reloading 'asm'

2007-07-04 Thread bonzini at gnu dot org


--- Comment #18 from bonzini at gnu dot org  2007-07-04 07:12 ---
*** Bug 25216 has been marked as a duplicate of this bug. ***


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 CC||ghazi at gcc dot gnu dot org


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



[Bug target/23224] [meta-bug] Outages with -fPIC

2007-07-04 Thread bonzini at gnu dot org


--- Comment #7 from bonzini at gnu dot org  2007-07-04 07:13 ---
PR25216 is a dup of PR32004.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn|25216   |32004


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



[Bug fortran/30939] Run-time check if dummy array sizes is larger than actual array size

2007-07-04 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2007-07-04 07:19 ---
 Related to -fbounds-check, isn't it?
As my initial bug is fixed:

Warnung: Actual argument contains too few elements for dummy argument 'in'
(10/11) at (1)

and the missing parts are in PR30939, I dedicate it to the run time test.

Test: Place program and subroutine in different files, compile and run them.
NAG f95 -C=all shows then:


Actual argument for dummy array IN too small -
10 elements instead of 11
Program terminated by fatal error
In COPY, line 1 of aa.f90
Called by MAIN, line 4 of ab.f90


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|Report if dummy array sizes |Run-time check if dummy
   |is larger than actual array |array sizes is larger than
   |size|actual array size


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



[Bug tree-optimization/32377] can't determine dependence (source/destination overlap without more than size)

2007-07-04 Thread sebpop at gmail dot com


--- Comment #10 from sebpop at gmail dot com  2007-07-04 07:21 ---
Subject: Re:  can't determine dependence (source/destination overlap without
more than size)

  I can submit a patch for merging that part of code in trunk if you need
  this flag to test if you are in one or the other case.

 I guess we can't vectorize the loop in this PR without it, since we have to
 distinguish between the cases in comment #7 (the first loop should not be
 vectorized and the second one should).


I have committed the attached patch to trunk.

Sebastian


--- Comment #11 from sebpop at gmail dot com  2007-07-04 07:21 ---
Created an attachment (id=13841)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13841action=view)


-- 


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



[Bug fortran/31198] wrong code: Max() with optional arguments

2007-07-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #7 from fxcoudert at gcc dot gnu dot org  2007-07-04 07:25 
---
Subject: Bug 31198

Author: fxcoudert
Date: Wed Jul  4 07:25:39 2007
New Revision: 126307

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=126307
Log:
PR fortran/31198

* trans-intrinsic.c (trans-intrinsic.c): Handle optional
arguments correctly for MIN and MAX intrinsics.

* gfortran.dg/min_max_optional_1.f90: New test.
* gfortran.dg/min_max_optional_2.f90: New test.
* gfortran.dg/min_max_optional_3.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/min_max_optional_1.f90
trunk/gcc/testsuite/gfortran.dg/min_max_optional_2.f90
trunk/gcc/testsuite/gfortran.dg/min_max_optional_3.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-intrinsic.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/31198] wrong code: Max() with optional arguments

2007-07-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #8 from fxcoudert at gcc dot gnu dot org  2007-07-04 07:27 
---
Fixed on mainline.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to fail||4.2.0 4.1.3
  Known to work||4.3.0
 Resolution||FIXED
   Target Milestone|--- |4.3.0


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



[Bug bootstrap/32622] New: BOOT_CFLAGS is not passed to stage2 and stage3 compile

2007-07-04 Thread ubizjak at gmail dot com
Hello!

.../configure was invoked with:

.../configure --with-mpfr=/usr/local --enable-languages=c,c++,fortran
BOOT_CFLAGS=-O3 -march=nocona -msse3 -funroll-loops -ftree-vectorize
-ffast-math -g

as suggested in gccinstall.info.

However, BOOT_CFLAGS were not passed to stage2 or stage3 compile, default -O2
-g -fomit-frame-pointer flags were used instead.


-- 
   Summary: BOOT_CFLAGS is not passed to stage2 and stage3 compile
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ubizjak at gmail dot com
 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=32622



[Bug fortran/32035] 'anonymous' may be used uninitialized in this function

2007-07-04 Thread fxcoudert at gcc dot gnu dot org


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |fxcoudert at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-05-22 11:15:35 |2007-07-04 07:34:44
   date||


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



[Bug fortran/31688] Bogus may be used uninitialized warning

2007-07-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #6 from fxcoudert at gcc dot gnu dot org  2007-07-04 07:43 
---


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


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||DUPLICATE


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



[Bug fortran/29459] Spurious warning about uninitialized optional arguments

2007-07-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #2 from fxcoudert at gcc dot gnu dot org  2007-07-04 07:43 
---
*** Bug 31688 has been marked as a duplicate of this bug. ***


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu dot
   ||org


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



[Bug fortran/29459] Spurious warning about uninitialized optional arguments

2007-07-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2007-07-04 07:44 
---
(In reply to comment #2)
 *** Bug 31688 has been marked as a duplicate of this bug. ***

Code from PR31688:

MODULE test
  IMPLICIT NONE
CONTAINS
  SUBROUTINE overlap(s, lds, pab, force_a)
INTEGER, INTENT(IN) :: lds
REAL, DIMENSION(lds, lds, *), INTENT(INOUT) :: s
REAL, DIMENSION(:), INTENT(IN), OPTIONAL:: pab
REAL, INTENT(OUT)   :: force_a

if(.not.present(pab)) return
force_a = pab(1)*s(1,1,1)
  END SUBROUTINE
END MODULE test


-- 


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



[Bug fortran/32594] INDEX is not simplified, leads to ICE

2007-07-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2007-07-04 07:47 
---
I think it's due to the fact that there is no simplification done for INDEX (in
simplify.c).


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org
   Last reconfirmed|2007-07-02 19:31:03 |2007-07-04 07:47:17
   date||
Summary|ICE: bus error with attached|INDEX is not simplified,
   |code and June 28 MacOSX |leads to ICE
   |Intel binary)   |


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



[Bug libfortran/32611] Print sign of negative zero

2007-07-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #2 from fxcoudert at gcc dot gnu dot org  2007-07-04 07:49 
---
IIRC, F95 requires not to print the minus sign but F2003 allows to do it (and
we should probably do it since we handle negative zeros well on most other
counts).


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||fxcoudert at gcc dot gnu dot
   ||org


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



[Bug fortran/29459] Spurious warning about uninitialized optional arguments

2007-07-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #4 from fxcoudert at gcc dot gnu dot org  2007-07-04 07:50 
---
Updated partial patch:

Index: trans-array.c
===
--- trans-array.c   (revision 126249)
+++ trans-array.c   (working copy)
@@ -1695,6 +1695,7 @@
   desc = ss-data.info.descriptor;
   offset = gfc_index_zero_node;
   offsetvar = gfc_create_var_np (gfc_array_index_type, offset);
+  TREE_NO_WARNING (offsetvar) = 1;
   TREE_USED (offsetvar) = 0;
   gfc_trans_array_constructor_value (loop-pre, type, desc, c,
 offset, offsetvar, dynamic);
Index: trans-decl.c
===
--- trans-decl.c(revision 126249)
+++ trans-decl.c(working copy)
@@ -633,20 +633,31 @@
   for (dim = 0; dim  GFC_TYPE_ARRAY_RANK (type); dim++)
 {
   if (GFC_TYPE_ARRAY_LBOUND (type, dim) == NULL_TREE)
-GFC_TYPE_ARRAY_LBOUND (type, dim) = create_index_var (lbound, nest);
+   {
+  GFC_TYPE_ARRAY_LBOUND (type, dim) = create_index_var (lbound,
nest);
+ TREE_NO_WARNING (GFC_TYPE_ARRAY_LBOUND (type, dim)) = 1;
+   }
   /* Don't try to use the unknown bound for assumed shape arrays.  */
   if (GFC_TYPE_ARRAY_UBOUND (type, dim) == NULL_TREE
(sym-as-type != AS_ASSUMED_SIZE
   || dim  GFC_TYPE_ARRAY_RANK (type) - 1))
-GFC_TYPE_ARRAY_UBOUND (type, dim) = create_index_var (ubound, nest);
+   {
+  GFC_TYPE_ARRAY_UBOUND (type, dim) = create_index_var (ubound,
nest);
+ TREE_NO_WARNING (GFC_TYPE_ARRAY_UBOUND (type, dim)) = 1;
+   }

   if (GFC_TYPE_ARRAY_STRIDE (type, dim) == NULL_TREE)
-GFC_TYPE_ARRAY_STRIDE (type, dim) = create_index_var (stride, nest);
+   {
+  GFC_TYPE_ARRAY_STRIDE (type, dim) = create_index_var (stride,
nest);
+ TREE_NO_WARNING (GFC_TYPE_ARRAY_STRIDE (type, dim)) = 1;
+   }
 }
   if (GFC_TYPE_ARRAY_OFFSET (type) == NULL_TREE)
 {
   GFC_TYPE_ARRAY_OFFSET (type) = gfc_create_var_np (gfc_array_index_type,
offset);
+  TREE_NO_WARNING (GFC_TYPE_ARRAY_OFFSET (type)) = 1;
+
   if (nest)
gfc_add_decl_to_parent_function (GFC_TYPE_ARRAY_OFFSET (type));
   else
@@ -655,7 +666,10 @@

   if (GFC_TYPE_ARRAY_SIZE (type) == NULL_TREE
sym-as-type != AS_ASSUMED_SIZE)
-GFC_TYPE_ARRAY_SIZE (type) = create_index_var (size, nest);
+{
+  GFC_TYPE_ARRAY_SIZE (type) = create_index_var (size, nest);
+  TREE_NO_WARNING (GFC_TYPE_ARRAY_SIZE (type)) = 1;
+}

   if (POINTER_TYPE_P (type))
 {


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||patch


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



[Bug bootstrap/32622] BOOT_CFLAGS is not passed to stage2 and stage3 compile

2007-07-04 Thread ubizjak at gmail dot com


--- Comment #1 from ubizjak at gmail dot com  2007-07-04 08:02 ---
I misread the documentation, BOOT_CFLAGS should be added to make.

However, having something like --default-boot-cflags=... would be a nice
addition to configure.


-- 


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



[Bug middle-end/32004] [4.1/4.2/4.3 regression] : can't find a register in class 'GENERAL_REGS' while reloading 'asm'

2007-07-04 Thread bonzini at gnu dot org


--- Comment #19 from bonzini at gnu dot org  2007-07-04 08:16 ---
Created an attachment (id=13843)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13843action=view)
patch under testing


QED (Quite Easily Done :-)


-- 


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



[Bug bootstrap/32622] BOOT_CFLAGS is not passed to stage2 and stage3 compile

2007-07-04 Thread spop at gcc dot gnu dot org


--- Comment #2 from spop at gcc dot gnu dot org  2007-07-04 08:12 ---
Subject: Re:  BOOT_CFLAGS is not passed to stage2 and stage3 compile

Ok, here is the mini patch that captures BOOT_CFLAGS from configure line
and pass it to the makefile machinery.  Not tested yet, it's just an idea.


--- Comment #3 from spop at gcc dot gnu dot org  2007-07-04 08:12 ---
Created an attachment (id=13842)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13842action=view)


-- 


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



[Bug tree-optimization/32377] can't determine dependence (source/destination overlap without more than size)

2007-07-04 Thread irar at il dot ibm dot com


--- Comment #12 from irar at il dot ibm dot com  2007-07-04 08:34 ---
(In reply to comment #10)
 I have committed the attached patch to trunk.
 Sebastian

Thanks a lot!
Ira


-- 


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



[Bug fortran/31197] [4.2/4.3 regression] TRANSPOSE/RESHAPE and strings

2007-07-04 Thread pault at gcc dot gnu dot org


--- Comment #15 from pault at gcc dot gnu dot org  2007-07-04 08:50 ---

   
  is this still correct ?
 
 Adding Paul, so he can see this question and hopefully answer affirmatively.
 

The patch was posted to the list 0615; whilst functional, in that it fixed the
bugs, bootstrapped and regtested OK, it was not the whole job.  The intention
was to sort out some of the fundamental problems with characters and to get rid
of some of the kludges in translation.  The patch was also judged to be
untimely
relative to the 4.3 release schedule so I agreed to hold back.

I am, in fact, working on it this week and hope to get it out of the door this
weekend.

I am contemplating breaking the patch up into stages, of which the fix to this
PR would be one.  What do you think?

Paul


-- 


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



[Bug tree-optimization/25621] Missed optimization when unrolling the loop (splitting up the sum) (only with -ffast-math)

2007-07-04 Thread eres at il dot ibm dot com


--- Comment #5 from eres at il dot ibm dot com  2007-07-04 08:57 ---
You can also try to tune --param max-variable-expansions-in-unroller. The
default is to add one expansion (which seems to be the most helpful due to the
fact that adding more expansions can increase register pressure).


-- 

eres at il dot ibm dot com changed:

   What|Removed |Added

 CC||eres at il dot ibm dot com


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



[Bug fortran/32526] [4.3 regression] Spurious error: Name 'x' at (1) is an ambiguous reference to 'x' from module 'y'

2007-07-04 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2007-07-04 08:58 ---
(In reply to comment #4)
  Adding Paul as CC.

This is indeed my doing - sorry. The cause is

PR fortran/31494
* match.c (gfc_match_call): If a host associated symbol is not
a subroutine, build a new symtree/symbol in the current name
space.

I have not understood why this is happening yet, in spite of hanging
diagnostics on both versions of gfc_match_call.  The following fixes the
problem and bootstrap/regtests OK:

Index: gcc/fortran/module.c
===
*** gcc/fortran/module.c(revision 126214)
--- gcc/fortran/module.c(working copy)
*** read_module (void)
*** 3574,3580 
  if (st != NULL)
{
  /* Check for ambiguous symbols.  */
! if (st-n.sym != info-u.rsym.sym)
st-ambiguous = 1;
  info-u.rsym.symtree = st;
}
--- 3574,3581 
  if (st != NULL)
{
  /* Check for ambiguous symbols.  */
! if (st-n.sym != info-u.rsym.sym
!!st-n.sym-attr.generic)
st-ambiguous = 1;
  info-u.rsym.symtree = st;
}

However, I want to understand the necessity of this before submitting it.  I
think that I am 24 hours away from this.

Paul

PS Michael, that's a very pretty fortran OO example - thanks for the report. 


-- 


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



[Bug fortran/31197] [4.2/4.3 regression] TRANSPOSE/RESHAPE and strings

2007-07-04 Thread jv244 at cam dot ac dot uk


--- Comment #16 from jv244 at cam dot ac dot uk  2007-07-04 09:09 ---
(In reply to comment #15)
 The patch was also judged to be
 untimely
 relative to the 4.3 release schedule so I agreed to hold back.

since it is a regression wrt 4.1 , a fix could go in at 'anytime' ? If it is
very invasive, one should fix 4.2 before 4.2.1 though...


-- 


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



[Bug fortran/31197] [4.2/4.3 regression] TRANSPOSE/RESHAPE and strings

2007-07-04 Thread jv244 at cam dot ac dot uk


--- Comment #17 from jv244 at cam dot ac dot uk  2007-07-04 09:09 ---
 since it is a regression wrt 4.1 , a fix could go in at 'anytime' ? If it is
 very invasive, one should fix 4.2 before 4.2.1 though...

one should *not* fix 4.2 of course 


-- 


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



[Bug tree-optimization/25621] Missed optimization when unrolling the loop (splitting up the sum) (only with -ffast-math)

2007-07-04 Thread jv244 at cam dot ac dot uk


--- Comment #6 from jv244 at cam dot ac dot uk  2007-07-04 09:23 ---
(In reply to comment #5)
 You can also try to tune --param max-variable-expansions-in-unroller. The
 default is to add one expansion (which seems to be the most helpful due to the
 fact that adding more expansions can increase register pressure).
 

there seems to be no effect from --param max-variable-expansions-in-unroller, I
get the same timings for all values.

I do notice that ifort is twice as fast as gfortran on the original loop on my
machine (core2):

 gfortran -O3 -ffast-math -ftree-vectorize -march=native  -funroll-loops 
 -fvariable-expansion-in-unroller --param 
 max-variable-expansions-in-unroller=4 pr25621.f90
 ./a.out
 default loop  0.8680540
 hand optimized loop  0.8640540

 ifort -xT -O3 pr25621.f90
pr25621.f90(32) : (col. 0) remark: LOOP WAS VECTORIZED.
pr25621.f90(33) : (col. 0) remark: LOOP WAS VECTORIZED.
pr25621.f90(9) : (col. 2) remark: LOOP WAS VECTORIZED.
 ./a.out
 default loop  0.4400270
 hand optimized loop  0.8760550

and it looks like ifort vectorizes the first loop (whereas gfortran does not '
unsupported use in stmt'). As a reference :

 gfortran -O3 -ffast-math -ftree-vectorize -march=native  -funroll-loops 
 pr25621.f90
 ./a.out
 default loop   1.296081
 hand optimized loop  0.8600540

the code actually used for testing is :

! simple loop
! assume N is even
SUBROUTINE S31(a,b,c,N)
 IMPLICIT NONE
 integer :: N
 real*8  :: a(N),b(N),c
 integer :: i
 c=0.0D0
 DO i=1,N
   c=c+a(i)*b(i)
 ENDDO
END SUBROUTINE

! 'improved' loop
SUBROUTINE S32(a,b,c,N)
 IMPLICIT NONE
 integer :: N
 real*8  :: a(N),b(N),c,tmp
 integer :: i
 c=0.0D0
 tmp=0.0D0
 DO i=1,N,2
c=c+a(i)*b(i)
tmp=tmp+a(i+1)*b(i+1)
 ENDDO
 c=c+tmp
END SUBROUTINE

integer, parameter :: N=1024
real*8  :: a(N),b(N),c,tmp,t1,t2

a=0.0_8
b=0.0_8
DO i=1,200
   CALL S31(a,b,c,N)
ENDDO

CALL CPU_TIME(t1)
DO i=1,100
   CALL S31(a,b,c,N)
ENDDO
CALL CPU_TIME(t2)
write(6,*) default loop, t2-t1
CALL CPU_TIME(t1)
DO i=1,100
   CALL S32(a,b,c,N)
ENDDO
CALL CPU_TIME(t2)
write(6,*) hand optimized loop,t2-t1
END





-- 


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



[Bug other/32508] g++ emits concept checks instantiations (code size blows up).

2007-07-04 Thread pluto at agmk dot net


--- Comment #2 from pluto at agmk dot net  2007-07-04 09:25 ---
4.3.0 20070703 fails to.


-- 

pluto at agmk dot net changed:

   What|Removed |Added

  Known to fail|4.1.2 4.2.1 |4.1.2 4.2.1 4.3.0


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



[Bug fortran/31197] [4.2/4.3 regression] TRANSPOSE/RESHAPE and strings

2007-07-04 Thread pault at gcc dot gnu dot org


--- Comment #18 from pault at gcc dot gnu dot org  2007-07-04 09:26 ---
(In reply to comment #17)
  since it is a regression wrt 4.1 , a fix could go in at 'anytime' ? If it is
  very invasive, one should fix 4.2 before 4.2.1 though...
 
 one should *not* fix 4.2 of course 
 

All this argues for breaking it up into chunks.  I'll spend this afternoon on
it, rather than going on the conference excursion.

Paul


-- 


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



[Bug tree-optimization/32544] gcc 4.2.1 miscompiles Mesa's r300 DRI driver with -ftree-vrp

2007-07-04 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2007-07-04 09:49 ---
Sorry, I can't see what is wrong.  There is no effective difference in assembly
with/without -ftree-vrp.


-- 


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



[Bug fortran/31197] [4.2/4.3 regression] TRANSPOSE/RESHAPE and strings

2007-07-04 Thread jv244 at cam dot ac dot uk


--- Comment #19 from jv244 at cam dot ac dot uk  2007-07-04 10:05 ---
(In reply to comment #18)
 I'll spend this afternoon on
 it, rather than going on the conference excursion.

depending on location/weather, I'd go for the conference excursion ;-)


-- 


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



[Bug tree-optimization/32500] [4.2 Regression] Loop optimization limits range to size of array used inside loop

2007-07-04 Thread rguenth at gcc dot gnu dot org


--- Comment #12 from rguenth at gcc dot gnu dot org  2007-07-04 10:16 
---
This is SCEV.  From

L2:;
  i_7 = ASSERT_EXPR i_20, i_20  4;
  i.10_10 = (unsigned int) i_7;
  D.2489_11 = i.10_10 - 7;
  if (D.2489_11 = 2) goto L3; else goto L4;

we have

Found new range for i.10_10: [5, 12]


Visiting statement:
D.2489_11 = i.10_10 - 7;

(analyze_scalar_evolution
  (loop_nb = 1)
  (scalar = D.2489_11)
(get_scalar_evolution
  (scalar = D.2489_11)
  (scalar_evolution = {4294967290, +, 1}_1))
(set_scalar_evolution 
  (scalar = D.2489_11)
  (scalar_evolution = {4294967290, +, 1}_1))
) 
(instantiate_parameters
  (loop_nb = 1)
  (chrec = {4294967290, +, 1}_1)
  (res = {4294967290, +, 1}_1))
Found new range for D.2489_11: [4294967290, +INF]

which is wrong.  The new range should be ~[5, 4294967290].

scev_probably_wraps_p() returns false for the above chrec because for
the loop in question estimated_nb_iterations is 4(!) which is derived
from infer_loop_bounds_from_undefined.  On the trunk this is fixed
by rewriting number of iterations analysis.  On the 4.2 branch we
can fix this conservatively by

Index: tree-ssa-loop-niter.c
===
--- tree-ssa-loop-niter.c   (revision 126260)
+++ tree-ssa-loop-niter.c   (working copy)
@@ -1747,6 +1747,12 @@ infer_loop_bounds_from_undefined (struct
 {
   bb = bbs[i];

+  /* If BB is not executed in each iteration of the loop, we cannot
+use the operations in it to infer reliable upper bound on the
+# of iterations of the loop.  */
+  if (!dominated_by_p (CDI_DOMINATORS, loop-latch, bb))
+   continue;
+
   for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (bsi))
 {
  tree stmt = bsi_stmt (bsi);

I'm going to test this.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-06-26 10:45:47 |2007-07-04 10:16:51
   date||


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



[Bug c/30595] gcc3.4.6 generates incorrect ppc32 code for combination of bitfields and shifts

2007-07-04 Thread clemens dot koller at anagramm dot de


--- Comment #1 from clemens dot koller at anagramm dot de  2007-07-04 10:34 
---
Cannot reproduce this problem on PPC32 with gcc-4.2.0. The result is
with all -Ox correct: 234500


-- 


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



[Bug c++/30854] [4.3 Regression] Wrong number of arguments printed for constructor

2007-07-04 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-02-23 00:09:52 |2007-07-04 10:37:36
   date||


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



[Bug target/32623] New: m68k: Inaccurate multiply cost on some V2 ColdFire CPUs.

2007-07-04 Thread betheking at spray dot se
When building for a ColdFire V2 CPU, GCC will prefer using shift-and-add over
multiply, even if multiply would generate code that is smaller and as fast, if
not faster, on the target CPU in question. This happens because the multiply
cost is based on ColdFire version rather than the capabilities. Basing the
multiply cost on the presence of a MAC (or EMAC) unit on the target CPU would
be more accurate, at least on ColdFire V2.

See the definitions of MULL_COST and MULW_COST in gcc/config/m68k/m68k.c, at
about line 2138.


-- 
   Summary: m68k: Inaccurate multiply cost on some V2 ColdFire CPUs.
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: betheking at spray dot se


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



[Bug fortran/31197] [4.2/4.3 regression] TRANSPOSE/RESHAPE and strings

2007-07-04 Thread Tobias dot Schlueter at physik dot uni-muenchen dot de


--- Comment #20 from Tobias dot Schlueter at physik dot uni-muenchen dot de 
 2007-07-04 10:51 ---
Subject: Re:  [4.2/4.3 regression] TRANSPOSE/RESHAPE and
 strings

jv244 at cam dot ac dot uk wrote:
 --- Comment #19 from jv244 at cam dot ac dot uk  2007-07-04 10:05 ---
 (In reply to comment #18)
 I'll spend this afternoon on
 it, rather than going on the conference excursion.
 
 depending on location/weather, I'd go for the conference excursion ;-)

Warsaw, 18.5 C, overcast.  Of course, Paul's work on gfortran is more 
important than anything else :-)


-- 


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



[Bug tree-optimization/25621] Missed optimization when unrolling the loop (splitting up the sum) (only with -ffast-math)

2007-07-04 Thread dorit at gcc dot gnu dot org


--- Comment #7 from dorit at gcc dot gnu dot org  2007-07-04 11:14 ---
The vectorizer reports:
pr25621.f90:7: note: reduction used in loop.
pr25621.f90:7: note: Unknown def-use cycle pattern.

because of the seemingly redundant assignment:
c__lsm.63_30 = D.1361_38;
which uses the reduction variable D.1361_38 inside the loop (only to be used
outside the loop). Need to teach the vectorizer to ignore this assignment or
clean it away before the vectorizer.

bb 4:
  # prephitmp.57_5 = PHI storetmp.55_34(3), D.1361_38(5)
  # i_3 = PHI 1(3), i_40(5)
  D.1357_31 = i_3 + -1;
  D.1358_33 = (*a_32(D))[D.1357_31];
  D.1359_36 = (*b_35(D))[D.1357_31];
  D.1360_37 = D.1359_36 * D.1358_33;
  D.1361_38 = prephitmp.57_5 + D.1360_37;
  c__lsm.63_30 = D.1361_38;
  i_40 = i_3 + 1;
  if (i_3 == D.1339_28)
goto bb 6;
  else
goto bb 5;


-- 


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



[Bug middle-end/32327] [4.2 Regression] Incorrect stack sharing causing removal of live code

2007-07-04 Thread dnovillo at google dot com


--- Comment #30 from dnovillo at google dot com  2007-07-04 11:22 ---
Subject: Re:  [4.2 Regression] Incorrect stack sharing
 causing removal of live code

On 7/3/07 11:28 PM, mmitchel at gcc dot gnu dot org wrote:
 --- Comment #29 from mmitchel at gcc dot gnu dot org  2007-07-04 03:28 
 ---
 Diego, does this problem still exist on the 4.2 branch?  I see that you 
 checked
 in a patch, which you suggest may not be a complete fix, but does this test
 case still fail?

Yes, the problem still exists on 4.2 and mainline.  The patch is valid
in that it fixes a codegen deficiency, but it only works around this
bug.  The test case does not fail anymore, and getting another one to
fail may be tricky (it's a fairly rare bug, unfortunately).

A real fix is in the works, but it's not clear when it might be ready.


-- 


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



[Bug tree-optimization/25621] Missed optimization when unrolling the loop (splitting up the sum) (only with -ffast-math)

2007-07-04 Thread eres at il dot ibm dot com


--- Comment #8 from eres at il dot ibm dot com  2007-07-04 11:24 ---
I think c__lsm.63_30 is created during the store motion optimization.


-- 


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



[Bug fortran/31197] [4.2/4.3 regression] TRANSPOSE/RESHAPE and strings

2007-07-04 Thread pault at gcc dot gnu dot org


--- Comment #21 from pault at gcc dot gnu dot org  2007-07-04 11:32 ---

 Warsaw, 18.5 C, overcast.  Of course, Paul's work on gfortran is more 
 important than anything else :-)
 

There is also the question of what I am expected to do over the weekend after
three weeks away from home.  Catching up with gfc will not even be on the list.

P


-- 


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



[Bug tree-optimization/32482] [4.3 Regression] ICE verify_ssa failed

2007-07-04 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2007-07-04 11:45 ---
Subject: Bug 32482

Author: rguenth
Date: Wed Jul  4 11:44:58 2007
New Revision: 126314

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=126314
Log:
2007-07-04  Richard Guenther  [EMAIL PROTECTED]

PR tree-optimization/32482
* tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
original ssa name if we didn't find a shift expression.
Fix shift constant for bit zero test.

* gcc.c-torture/compile/pr32482.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr32482.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-ifcombine.c


-- 


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



[Bug tree-optimization/32482] [4.3 Regression] ICE verify_ssa failed

2007-07-04 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2007-07-04 11:46 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/31897] [4.3 Regression] 30% speed regression with -m32 on Opteron with rnflow

2007-07-04 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2007-07-04 11:57 ---
Can't reproduce this, gcc 4.3 actually seems to be faster (tests done on Intel
quadcore Core2):
/usr/src/gcc-4.2/obj/gcc/gfortran -B /usr/src/gcc-4.2/obj/gcc/ -L
/usr/src/gcc-4.2/obj/x86_64-unknown-linux-gnu/32/libgfortran/.libs/
-Wl,-rpath,/usr/src/gcc-4.2/obj/x86_64-unknown-linux-gnu/32/libgfortran/.libs/
-m32 -march=opteron -ffast-math -funroll-loops -ftree-vectorize
-ftree-loop-linear -O3 rnflow.f90 -o rnflow42
/usr/src/gcc/obj/gcc/gfortran -B /usr/src/gcc/obj/gcc/ -L
/usr/src/gcc/obj/x86_64-unknown-linux-gnu/32/libgfortran/.libs/
-Wl,-rpath,/usr/src/gcc/obj/x86_64-unknown-linux-gnu/32/libgfortran/.libs/ -m32
-march=opteron -ffast-math -funroll-loops -ftree-vectorize -ftree-loop-linear
-O3 rnflow.f90 -o rnflow43
gfortran -m32 -march=opteron -ffast-math -funroll-loops -ftree-vectorize
-ftree-loop-linear -O3 rnflow.f90 -o rnflow41

for i in 1 2 3; do time ./rnflow4$i  /dev/null; time ./rnflow4$i  /dev/null;
done

real0m30.003s
user0m29.601s
sys 0m0.399s

real0m29.811s
user0m29.436s
sys 0m0.370s

real0m29.875s
user0m29.468s
sys 0m0.403s

real0m29.824s
user0m29.441s
sys 0m0.378s

real0m26.007s
user0m25.627s
sys 0m0.376s

real0m25.822s
user0m25.403s
sys 0m0.415s


-- 


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



[Bug tree-optimization/32500] [4.2 Regression] Loop optimization limits range to size of array used inside loop

2007-07-04 Thread ed at fxq dot nl


--- Comment #13 from ed at fxq dot nl  2007-07-04 12:06 ---
Hello Richard,

I can confirm that the patch fixes this regression. I just installed a patch
compiler on my FreeBSD box and I get a proper binary, even when I build it with
'-O2 -ftree-vrp' (just to be sure). Thanks!

Any chance this patch will make it into 4.2.1?


-- 


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



[Bug target/31897] [4.3 Regression] 30% speed regression with -m32 on Opteron with rnflow

2007-07-04 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2007-07-04 12:29 ---
(In reply to comment #2)
 Can't reproduce this, gcc 4.3 actually seems to be faster (tests done on Intel
 quadcore Core2):

On core2 the bug doesn't trigger, but it shows on FC4 with:

vendor_id   : GenuineIntel
cpu family  : 15
model   : 4
model name  : Intel(R) Xeon(TM) CPU 3.60GHz
stepping: 10
cpu MHz : 3600.970
cache size  : 2048 KB

This is one of most mysterious bugs I've ever seen. The _idamax routine is
exactly the same for both builds, but it shows such a difference. I have
analyzed this with cachegrind but nothing sticks out there.


-- 


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



[Bug tree-optimization/32032] [4.3 Regression] Inliner not setting has_volatile_ops

2007-07-04 Thread jakub at gcc dot gnu dot org


--- Comment #4 from jakub at gcc dot gnu dot org  2007-07-04 12:31 ---
This doesn't ICE any longer on the trunk.


-- 


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



[Bug target/31897] [4.3 Regression] 30% speed regression with -m32 on Opteron with rnflow

2007-07-04 Thread ubizjak at gmail dot com


--- Comment #4 from ubizjak at gmail dot com  2007-07-04 12:32 ---
(In reply to comment #1)
 gfortran -ffast-math -funroll-loops -O3 -msse3 -mfpmath=387 rnflow.f90
 
 time ./a.out
 user0m37.982s

 gfortran -ffast-math -funroll-loops -O3 -msse3 -mfpmath=387 -ftree-vectorize
 rnflow.f90
 
 time ./a.out
 user0m55.031s

This is on XEON as in Comment #3.


-- 


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



[Bug tree-optimization/32500] [4.2 Regression] Loop optimization limits range to size of array used inside loop

2007-07-04 Thread rguenth at gcc dot gnu dot org


--- Comment #14 from rguenth at gcc dot gnu dot org  2007-07-04 12:38 
---
Subject: Bug 32500

Author: rguenth
Date: Wed Jul  4 12:38:23 2007
New Revision: 126315

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=126315
Log:
2007-07-04  Richard Guenther  [EMAIL PROTECTED]

PR tree-optimization/32500
* tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
Only use basic blocks that are always executed to infer loop bounds.

* gcc.c-torture/execute/pr32500.c: New testcase.

Added:
branches/gcc-4_2-branch/gcc/testsuite/gcc.c-torture/execute/pr32500.c
Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog
branches/gcc-4_2-branch/gcc/tree-ssa-loop-niter.c


-- 


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



[Bug tree-optimization/32500] [4.2 Regression] Loop optimization limits range to size of array used inside loop

2007-07-04 Thread rguenth at gcc dot gnu dot org


--- Comment #16 from rguenth at gcc dot gnu dot org  2007-07-04 12:40 
---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/32500] [4.2 Regression] Loop optimization limits range to size of array used inside loop

2007-07-04 Thread rguenth at gcc dot gnu dot org


--- Comment #15 from rguenth at gcc dot gnu dot org  2007-07-04 12:39 
---
Subject: Bug 32500

Author: rguenth
Date: Wed Jul  4 12:39:42 2007
New Revision: 126316

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=126316
Log:
2007-07-04  Richard Guenther  [EMAIL PROTECTED]

PR tree-optimization/32500
* gcc.c-torture/execute/pr32500.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr32500.c
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/30929] -pedantic-error and -Werror don't produce errors!

2007-07-04 Thread manu at gcc dot gnu dot org


--- Comment #6 from manu at gcc dot gnu dot org  2007-07-04 13:08 ---
(In reply to comment #4)
 
 No idea how to untangle -pedantic from -Wtabs or -Wampersand if
 -pedantic-errors has been given, but -Werror has not.


What gfortran should do is that if pedantic enables Wtabs, then the warnings
should be of the form:

if (pedantic  warn_tabs)
 pedantic(whatever);
else if (warn_tabs)
 warning(whatever);

pedantic() emits errors if -pedantic-errors, otherwise it emits warnings.
warning() emits errors if -Werror, otherwise it emits warnings.

I guess there would be similar functions in gfortran. (It would be great to
integrate the diagnostics machinery but making things work in a similar way is
already a step forward).


-- 


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



[Bug target/32622] BOOT_CFLAGS is not passed to stage2 and stage3 compile

2007-07-04 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2007-07-04 13:27 ---
Actually this is caused by config/mh-x86omitfp.  If you disable BOOT_CFLAGS in
that file, it will just work.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|bootstrap   |target


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



[Bug target/32558] v850: unrecognizable insn compiling libgcc2 on 64-bit CPU

2007-07-04 Thread nickc at redhat dot com


--- Comment #3 from nickc at redhat dot com  2007-07-04 13:28 ---
Hi Rask,

  Well the patch is definitely an improvement, so I have applied it.  I will
try to find time to look at the regressions in the next week or two.

Cheers
  Nick



-- 


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



[Bug other/31349] [4.3 Regression] gcc -v --help returns no options for C, C++

2007-07-04 Thread nickc at redhat dot com


--- Comment #7 from nickc at redhat dot com  2007-07-04 13:40 ---
Subject: Re:  [4.3 Regression] gcc -v --help returns no options
 for C, C++

Hi Brooks,

 So, if I understand correctly: all of the options are listed somewhere, but we
 no longer provide any information about which of the shared options under 
 language related options are supported by a given language's front end?

Correct.

Well by default anyway.  See below.

 While this may have been intentional, I do not think it counts as a feature -
 the listing of the common options without definitions at the top of the
 option listing did not take up a significant amount of space, and it provided
 very useful information that's now absent.

OK.

 (On the other hand, moving the _descriptions_ of the shared options to a 
 single
 listing is a good thing, IMO -- I want to make it clear that I'm not objecting
 to the bulk of this change!)

You can find out all the options supported by a given language, 
including the ones that it shares with other languages and including 
those that do not have a description by using the --help=language 
feature.  For example:

   % gcc --help=java
   The following options are supported by the language Java:
   -I  This switch lacks documentation
   -M  This switch lacks documentation
   -MD_This switch lacks documentation
   -MF This switch lacks documentation
   -MM This switch lacks documentation
   -MMD_   This switch lacks documentation
   -MP This switch lacks documentation
   -MT This switch lacks documentation
   -Wall   This switch lacks documentation
   -Wall-deprecation   This switch lacks documentation
   -Wall-javadoc   This switch lacks documentation
   -Wassert-identifier This switch lacks documentation
   -Wchar-concat   This switch lacks documentation
   -Wcondition-assign  This switch lacks documentation
   -Wconstructor-name  This switch lacks documentation
   -Wdep-ann   This switch lacks documentation
   -WdeprecatedWarn if a deprecated compiler feature, class,
   method, or field is used
   [etc...]

So I think that the bone of contention here is what should be listed by 
--help -v.  I think that leaving out options which have no description 
is a good default.  If for no other reason than to encourage people to 
write descriptions for the options so that they are then listed in the 
--help output.

Do you still feel that --help -v should list undocumented options ?

Cheers
   Nick


-- 


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



[Bug middle-end/32004] [4.1/4.2/4.3 regression] : can't find a register in class 'GENERAL_REGS' while reloading 'asm'

2007-07-04 Thread bonzini at gnu dot org


--- Comment #20 from bonzini at gnu dot org  2007-07-04 13:54 ---
The attached patch makes PR30311 resurface; this seems like a minor problem
because that code is dubious, and can be worked around by not doing the
transformation when the modes mismatch.


-- 


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



[Bug target/32622] BOOT_CFLAGS is not passed to stage2 and stage3 compile

2007-07-04 Thread spop at gcc dot gnu dot org


--- Comment #5 from spop at gcc dot gnu dot org  2007-07-04 13:42 ---
Subject: Re:  BOOT_CFLAGS is not passed to stage2 and stage3 compile

 Actually this is caused by config/mh-x86omitfp.  If you disable BOOT_CFLAGS in
 that file, it will just work.

Right, that's also what I saw, and the fix that I'm testing now is to
replace that line
from mh-x86omitfp by
BOOT_CFLAGS += -fomit-frame-pointer


-- 


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



[Bug rtl-optimization/31849] [4.3 Regression] Code size regression caused by fix to PR 31360

2007-07-04 Thread rakdver at gcc dot gnu dot org


--- Comment #18 from rakdver at gcc dot gnu dot org  2007-07-04 13:32 
---
(In reply to comment #0)
 The fix to PR31360 has caused significant code size regressions on ARM-EABI. 
 An example of this is from zlib (adler32.c) and is attached, compile with -Os
 -mcpu=arm7tdmi -fno-short-enums -w 
 
 The new code:
 1) Hoists a register containing 0 out of the loop
 2) Uses that *only* as a copy into another register (mov reg, #0 costs exactly
 the same as mov reg, reg)

Actually, rtx_cost claims that mov reg, #0 costs 20, while mov reg, reg costs
16.  Fixing this (assuming that is indeed wrong) will not fix the problem
(without further changes to the invariant motion), but it is the first step.


-- 


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



[Bug fortran/32526] [4.3 regression] Spurious error: Name 'x' at (1) is an ambiguous reference to 'x' from module 'y'

2007-07-04 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2007-07-04 14:05 ---
(In reply to comment #5)

OK, I now have it understood.  The patch in the previous comment is the clue. 
The patch for pr31494 was marking generic interfaces as subroutines, thereby
screwing up the mechanism for detecting ambiguity.

The correct solution is regtesting, right now.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-06-27 21:05:26 |2007-07-04 14:05:56
   date||


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



[Bug target/32450] -pg seemingly causes miscompilation

2007-07-04 Thread ubizjak at gmail dot com


--- Comment #9 from ubizjak at gmail dot com  2007-07-04 14:11 ---
(In reply to comment #1)
 Most likely -pg is changing the alignment of the stack which is incorrect.  Oh
 -pg code is emitted by the target specific code so this is a target issue.

Hm, on x86_64 pg inserts:

fprintf (file, \tleaq\t%sP%d@(%%rip),%%r11\n, LPREFIX, labelno);
fprintf (file, [EMAIL PROTECTED](%%rip)\n, MCOUNT_NAME);

So, it loads %r11 and calls mcount. The only thing that can go wrong is, that
some value in %r11 gets rewritten. Could you look what happens with %r11 around
the point of failure?


-- 


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



[Bug target/32450] -pg seemingly causes miscompilation

2007-07-04 Thread ubizjak at gmail dot com


--- Comment #10 from ubizjak at gmail dot com  2007-07-04 14:16 ---
(In reply to comment #9)

 So, it loads %r11 and calls mcount. The only thing that can go wrong is, that
 some value in %r11 gets rewritten.

Not even that because x86_64 is a NO_PROFILE_COUNTERS by default.


-- 


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



Re: [Bug tree-optimization/32328] [4.2/4.3 Regression] -fstrict-aliasing causes skipped code

2007-07-04 Thread Daniel Berlin

On 4 Jul 2007 03:29:25 -, mmitchel at gcc dot gnu dot org
[EMAIL PROTECTED] wrote:



--


Just as an update:
I have been working with richi (I code, he tests :P) diligently on a
patch for mainline, and have one that fixes the dealii regression (and
thus, should fix this as well).


[Bug tree-optimization/32328] [4.2/4.3 Regression] -fstrict-aliasing causes skipped code

2007-07-04 Thread dberlin at dberlin dot org


--- Comment #14 from dberlin at gcc dot gnu dot org  2007-07-04 14:16 
---
Subject: Re:  [4.2/4.3 Regression] -fstrict-aliasing causes skipped code

On 4 Jul 2007 03:29:25 -, mmitchel at gcc dot gnu dot org
[EMAIL PROTECTED] wrote:


 --

Just as an update:
I have been working with richi (I code, he tests :P) diligently on a
patch for mainline, and have one that fixes the dealii regression (and
thus, should fix this as well).


-- 


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



[Bug tree-optimization/32606] ICE in set_ssa_val_to, at tree-ssa-sccvn.c:1026

2007-07-04 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2007-07-04 14:24 ---
Here is a reduced testcase which has only one function in it:
int inb(int);
void is870(unsigned int wkport, unsigned char j)
{
 unsigned int tmport;
 unsigned char i;
 for (i = 0; i  16; i++)
 {
  tmport = wkport + 0x18;
  tmport += 0x07;
  while ((inb(tmport)  0x80) == 0)
  {
   if ((inb(tmport)  0x01) != 0)
   {
tmport -= 0x06;
tmport += 0x06;
   }
  }
  tmport = wkport + 0x14;
  tmport += 0x04;
  tmport += 0x07;
widep_in1:
  if ((j  0x01) != 0)
  {
   tmport -= 0x06;
   tmport += 0x06;
   goto widep_in1;
  }
  while ((inb(tmport)  0x80) == 0) {}
 }
}


-- 


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



[Bug target/32450] -pg seemingly causes miscompilation

2007-07-04 Thread ubizjak at gmail dot com


--- Comment #11 from ubizjak at gmail dot com  2007-07-04 14:26 ---
Hm...

--cut here--
// just a stupid testcase, don't bother with source
long long test(long long a, long long b)
{
  return a / b;
}
--cut here--

cc1 -O2:

test:
.LFB2:
movq%rdi, %rdx
movq%rdi, %rax
sarq$63, %rdx
idivq   %rsi
ret

cc1 -O1 -p:
test:
.LFB2:
pushq   %rbp
.LCFI0:
movq%rsp, %rbp
.LCFI1:
callmcount
movq%rdi, %rdx
movq%rdi, %rax
sarq$63, %rdx
idivq   %rsi
leave
ret


cc1 -O2 -p
test:
.LFB2:
pushq   %rbp
.LCFI0:
movq%rsp, %rbp
.LCFI1:
callmcount
leave   
movq%rdi, %rdx
movq%rdi, %rax
sarq$63, %rdx
idivq   %rsi
ret

Just a wild guess, could this depend on PR32450? Could you check if there is an
access to stack after leave insn?


-- 


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



[Bug fortran/32594] INDEX is not simplified, leads to ICE

2007-07-04 Thread fxcoudert at gcc dot gnu dot org


--- Comment #4 from fxcoudert at gcc dot gnu dot org  2007-07-04 14:36 
---
Please forget comment #3. The reason for the ICE is that substring
simplification was written without taking into account the possibility of
foo(14:) or foo(:14), ie one of the substring bounds being implicit. The
following patch fixes it, I'm regtesting and will try to write a few more
testcases before submitting it for review:

Index: expr.c
===
--- expr.c  (revision 126249)
+++ expr.c  (working copy)
@@ -1503,9 +1503,19 @@ gfc_simplify_expr (gfc_expr *p, int type
  char *s;
  int start, end;

- gfc_extract_int (p-ref-u.ss.start, start);
- start--;  /* Convert from one-based to zero-based.  */
- gfc_extract_int (p-ref-u.ss.end, end);
+ if (p-ref-u.ss.start)
+ {
+   gfc_extract_int (p-ref-u.ss.start, start);
+   start--;  /* Convert from one-based to zero-based.  */
+ }
+ else
+   start = 0;
+
+ if (p-ref-u.ss.end)
+   gfc_extract_int (p-ref-u.ss.end, end);
+ else
+   end = p-value.character.length - 1;
+
  s = gfc_getmem (end - start + 2);
  memcpy (s, p-value.character.string + start, end - start);
  s[end - start + 1] = '\0';  /* TODO: C-style string.  */


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |fxcoudert at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Keywords||patch
   Last reconfirmed|2007-07-04 07:47:17 |2007-07-04 14:36:19
   date||


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



[Bug middle-end/32624] New: [4.3 Regression] r126198 causes tramp3d slowdown w/o leafify

2007-07-04 Thread rguenth at gcc dot gnu dot org
The following part of r126198 causes a 5% slowdown of tramp3d for the
non-leafify
tests (with leafify it makes it run faster):

2007-07-02  Richard Guenther  [EMAIL PROTECTED]

* fold-const.c (fold_convert): Revert fix for PR15988. 
* tree-inline.c (setup_one_parameter): Instead fix it here by
using fold_build1 instead of fold_convert and checking for
error_mark_node.  Convert only if the conversion is necessary.

Index: fold-const.c
===
--- fold-const.c(revision 126197)
+++ fold-const.c(revision 126198)
@@ -2262,9 +2262,7 @@ fold_convert (tree type, tree arg)
   || TREE_CODE (orig) == ERROR_MARK)
 return error_mark_node;

-  if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (orig)
-  || lang_hooks.types_compatible_p (TYPE_MAIN_VARIANT (type),
-   TYPE_MAIN_VARIANT (orig)))
+  if (TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (orig))
 return fold_build1 (NOP_EXPR, type, arg);

   switch (TREE_CODE (type))
Index: tree-inline.c
===
--- tree-inline.c   (revision 126197)
+++ tree-inline.c   (revision 126198)
@@ -1278,10 +1278,15 @@ setup_one_parameter (copy_body_data *id,
   tree init_stmt;
   tree var;
   tree var_sub;
-  tree rhs = value ? fold_convert (TREE_TYPE (p), value) : NULL;
+  tree rhs = value;
   tree def = (gimple_in_ssa_p (cfun)
  ? gimple_default_def (id-src_cfun, p) : NULL);

+  if (value
+   value != error_mark_node
+   !useless_type_conversion_p (TREE_TYPE (p), TREE_TYPE (value)))
+rhs = fold_build1 (NOP_EXPR, TREE_TYPE (p), value);
+  
   /* If the parameter is never assigned to, has no SSA_NAMEs created,
  we may not need to create a new variable here at all.  Instead, we may
  be able to just use the argument value.  */


I am investigating why.


-- 
   Summary: [4.3 Regression] r126198 causes tramp3d slowdown w/o
leafify
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: rguenth at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org


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



[Bug target/32450] -pg seemingly causes miscompilation

2007-07-04 Thread jv244 at cam dot ac dot uk


--- Comment #12 from jv244 at cam dot ac dot uk  2007-07-04 14:51 ---
(In reply to comment #11)

 Just a wild guess, could this depend on PR32450? Could you check if there is 
 an
 access to stack after leave insn?

Hi Uros,

thanks for looking into this, but I'm afraid I don't really understand what
you're asking for. Also the PR mentioned in the above comment is a circular
reference. 


-- 


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



[Bug libfortran/32611] Print sign of negative zero

2007-07-04 Thread jvdelisle at gcc dot gnu dot org


--- Comment #3 from jvdelisle at gcc dot gnu dot org  2007-07-04 15:23 
---
OK, you talked me into it. :)


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jvdelisle at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-07-04 07:08:52 |2007-07-04 15:23:04
   date||


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



[Bug libstdc++/31906] -Xcompiler is inserted after -Xlinker when building libstdc++

2007-07-04 Thread pcarlini at suse dot de


--- Comment #5 from pcarlini at suse dot de  2007-07-04 15:34 ---
Therefore, can we close the PR?


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 CC||zackw at panix dot com
 Status|UNCONFIRMED |WAITING


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



[Bug middle-end/32624] [4.3 Regression] r126198 causes tramp3d slowdown w/o leafify

2007-07-04 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2007-07-04 16:11 ---
This seems to be an aliasing problem.  Somehow we do not prune SMTs enough
after
the patch.  MPT grouping doesn't trigger in.

An example function to look at is (x86_64)
_ZN14MultiArgKernelI9MultiArg4I5FieldI22UniformRectilinearMeshI10MeshTraitsILi3Ed21UniformRectilinearTag12CartesianTagLi3EEEd10BrickViewUES9_S9_S9_E15EvaluateLocLoopIN6Forgas5CentYILi3EEELi3EEE3runEv

if you look at the alias6 dump (the one before lim which does no longer move
invariant integer loads out of the inner loop) you can see:

without the patch:
  # VUSE SMT.21607_161(D)  
  D.852018_33 =
op$multiArg_m_7-a1_m.fieldEngine_m.data_m.blockControllerPtr_m.ptr_m; 

with the patch (only the tree-inline.c part is actually necessary):
# VUSE SMT.21592_132(D), SMT.21595_227
  D.854673_30 =
op$multiArg_m_19-a1_m.fieldEngine_m.data_m.blockControllerPtr_m.ptr_m;

it doesn't make sense that there is a difference in pruning.  Really.


-- 


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



[Bug middle-end/32624] [4.3 Regression] r126198 causes tramp3d slowdown w/o leafify

2007-07-04 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2007-07-04 16:12 ---
Created an attachment (id=13844)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13844action=view)
alias6 dump of the function without the patch


-- 


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



[Bug libstdc++/30264] libstdc++-v3 compile error - conflicts with previous using declaration

2007-07-04 Thread pcarlini at suse dot de


--- Comment #4 from pcarlini at suse dot de  2007-07-04 16:16 ---
Feedback not forthcoming.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID


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



[Bug fortran/32613] [4.2 regression] Different results depending on unnecessary variable declaration

2007-07-04 Thread kargl at gcc dot gnu dot org


--- Comment #2 from kargl at gcc dot gnu dot org  2007-07-04 16:24 ---
I've compared the output of -fdump-tree-original for 4.2 and trunk, and
the only significant difference is

 internal (j)
 {
   int4 k;
+  int4 i;
   logical4 __result_internal;

That is, the implicitly typed 'i' in trunk is not being host associated 
with the 'i' in the procedure INTERNAL, so INTERNAL gets a local 
variable.


-- 


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



[Bug fortran/32613] [4.2 regression] Different results depending on unnecessary variable declaration

2007-07-04 Thread kargl at gcc dot gnu dot org


--- Comment #3 from kargl at gcc dot gnu dot org  2007-07-04 16:25 ---
I thought I had confirmed this as a bug.  Let's try again.


-- 

kargl at gcc dot gnu dot org changed:

   What|Removed |Added

   Last reconfirmed|2007-07-03 16:24:15 |2007-07-04 16:25:56
   date||


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



[Bug fortran/32613] [4.2 regression] Different results depending on unnecessary variable declaration

2007-07-04 Thread kargl at gcc dot gnu dot org


--- Comment #4 from kargl at gcc dot gnu dot org  2007-07-04 16:27 ---
Add wrong-code keyword.


-- 

kargl at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||wrong-code


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



[Bug middle-end/32624] [4.3 Regression] r126198 causes tramp3d slowdown w/o leafify

2007-07-04 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2007-07-04 16:12 ---
Created an attachment (id=13845)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13845action=view)
alias6 dump of the function with the patch


-- 


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



[Bug middle-end/32624] [4.3 Regression] r126198 causes tramp3d slowdown w/o leafify

2007-07-04 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2007-07-04 16:31 ---
So, the following patch brings performance back in-line:

Index: tree-inline.c
===
--- tree-inline.c   (revision 126325)
+++ tree-inline.c   (working copy)
@@ -1283,8 +1283,7 @@ setup_one_parameter (copy_body_data *id,
  ? gimple_default_def (id-src_cfun, p) : NULL);

   if (value
-   value != error_mark_node
-   !useless_type_conversion_p (TREE_TYPE (p), TREE_TYPE (value)))
+   value != error_mark_node)
 rhs = fold_build1 (NOP_EXPR, TREE_TYPE (p), value);

   /* If the parameter is never assigned to, has no SSA_NAMEs created,

which doesn't make sense, as it is then just unconditionally adding a
temporary and a conversion.


-- 


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



[Bug target/32337] [4.3 Regression] Error: Register number out of range 0..1

2007-07-04 Thread jakub at gcc dot gnu dot org


--- Comment #1 from jakub at gcc dot gnu dot org  2007-07-04 16:35 ---
Created an attachment (id=13846)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13846action=view)
gcc43-pr32337.patch

The problem seems to be caused by the addition of the
emitted_frame_related_regs
array, there are several issues I found (see this patch) and in the end
two of the 3 saved registers (RP, PFS, FP) were saved in the same register,
which caused severe havoc.
I'll try to bootstrap/regtest this on ia64-linux, so far I have only tested
that it cures the testcase.


-- 


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



[Bug tree-optimization/16913] [4.0/4.1/4.2/4.3 Regression] restrict does not make a difference

2007-07-04 Thread pinskia at gcc dot gnu dot org


--- Comment #11 from pinskia at gcc dot gnu dot org  2007-07-04 17:02 
---
Which is almost the best you can do :).
Well except to use store with update but that is an IV-OPTs issue.


-- 


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



[Bug fortran/32526] [4.3 regression] Spurious error: Name 'x' at (1) is an ambiguous reference to 'x' from module 'y'

2007-07-04 Thread patchapp at dberlin dot org


--- Comment #7 from patchapp at dberlin dot org  2007-07-04 17:15 ---
Subject: Bug number PR32526

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2007-07/msg00381.html


-- 


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



[Bug target/31388] ICE building libiberty multilib for mips16 multilibs

2007-07-04 Thread mmitchel at gcc dot gnu dot org


--- Comment #4 from mmitchel at gcc dot gnu dot org  2007-07-04 17:18 
---
Subject: Bug 31388

Author: mmitchel
Date: Wed Jul  4 17:18:22 2007
New Revision: 126329

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=126329
Log:
PR c++/31388
* cp-tree.h (ARITHMETIC_TYPE): Include COMPLEX_TYPE.
* typeck.c (type_after_usual_arithmetic_conversions): Adjust, as
COMPLEX_TYPE is now an ARITHMETIC_TYPE.
* init.c (build_zero_init): Adjust, as
COMPLEX_TYPE is now a SCALAR_TYPE.
* typeck2.c (digest_init): Allow brace-enclosed initializers for
COMPLEX_TYPE, even though that is now a SCALAR_TYPE.

PR c++/31338
* g++.dg/ext/complex2.C: New test.

Added:
branches/gcc-4_2-branch/gcc/testsuite/g++.dg/ext/complex2.C
  - copied unchanged from r124172,
trunk/gcc/testsuite/g++.dg/ext/complex2.C
Modified:
branches/gcc-4_2-branch/gcc/cp/ChangeLog
branches/gcc-4_2-branch/gcc/cp/cp-tree.h
branches/gcc-4_2-branch/gcc/cp/init.c
branches/gcc-4_2-branch/gcc/cp/typeck.c
branches/gcc-4_2-branch/gcc/cp/typeck2.c
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/31338] [4.1/4.2 regression] Cannot apply ! to complex constants

2007-07-04 Thread mmitchel at gcc dot gnu dot org


--- Comment #8 from mmitchel at gcc dot gnu dot org  2007-07-04 17:18 
---
Subject: Bug 31338

Author: mmitchel
Date: Wed Jul  4 17:18:22 2007
New Revision: 126329

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=126329
Log:
PR c++/31388
* cp-tree.h (ARITHMETIC_TYPE): Include COMPLEX_TYPE.
* typeck.c (type_after_usual_arithmetic_conversions): Adjust, as
COMPLEX_TYPE is now an ARITHMETIC_TYPE.
* init.c (build_zero_init): Adjust, as
COMPLEX_TYPE is now a SCALAR_TYPE.
* typeck2.c (digest_init): Allow brace-enclosed initializers for
COMPLEX_TYPE, even though that is now a SCALAR_TYPE.

PR c++/31338
* g++.dg/ext/complex2.C: New test.

Added:
branches/gcc-4_2-branch/gcc/testsuite/g++.dg/ext/complex2.C
  - copied unchanged from r124172,
trunk/gcc/testsuite/g++.dg/ext/complex2.C
Modified:
branches/gcc-4_2-branch/gcc/cp/ChangeLog
branches/gcc-4_2-branch/gcc/cp/cp-tree.h
branches/gcc-4_2-branch/gcc/cp/init.c
branches/gcc-4_2-branch/gcc/cp/typeck.c
branches/gcc-4_2-branch/gcc/cp/typeck2.c
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/31338] [4.1 regression] Cannot apply ! to complex constants

2007-07-04 Thread mmitchel at gcc dot gnu dot org


--- Comment #9 from mmitchel at gcc dot gnu dot org  2007-07-04 17:27 
---
Fixed in 4.2.1.


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|mark at codesourcery dot com|unassigned at gcc dot gnu
   ||dot org
 Status|ASSIGNED|NEW
Summary|[4.1/4.2 regression] Cannot |[4.1 regression] Cannot
   |apply ! to complex|apply ! to complex
   |constants   |constants


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



[Bug tree-optimization/32500] [4.2 Regression] Loop optimization limits range to size of array used inside loop

2007-07-04 Thread ed at fxq dot nl


--- Comment #17 from ed at fxq dot nl  2007-07-04 17:35 ---
Sorry if I'm being a nitpick...

The committed testcase contains a small error; it has an off-by-one bug that
causes a small buffer overflow.

The line:

  foo(numbers[i]);

should be replaced with:

  foo(numbers[i - 1]);

It shouldn't cause any real problems, because it's just a testcase, but maybe
some quite intelligent new optimizer might trip on that.


-- 


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



[Bug fortran/32613] [4.2 regression] Different results depending on unnecessary variable declaration

2007-07-04 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2007-07-04 17:44 ---
This is my doing - that makes two this week. *groan*

The regression is caused by the patch for pr31204, which goes back to April. 
For some reason that I do not yet see, the variable i in the statement function
is being treated as if it were an implied do-loop iterator.

I'm on to it.

Paul 


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-07-04 16:25:56 |2007-07-04 17:44:22
   date||


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



[Bug tree-optimization/20643] [4.0/4.1/4.2 Regression] Tree loop optimizer does worse job than RTL loop optimizer

2007-07-04 Thread pinskia at gcc dot gnu dot org


--- Comment #18 from pinskia at gcc dot gnu dot org  2007-07-04 17:58 
---
Yep this was fixed by Pointer_plus.
The load of hmm-tsc is no longer in the inner most loop.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[4.0/4.1/4.2/4.3 Regression]|[4.0/4.1/4.2 Regression]
   |Tree loop optimizer does|Tree loop optimizer does
   |worse job than RTL loop |worse job than RTL loop
   |optimizer   |optimizer


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



[Bug bootstrap/32625] New: Bootstrap comparison failure!

2007-07-04 Thread jv244 at cam dot ac dot uk
 cat ../gcc/LAST_UPDATED
Wed Jul  4 19:21:37 CEST 2007
Wed Jul  4 17:21:37 UTC 2007 (revision 126328)


rm -f stage_current
make[3]: Leaving directory `/data/vondele/gcc_trunk/obj'
Comparing stages 2 and 3
tail: cannot open `/data/vondele/gcc_trunk/obj/stage2-gcc/./32/crtbeginS.o' for
reading: No such file or directory
tail: cannot open `/data/vondele/gcc_trunk/obj/stage2-gcc/./32/crtbeginT.o' for
reading: No such file or directory
tail: cannot open `/data/vondele/gcc_trunk/obj/stage2-gcc/./32/crtfastmath.o'
for reading: No such file or directory
tail: cannot open `/data/vondele/gcc_trunk/obj/stage2-gcc/./32/crtbegin.o' for
reading: No such file or directory
tail: cannot open `/data/vondele/gcc_trunk/obj/stage2-gcc/./32/crtprec32.o' for
reading: No such file or directory
tail: cannot open `/data/vondele/gcc_trunk/obj/stage2-gcc/./32/crtprec64.o' for
reading: No such file or directory
tail: cannot open `/data/vondele/gcc_trunk/obj/stage2-gcc/./32/crtprec80.o' for
reading: No such file or directory
tail: cannot open `/data/vondele/gcc_trunk/obj/stage2-gcc/./32/crtendS.o' for
reading: No such file or directory
tail: cannot open `/data/vondele/gcc_trunk/obj/stage2-gcc/./32/crtend.o' for
reading: No such file or directory
Bootstrap comparison failure!
./32/crtbeginS.o differs
./32/crtbeginT.o differs
./32/crtfastmath.o differs
./32/crtbegin.o differs
./32/crtprec32.o differs
./32/crtprec64.o differs
./32/crtprec80.o differs
./32/crtendS.o differs
./32/crtend.o differs
make[2]: *** [compare] Error 1
make[2]: Leaving directory `/data/vondele/gcc_trunk/obj'
make[1]: *** [stage3-bubble] Error 2
make[1]: Leaving directory `/data/vondele/gcc_trunk/obj'
make: *** [bootstrap] Error 2


-- 
   Summary: Bootstrap comparison failure!
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jv244 at cam dot ac dot uk
  GCC host triplet: x86_64-unknown-linux-gnu


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



[Bug bootstrap/32625] Bootstrap comparison failure!

2007-07-04 Thread jv244 at cam dot ac dot uk


--- Comment #1 from jv244 at cam dot ac dot uk  2007-07-04 18:00 ---
could be due to an interupted  restarted build. I'm trying again with a clean
build.


-- 


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



[Bug fortran/32613] [4.3 regression] Different results depending on unnecessary variable declaration

2007-07-04 Thread burnus at gcc dot gnu dot org


--- Comment #6 from burnus at gcc dot gnu dot org  2007-07-04 18:10 ---
 This a regression with respect to 4.2.

I read this as: Works in 4.2.x, fails in 4.3, which is also what I get; I
therefore changed the summary from 4.2 regression to 4.3 regression.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to fail||4.3.0
  Known to work||4.2.1
Summary|[4.2 regression] Different  |[4.3 regression] Different
   |results depending on|results depending on
   |unnecessary variable|unnecessary variable
   |declaration |declaration


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



[Bug fortran/32626] New: Run-time check for recursive functions

2007-07-04 Thread burnus at gcc dot gnu dot org
We probably need:

-fcheck-*
with
  all
  bounds
  pointers
  recursive

The recursive test is simple. C example:

bla(...)
{
static recursive = 0;
if(recursive)
   exit_with_error
recursive = 1
...
recursive = 0; // Last statement
}


-- 
   Summary: Run-time check for recursive functions
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



  1   2   >