[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 #8 from pault at gcc dot gnu dot org  2007-07-05 06:50 ---
Subject: Bug 32526

Author: pault
Date: Thu Jul  5 06:49:54 2007
New Revision: 126354

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126354
Log:
2007-07-05  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/32526
* match.c (gfc_match_call): Check, in all cases, that a symbol
is neither generic nor a subroutine before trying to add it as
a subroutine.

PR fortran/32613
* match.c (gfc_match_do): Reset the implied_index attribute.

2007-07-05  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/32526
* gfortran.dg/interface_14.f90: New test.

PR fortran/32613
* gfortran.dg/do_iterator_2.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/do_iterator_2.f90
trunk/gcc/testsuite/gfortran.dg/interface_14.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/match.c
trunk/gcc/testsuite/ChangeLog


-- 


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



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

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


--- Comment #10 from pault at gcc dot gnu dot org  2007-07-05 06:50 ---
Subject: Bug 32613

Author: pault
Date: Thu Jul  5 06:49:54 2007
New Revision: 126354

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126354
Log:
2007-07-05  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/32526
* match.c (gfc_match_call): Check, in all cases, that a symbol
is neither generic nor a subroutine before trying to add it as
a subroutine.

PR fortran/32613
* match.c (gfc_match_do): Reset the implied_index attribute.

2007-07-05  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/32526
* gfortran.dg/interface_14.f90: New test.

PR fortran/32613
* gfortran.dg/do_iterator_2.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/do_iterator_2.f90
trunk/gcc/testsuite/gfortran.dg/interface_14.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/match.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug target/32450] -pg seemingly causes miscompilation

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


--- Comment #21 from jv244 at cam dot ac dot uk  2007-07-05 05:01 ---
This is a small testcase (that aborts if miscompiled):

> cat test.f90
MODULE cp_log_handling
  INTEGER, PRIVATE:: stack_pointer=0
  INTEGER, PARAMETER, PRIVATE :: max_stack_pointer=10
CONTAINS
  SUBROUTINE cp_add_default_logger()
IF (stack_pointer+1>max_stack_pointer) THEN
   CALL mp_stop()
ENDIF
stack_pointer=stack_pointer+1
  END SUBROUTINE cp_add_default_logger
  SUBROUTINE mp_stop()
 CALL ABORT()
  END SUBROUTINE
END MODULE
USE cp_log_handling
CALL cp_add_default_logger()
END

gfortran -v -O2 -pg -march=native test.f90
Driving: gfortran -v -O2 -pg -march=native test.f90 -lgfortranbegin -lgfortran
-lm -shared-libgcc
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: /data/vondele/gcc_trunk/gcc/configure
--prefix=/data/vondele/gcc_trunk/build --enable-languages=c,fortran
--with-mpfr=/data/programs/mpfr/
Thread model: posix
gcc version 4.3.0 20070704 (experimental)
 /data/vondele/gcc_trunk/build/libexec/gcc/x86_64-unknown-linux-gnu/4.3.0/f951
test.f90 -march=core2 -mcx16 -msahf --param l1-cache-size=512 --param
l1-cache-line-size=64 -mtune=core2 -quiet -dumpbase test.f90 -auxbase test -O2
-version -p -fintrinsic-modules-path
/data/vondele/gcc_trunk/build/lib/gcc/x86_64-unknown-linux-gnu/4.3.0/finclude
-o /tmp/cckJso3I.s
GNU F95 version 4.3.0 20070704 (experimental) (x86_64-unknown-linux-gnu)
compiled by GNU C version 4.3.0 20070704 (experimental), GMP version
4.1.4, MPFR version 2.2.1.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
 as -V -Qy -o /tmp/ccA9EOak.o /tmp/cckJso3I.s
GNU assembler version 2.16.91.0.5 (x86_64-suse-linux) using BFD version
2.16.91.0.5 20051219 (SUSE Linux)

/data/vondele/gcc_trunk/build/libexec/gcc/x86_64-unknown-linux-gnu/4.3.0/collect2
--eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2
/usr/lib/../lib64/gcrt1.o /usr/lib/../lib64/crti.o
/data/vondele/gcc_trunk/build/lib/gcc/x86_64-unknown-linux-gnu/4.3.0/crtbegin.o
-L/data/vondele/gcc_trunk/build/lib/gcc/x86_64-unknown-linux-gnu/4.3.0
-L/data/vondele/gcc_trunk/build/lib/gcc/x86_64-unknown-linux-gnu/4.3.0/../../../../lib64
-L/lib/../lib64 -L/usr/lib/../lib64
-L/data/vondele/gcc_trunk/build/lib/gcc/x86_64-unknown-linux-gnu/4.3.0/../../..
/tmp/ccA9EOak.o -lgfortranbegin -lgfortran -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc
/data/vondele/gcc_trunk/build/lib/gcc/x86_64-unknown-linux-gnu/4.3.0/crtend.o
/usr/lib/../lib64/crtn.o
> ./a.out
Aborted


-- 


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



[Bug tree-optimization/32589] [4.3 Regression] exp_dbug.adb:981: error: invalid array index

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


--- Comment #5 from aoliva at gcc dot gnu dot org  2007-07-05 04:50 ---
FWIW, I haven't been able to bootstrap on ppc64-linux-gnu after this patch went
in.  I'm not sure I'd tried a full bootstrap before (I've only very recently
got easy access to a ppc box), but the failure is bootstrap compare in a bunch
of Ada files.  bootstrap4 didn't make much difference.  I'm trying
ppc-linux-gnu now.


-- 

aoliva at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||aoliva at gcc dot gnu dot
   ||org


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



[Bug rtl-optimization/32629] New: missing CSE for constant in registers / inefficient memset

2007-07-04 Thread ak at muc dot de
gcc version 4.3.0 20070704 (experimental)

test case derived from linux kernel

struct x { 
long a,b,c,d,e,f;
char array[32];
};

void f(struct x *p)
{
p->a = 0;
p->b = 0;
p->c = 0;
p->d = 0;
p->e = 0;
p->f = 0;
memset(&p->array, 0, 32);
}

compiled with -O2 or -Os gives
movq$0, (%rdi)
movq$0, 8(%rdi)
movl$8, %ecx
movq$0, 16(%rdi)
movq$0, 24(%rdi)
xorl%eax, %eax
movq$0, 32(%rdi)
movq$0, 40(%rdi)
addq$48, %rdi
rep
stosl
ret

This shows several problems:
- the zero in eax should have been used for all the initializations
replacing the immediate giving shorter code [especially with -Os,
but it would have been a win even with -O2 e.g on decode limited CPUs]
In a more test complex case the xorl was even before all the field
initializations.

- the rep ; stosl should be rep ; stosq because 8 byte alignment is guaranteed
by the type


-- 
   Summary: missing CSE for constant in registers / inefficient
memset
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ak at muc dot de
  GCC host triplet: x86_64-linux
GCC target triplet: x86_64-linux


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



[Bug middle-end/32628] [4.3 Regression] bogus integer overflow warning

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


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-07-04 23:34 ---
A simple example is:
void *f(void)
{
  char *a = ((char*)0)+(unsigned long long)(-1);
  return a;
}

This is caused by pointer_plus so mine.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pinskia at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
  Component|c   |middle-end
 Ever Confirmed|0   |1
   Keywords||diagnostic
   Last reconfirmed|-00-00 00:00:00 |2007-07-04 23:34:35
   date||
Summary|bogus integer overflow  |[4.3 Regression] bogus
   |warning |integer overflow warning
   Target Milestone|--- |4.3.0


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



[Bug c/32628] New: bogus integer overflow warning

2007-07-04 Thread ak at muc dot de
gcc version 4.3.0 20070704 (experimental)

Following test case derived from the Linux ACPI code warns

toverflow.c: In function 'f':
toverflow.c:8: warning: integer overflow in expression

but the warning is not correct because 0 + ULONG_MAX doesn't really overflow.

typedef void *acpi_handle;
typedef unsigned long long UINT64;
typedef unsigned long long acpi_native_uint;
typedef unsigned char u8;

int f(acpi_handle device)
{
if (device == ((acpi_handle *) (void *) u8 *) (void *) void
*)0 + (acpi_native_uint)((UINT64)(~((UINT64) 0)))
return 1;
return 0;
}


-- 
   Summary: bogus integer overflow warning
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ak at muc dot de
 GCC build triplet: x86_64-linux
  GCC host triplet: x86_64-linux
GCC target triplet: x86_64-linux


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



[Bug libstdc++/31957] Build of compiler fails with 'error: #endif without #if'

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


--- Comment #6 from dje at gcc dot gnu dot org  2007-07-04 23:24 ---
I use GNU Sed.  If we need to add that as a requirement, so be it.


-- 


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



[Bug middle-end/30905] [4.3 Regression] Fails to cross-jump

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


--- Comment #5 from pinskia at gcc dot gnu dot org  2007-07-04 22:35 ---
I can't reproduce this on the trunk,  unless I am making a mistake.  I think
the cross jump is happening now.


-- 


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



[Bug tree-optimization/24609] [4.0/4.1/4.2/4.3 regression] Same value duplicated in two different registers

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


--- Comment #15 from pinskia at gcc dot gnu dot org  2007-07-04 22:11 
---
For foo4.c
> SCCVN says j_3 value numbers to i_2 (VH.3)
But that is really PR 28868.

The orginal issue here I think is fixed because we now use unsigned int for the
addition.
The IR looks like:

:
  d = 2;
  prephitmp.39 = 1;
  goto ;

:
  d = 1;
  prephitmp.39 = 0;

:
  MEM[base: a, index: ivtmp.49, step: 4, offset: 4294967292] = d;
  D.2029 = bar ((short int *) ivtmp.52, (int) (short int) *(pretmp.36 +
prephitmp.39), d);

Which looks good as there is no duplicated value.  Note the offset of -4 is a
different and already known issue.

Ian do you think this should no longer be a 4.3 Regression or should we even
not PRE "PHI<1,2> - 1" ?


-- 


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



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

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


--- Comment #4 from dberlin at gcc dot gnu dot org  2007-07-04 22:11 ---
Subject: Bug 32606

Author: dberlin
Date: Wed Jul  4 22:11:14 2007
New Revision: 126338

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126338
Log:
2007-07-04  Daniel Berlin  <[EMAIL PROTECTED]>

PR tree-optimization/32604
PR tree-optimization/32606

* tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
(compute_antic_safe): Removed.
(ANTIC_SAFE_LOADS): Ditto.
(compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
(execute_pre): Don't call compute_antic_safe.
(vuse_equiv): New function.
(make_values_for_stmt): Use it
* tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
not always true.


Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr32606.c
trunk/gcc/testsuite/gfortran.fortran-torture/execute/pr32604.f90
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-pre.c
trunk/gcc/tree-ssa-sccvn.c


-- 


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



[Bug tree-optimization/32604] [4.3 regression] miscompilation at -O2

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


--- Comment #7 from dberlin at gcc dot gnu dot org  2007-07-04 22:11 ---
Subject: Bug 32604

Author: dberlin
Date: Wed Jul  4 22:11:14 2007
New Revision: 126338

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126338
Log:
2007-07-04  Daniel Berlin  <[EMAIL PROTECTED]>

PR tree-optimization/32604
PR tree-optimization/32606

* tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
(compute_antic_safe): Removed.
(ANTIC_SAFE_LOADS): Ditto.
(compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
(execute_pre): Don't call compute_antic_safe.
(vuse_equiv): New function.
(make_values_for_stmt): Use it
* tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
not always true.


Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr32606.c
trunk/gcc/testsuite/gfortran.fortran-torture/execute/pr32604.f90
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-pre.c
trunk/gcc/tree-ssa-sccvn.c


-- 


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



[Bug target/19923] [4.0/4.1/4.2/4.3 Regression] openssl is slower when compiled with gcc 4.0 than 3.3

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


--- Comment #39 from pinskia at gcc dot gnu dot org  2007-07-04 21:53 
---
I think this has been imrpvoed for 4.3, it would be nice if someone did some
timings for 4.3.


-- 


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



[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 kauer at os dot inf dot tu-dresden dot de


--- Comment #21 from kauer at os dot inf dot tu-dresden dot de  2007-07-04 
21:50 ---
This simple testcase triggers the bug, too. Unfortunatelly I didnot test the
patch yet.

--
inline void g(int b)
{
  register int reg __asm__ ("eax") = 0;
  asm volatile ("nop" : "+r"(reg), "+r"(b));
}

void f(int a)
{
  a /= 1000;
  g(a);
}


-- 


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



[Bug target/26290] [4.1/4.2/4.3 Regression]: code pessimization wrt. GCC 4.0 probably due to TARGET_MEM_REF

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


--- Comment #19 from pinskia at gcc dot gnu dot org  2007-07-04 21:32 
---
>  lsti = MEM[index: ivtmp.46, offset: 0x0fffc];

H.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords|ra  |


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



[Bug middle-end/29749] [4.0/4.1/4.2/4.3 regression] Missing byte swap optimizations

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


--- Comment #2 from pinskia at gcc dot gnu dot org  2007-07-04 21:30 ---
Confirmed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-07-04 21:30:28
   date||


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



[Bug target/31331] [avr] ICE on function attribute syntax for main()

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


--- Comment #5 from aesok at gcc dot gnu dot org  2007-07-04 21:10 ---
Subject: Bug 31331

Author: aesok
Date: Wed Jul  4 21:10:28 2007
New Revision: 126337

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126337
Log:
PR target/31331
* config/avr/avr.c (avr_naked_function_p): Handle receiving a type
rather than a decl. 
(avr_attribute_table): Make "naked" attribute apply to function types
rather than to decls.
(avr_handle_fntype_attribute): New function.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/avr/avr.c


-- 


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



[Bug tree-optimization/21485] [4.0/4.1/4.2 Regression] codegen regression due to PRE increasing register pressure (missing load PRE really)

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


--- Comment #23 from pinskia at gcc dot gnu dot org  2007-07-04 21:01 
---
I am going to declare this as fixed for 4.3, pointer plus gets the original
case correctly and the secondary issues are all file seperately.


-- 

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]
   |codegen regression due to   |codegen regression due to
   |PRE increasing register |PRE increasing register
   |pressure (missing load PRE  |pressure (missing load PRE
   |really) |really)


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



[Bug libstdc++/31957] Build of compiler fails with 'error: #endif without #if'

2007-07-04 Thread pcarlini at suse dot de


--- Comment #5 from pcarlini at suse dot de  2007-07-04 20:39 ---
David, can you have a quick look at this issue? Thanks.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 CC||dje at watson dot ibm dot
   ||com


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



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

2007-07-04 Thread patchapp at dberlin dot org


--- Comment #9 from patchapp at dberlin dot org  2007-07-04 20:30 ---
Subject: Bug number PR32613

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/msg00396.html


-- 


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



[Bug target/32450] -pg seemingly causes miscompilation

2007-07-04 Thread ubizjak at gmail dot com


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

> (the variable should be 0), but it looks like the assembly might be wrong:

> b.s:

>  (1)cmpl$9, __cp_log_handling_MOD_stack_pointer(%rip)
> callmcount
> movq%rdi, %rbx
>  (2)jle .L21

This _is_ wrong assembly. The call to mcount is clobbering flags reg between CC
setting insn (1) and CC receiving insn (2). From there, the problem becomes
trivial to track down, but I _really_ need a good sleep now.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ubizjak at gmail dot com
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-07-04 20:10:22
   date||


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



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

2007-07-04 Thread sgk at troutmask dot apl dot washington dot edu


--- Comment #8 from sgk at troutmask dot apl dot washington dot edu  
2007-07-04 20:08 ---
Subject: Re:  [4.3 regression] Different results depending on unnecessary
variable declaration

On Wed, Jul 04, 2007 at 08:06:08PM -, pault at gcc dot gnu dot org wrote:
> 
> 
> --- Comment #7 from pault at gcc dot gnu dot org  2007-07-04 20:06 ---
> (In reply to comment #6)
> 
> > 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".
> > 
> 
> Thanks, Tobias.  I was about to check whether this was so.  I suspect that Al
> meant wrt 4.2.
> 
> I am just about to submit the fix.
> 

I marked it as the 4.2 regression, and yes, I meant a regression in
trunk with respect to 4.2.


-- 


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



[Bug target/32450] -pg seemingly causes miscompilation

2007-07-04 Thread pinskia at gmail dot com


--- Comment #19 from pinskia at gmail dot com  2007-07-04 20:07 ---
Subject: Re:  -pg seemingly causes miscompilation

On 4 Jul 2007 19:17:22 -, jv244 at cam dot ac dot uk
<[EMAIL PROTECTED]> wrote:
> b.s:
>
> .LCFI15:
> cmpl$9, __cp_log_handling_MOD_stack_pointer(%rip)
> callmcount
> movq%rdi, %rbx
> jle .L21

This is obviosuly wrong as the call will most likely clobber the flags
register.

-- Pinski


-- 


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



Re: [Bug target/32450] -pg seemingly causes miscompilation

2007-07-04 Thread Andrew Pinski

On 4 Jul 2007 19:17:22 -, jv244 at cam dot ac dot uk
<[EMAIL PROTECTED]> wrote:

b.s:

.LCFI15:
cmpl$9, __cp_log_handling_MOD_stack_pointer(%rip)
callmcount
movq%rdi, %rbx
jle .L21


This is obviosuly wrong as the call will most likely clobber the flags register.

-- Pinski


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

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


--- Comment #7 from pault at gcc dot gnu dot org  2007-07-04 20:06 ---
(In reply to comment #6)

> 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".
> 

Thanks, Tobias.  I was about to check whether this was so.  I suspect that Al
meant wrt 4.2.

I am just about to submit the fix.

Paul


-- 


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



[Bug fortran/32627] [ISO Bind C] Accept c_f_pointer for TYPE

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


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[ISO Bind C] Accept |[ISO Bind C] Accept
   |c_pointer_* for TYPE|c_f_pointer for TYPE
   Target Milestone|--- |4.3.0


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



[Bug fortran/32627] New: [ISO Bind C] Accept c_pointer_* for TYPE

2007-07-04 Thread burnus at gcc dot gnu dot org
From:
http://de.wikibooks.org/w/index.php?title=Fortran:_Fortran_und_C:_Fortran_2003#Datenverbund

/tmp/ccW1yqyk.o: In function `MAIN__':
f.f90:(.text+0x3e): undefined reference to `__iso_c_binding_c_f_pointer_s1'


program main
  use iso_c_binding
  implicit none
  type, bind( c ) :: A
integer( c_int ) :: xc, yc
type( c_ptr ):: str
  end type
  type( c_ptr )   :: x
  type( A ), pointer  :: fptr
  character( len=9 ), pointer :: strptr
  call c_f_pointer( fptr%str, strptr )
end program main


-- 
   Summary: [ISO Bind C] Accept c_pointer_* for TYPE
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  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=32627



[Bug target/32450] -pg seemingly causes miscompilation

2007-07-04 Thread ubizjak at gmail dot com


--- Comment #18 from ubizjak at gmail dot com  2007-07-04 19:58 ---
(In reply to comment #12)

> 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. 

Sorry for the confusion, I was thinking on PR 32475, "function with asm() does
not setup stack frame".


-- 


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



[Bug libstdc++/31957] Build of compiler fails with 'error: #endif without #if'

2007-07-04 Thread joerg dot richter at pdv-fs dot de


--- Comment #4 from joerg dot richter at pdv-fs dot de  2007-07-04 19:48 
---
Any chance that this gets fixed with 4.2.1? This is the only thing on AIX that
prevents an unpatched bootstrap.
Or perhaps its only missing documentation that GNU sed must be used.


-- 


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



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

2007-07-04 Thread woody77 at gmail dot com


--- Comment #4 from woody77 at gmail dot com  2007-07-04 19:22 ---
Marco,

thanks for the pointer to JNC.  I'm targeting an embedded platform, with only
32MB of storage, so reducing the classes needed is mandatory.

>From the size of the executable, it looked like the linker had just failed to
prune uncalled code.  (since libgcj is ~30MB on it's own).

Is there a way to pull a report from the linker to determine what
methods/classes are left behind and which are included?  I did a check with
strings and saw all sorts of classes that I'm sure I'm not using
(java.util.zip.ZipInputStream for instance).


-- 


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



[Bug target/32450] -pg seemingly causes miscompilation

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


--- Comment #17 from jv244 at cam dot ac dot uk  2007-07-04 19:17 ---
actually, in gdb, I find that the variable is not corrupted: 
(gdb) bt
#0  0x0089dc94 in __message_passing_MOD_mp_stop ()
#1  0x0050ed2e in __cp_log_handling_MOD_cp_add_default_logger ()
#2  0x0059a897 in __f77_interface_MOD_init_cp2k ()
#3  0x00d49638 in MAIN__ ()
#4  0x00e8786c in main (argc=2, argv=0x7fff1e9b6768) at
/data/vondele/gcc_trunk/gcc/libgfortran/fmain.c:22
(gdb) up
#1  0x0050ed2e in __cp_log_handling_MOD_cp_add_default_logger ()
(gdb) print __cp_log_handling_MOD_stack_pointer
$1 = 0

(the variable should be 0), but it looks like the assembly might be wrong:

g.s:

.LCFI15:
callmcount
cmpl$9, __cp_log_handling_MOD_stack_pointer(%rip)
movq%rdi, %rbx
jle .L21
movl$108, %edx
movl$.LC8, %esi
movl$.LC9, %edi
call__message_passing_MOD_mp_stop

b.s:

.LCFI15:
cmpl$9, __cp_log_handling_MOD_stack_pointer(%rip)
callmcount
movq%rdi, %rbx
jle .L21
movl$108, %edx
movl$.LC8, %esi
movl$.LC9, %edi
call__message_passing_MOD_mp_stop


-- 


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



[Bug target/32450] -pg seemingly causes miscompilation

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


--- Comment #16 from jv244 at cam dot ac dot uk  2007-07-04 19:09 ---
I've added the assembly as obtained from

 1044  gfortran -O2 -pg -S cp_log_handling.f90
 1045  mv cp_log_handling.s g.s
 1046  gfortran -O2 -pg -march=native -S cp_log_handling.f90
 1047  mv cp_log_handling.s b.s

(i.e. the good and the bad case) for the file that triggers the stop. The stop
is triggered by a check on :

  INTEGER, PRIVATE:: stack_pointer=0
  INTEGER, PARAMETER, PRIVATE :: max_stack_pointer=10

[...]
IF (stack_pointer+1>max_stack_pointer) THEN
   CALL mp_stop(100,routineP//&
"too many default loggers, increase max_stack_pointer in
"//moduleN)
ENDIF

it must be stack_pointer that gets corrupted somehow.


-- 


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



[Bug target/32450] -pg seemingly causes miscompilation

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


--- Comment #15 from jv244 at cam dot ac dot uk  2007-07-04 19:03 ---
Created an attachment (id=13848)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13848&action=view)
good assembly


-- 


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



[Bug target/32450] -pg seemingly causes miscompilation

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


--- Comment #14 from jv244 at cam dot ac dot uk  2007-07-04 19:02 ---
Created an attachment (id=13847)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13847&action=view)
bad assembly


-- 


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



[Bug c++/32245] [4.1/4.2/4.3 Regression] wrong POD type initialization with pointer to member

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


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |mark at codesourcery dot com
   |dot org |
 Status|NEW |ASSIGNED


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



[Bug target/32450] -pg seemingly causes miscompilation

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


--- Comment #13 from jv244 at cam dot ac dot uk  2007-07-04 18:51 ---
just checked that current trunk (Wed Jul  4 17:21:37 UTC 2007 (revision
126328)) still exhibits the same problem. I don't see the same problem on an
opteron, only on a core2 (both using -march=native), so it could be something
specific to core2?


-- 


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



[Bug fortran/32601] [ISO Bind C] Access to private components not prevented

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


--- Comment #1 from burnus at gcc dot gnu dot org  2007-07-04 18:48 ---
Related:

  print *, c_loc(4)
  end

gives an ICE. Expected:
Error: .f90, line 5: The argument to C_LOC must be a pointer or target
additionally with -std=f2003:
Error: .f90, line 5: Derived type C_PTR in io-list has PRIVATE components


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code


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



[Bug bootstrap/32625] Bootstrap comparison failure!

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


--- Comment #2 from jv244 at cam dot ac dot uk  2007-07-04 18:34 ---
a clean bootstrap passes now


-- 

jv244 at cam dot ac dot uk changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug fortran/32580] iso_c_binding c_f_procpointer / procedure pointers

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


--- Comment #3 from burnus at gcc dot gnu dot org  2007-07-04 18:29 ---
Clean up from my Bind(C) notes: The following should give an error such as:
Error: 'fptr' argument of 'c_f_procpointer' intrinsic at (1) must be a
PROCEDURE POINTER


  use iso_c_binding
  type(c_funptr) :: cfunptr
  real, pointer :: myFunc
  call c_f_procpointer(cfunptr, myFunc)
end


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu dot
   ||org
Summary|iso_c_binding   |iso_c_binding
   |c_f_procpointer |c_f_procpointer / procedure
   ||pointers


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



[Bug fortran/32616] "Too short actual argument" for array element storage sequence

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


--- Comment #2 from burnus at gcc dot gnu dot org  2007-07-04 18:15 ---
> A more general case as described in PR30939?

Well, my example in PR30939 is actually fixed by PR30940, however, as NAG f95
proofs, one can test this at run time. I thus changed the purpose of that bug.

This PR is about the missing parts of the compile-time length check, which I
did not implement when fixing PR30940.


-- 


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



[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



[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 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 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 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 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/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 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 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=gcc&view=rev&rev=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 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=gcc&view=rev&rev=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 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 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 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=13846&action=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 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 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 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 #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 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 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=13845&action=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 #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=13844&action=view)
alias6 dump of the function without 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 #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   
  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 
  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 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 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 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 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 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 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 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 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



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



[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 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 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 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= 
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 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 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 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 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 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=gcc&view=rev&rev=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 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=gcc&view=rev&rev=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 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/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 #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/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 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/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 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=gcc&view=rev&rev=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 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/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 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 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.

:
  # prephitmp.57_5 = PHI 
  # 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 ;
  else
goto ;


-- 


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

:;
  i_7 = ASSERT_EXPR  4>;
  i.10_10 = (unsigned int) i_7;
  D.2489_11 = i.10_10 - 7;
  if (D.2489_11 <= 2) goto ; else goto ;

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



  1   2   >