[Bug fortran/50288] FAIL: gfortran.dg/class_45b.f03

2011-09-06 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50288

--- Comment #14 from Tobias Burnus burnus at gcc dot gnu.org 2011-09-06 
06:49:11 UTC ---
Sorry for missing the issue with run-once; I thought I had tested it, but
seemingly I haven't done so.

(In reply to comment #13)
 Ok, since class_45{a,b} is not really a run-time test, I think the best
 solution would be to just convert it to dg-do link:

Good idea; the patch is preapproved, but I have not yet tested it.


[Bug tree-optimization/49911] SRA + DOM + VRP + -fstrict-enums incorrectly remove predicate

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49911

--- Comment #20 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
07:30:11 UTC ---
(In reply to comment #18)
 Created attachment 25199 [details]
 Patch preventing SRA from creating enumeration type replacements
 
 I'm currently testing this patch which will change the type of enum
 components it decides to scalarize to the corresponding integer.  I
 have verified the type of the replacement is one.
 
 I've lost the track of whether anything else needs to be done to close
 this bug, though.  Should the patch be applied to the 4.6 and 4.5
 branches too (assuming it passes testing there)?

I think so, at least if it solves the testcase in this bug.  Not exposing
extra enum typed registers to VRP is definitely a good thing.


[Bug rtl-optimization/38644] [4.4/4.5/4.6/4.7 Regression] Optimization flag -O1 -fschedule-insns2 causes wrong code

2011-09-06 Thread sebastian.hu...@embedded-brains.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38644

--- Comment #43 from Sebastian Huber sebastian.hu...@embedded-brains.de 
2011-09-06 07:45:29 UTC ---
How long will this middle to back end ping pong last until this bug is finally
fixed?  It is now open since 2008.


[Bug target/50302] inefficient float-double conversion in AVX with -mtune=generic

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50302

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-09-06
 CC||harsha.jagasia at amd dot
   ||com, hubicka at gcc dot
   ||gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
07:51:46 UTC ---
Good question.  Probably even with -msseN we could tweak some generic settings
when we know no old CPUs have those issues.  Of course the question is
whether
we still need to care for those today or whether we should simply change
generic.


[Bug c++/50296] [4.7 Regression] New C++ test failures

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50296

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Target|i686-pc-linux-gnu, cris-elf |i686-pc-linux-gnu,
   ||cris-elf, x86_64-*-*
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-09-06
 Ever Confirmed|0   |1

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
07:54:00 UTC ---
Confirmed, me too.


[Bug middle-end/50295] [4.6 Regression] ICE (segfault) in expand_debug_expr at cfgexpand.c:2380

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50295

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-09-06
Version|unknown |4.6.2
   Target Milestone|--- |4.6.2
 Ever Confirmed|0   |1

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
08:01:29 UTC ---
Confirmed.  Reducing (I think it's a dup).


[Bug middle-end/50295] [4.6 Regression] ICE (segfault) in expand_debug_expr at cfgexpand.c:2380

2011-09-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50295

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||aoliva at gcc dot gnu.org,
   ||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-09-06 
08:15:21 UTC ---
We have:
bb 4:
# DEBUG this = this_2(D)
reason_15 = reason_10(D);
reason_17 = reason_15;
# DEBUG reason = reason_17
D.137092_16 = this_2(D)-D.122214;
mozilla::net::PWyciwygChannelChild::Send__delete__ (D.137092_16);
D.132395_6 = 0;

and ccp (substitute_and_fold called from ccp_finalize) decides (because
has_zero_uses is true for reason_17) to remove reason_17 = reason_15; stmt
first, which during gsi_remove adds a # DEBUG D#xxx = reason_15 stmt.
Then reason_15 = reason_10(D); is being removed, but for some reason the newly
added debug stmt isn't found during FOR_EACH_IMM_USE_FAST for reason_15.


[Bug middle-end/50295] [4.6 Regression] ICE (segfault) in expand_debug_expr at cfgexpand.c:2380

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50295

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
08:23:15 UTC ---
That would be the case if we're missing an update_stmt on the debug stmt.


[Bug middle-end/50295] [4.6 Regression] ICE (segfault) in expand_debug_expr at cfgexpand.c:2380

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50295

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
08:26:44 UTC ---
Because gimple_build_debug_bind_stat does not set the stmt to modified?  So
it's not automatically updated on gsi_insert_before ().


[Bug middle-end/50295] [4.6 Regression] ICE (segfault) in expand_debug_expr at cfgexpand.c:2380

2011-09-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50295

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2011-09-06 
08:29:58 UTC ---
It is gimple_modified_p and gsi_insert_before does call build_stmt_operands on
it.  Still debugging...


[Bug ada/50294] ICE in output_constructor_regular_field

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50294

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
08:31:56 UTC ---
My idea with fixing the Ada issue would be to conditionally use a signed
or unsigned (sizetype) domain type.  Not sure if all of the middle-end
copes well with ssizetype domains (but well, we should fix it then).

Of course that wouldn't fix use of an even larger domain type
such as Unsigned_128_T is mod 2 ** 128 and appropriate large constants.
But I see several special-cases in the Gigi code that tries to handle
overflow situations.

Thus, I think we ideally should allow any kind of integer type in
TYPE_DOMAIN, not just sizetype variants.  But that's of course an even
bigger change.

Sidenote: my idea was to remove special-casings of TYPE_IS_SIZETYPE from
folders but have a few special-cases explicit in size_binop so we know
the definite context from which they are invoked (like from stor-layout).
That's much better than to expose the special-casing from random
optimization passes that happen to call into fold.


[Bug fortran/44646] [F2008] Implement DO CONCURRENT

2011-09-06 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44646

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2011-09-06 
08:28:50 UTC ---
(In reply to comment #1)
 TODO as follow up:
 
 * Replace Sorry by a real implementation in trans-stmt.c

Patch: http://gcc.gnu.org/ml/fortran/2011-09/msg5.html


 * Implement type-spec support for forall and do concurrent:
   (integer(8) :: i = 1:5:2)

See F2008, 16.4 Statement and construct entities (esp. paragraph 5 and 6) for
the semantic [and R752/C735 for the syntax].


[Bug libstdc++/50257] [C++0x] unordered_map slow initialization due to huge __prime_list

2011-09-06 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50257

--- Comment #10 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-06 
09:14:40 UTC ---
Unfortunately constexpr functions are not going to help here, because of course
a call of such a function is never optimized to a constant unless *the
arguments* are all compile-time constants. In the meanwhile I timed my last
patchlet and definitely isn't worse than the other for the simple testcase we
have, otherwise I think it's much superior from any other point of view
(besides maybe readability but actually I'm using a rather common pattern),
thus for now I guess I'm going ahead with it. Thanks again.


[Bug ada/50294] ICE in output_constructor_regular_field

2011-09-06 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50294

--- Comment #5 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-09-06 
09:14:28 UTC ---
 My idea with fixing the Ada issue would be to conditionally use a signed
 or unsigned (sizetype) domain type.  Not sure if all of the middle-end
 copes well with ssizetype domains (but well, we should fix it then).

Yes, IIRC I tried something like that at some point.  You also mentioned in an
earlier thread that you tried to make sizetype signed.  What kind of problems
did you run into?  This was the original setting of the Ada compiler, so the
middle-end was able to support it, at least until relatively recently.

 Of course that wouldn't fix use of an even larger domain type
 such as Unsigned_128_T is mod 2 ** 128 and appropriate large constants.
 But I see several special-cases in the Gigi code that tries to handle
 overflow situations.

GNAT doesn't support integral types bigger than 64-bit anyway.

 Thus, I think we ideally should allow any kind of integer type in
 TYPE_DOMAIN, not just sizetype variants.  But that's of course an even
 bigger change.

The signedness flip is already tricky...

 Sidenote: my idea was to remove special-casings of TYPE_IS_SIZETYPE from
 folders but have a few special-cases explicit in size_binop so we know
 the definite context from which they are invoked (like from stor-layout).
 That's much better than to expose the special-casing from random
 optimization passes that happen to call into fold.

OK, I see.


[Bug libstdc++/50257] [C++0x] unordered_map slow initialization due to huge __prime_list

2011-09-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50257

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org 2011-09-06 
09:23:59 UTC ---
You could perhaps do
  if (__builtin_constant_p (n))
{
  if (n  X1)
r = P1;
  else if (n  X2)
r = P2;
  else if (n  X3)
r = P3;
  ...
}
  else
what_you_do_currently.
Then if the argument is seen to be a constant (can be even through
optimizations), it will be optimized at compile time, otherwise it will be done
at runtime.  The drawbacks might be that you have the table in two places and
if inlining estimations don't work correctly, the inline function might be
considered too large.


[Bug c++/50296] [4.7 Regression] New C++ test failures

2011-09-06 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50296

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 Target|i686-pc-linux-gnu,  |i686-pc-linux-gnu,
   |cris-elf, x86_64-*-*|cris-elf, x86_64-*-*,
   ||power*-*-*

--- Comment #4 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-09-06 
09:39:36 UTC ---
Me too on x86_64-apple-darwin10 and powerpc-apple-darwin9
(20_util/tuple/moveable2.cc only).
g++.dg/cpp0x/regress/abi-empty7.C fails with

FAIL: g++.dg/cpp0x/regress/abi-empty7.C (test for excess errors)
Excess errors:
/opt/gcc/work/gcc/testsuite/g++.dg/cpp0x/regress/abi-empty7.C:12:8: error:
uninitialized member 'S7::s1' in 'constexpr' constructor
/opt/gcc/work/gcc/testsuite/g++.dg/cpp0x/regress/abi-empty7.C:7:8: error:
uninitialized member 'S2::s1' in 'constexpr' constructor

and 20_util/tuple/moveable2.cc fails with

FAIL: 20_util/tuple/moveable2.cc (test for excess errors)
Excess errors:
/opt/gcc/build_w/x86_64-apple-darwin10.8.0/i386/libstdc++-v3/include/tuple:272:42:
internal compiler error: Segmentation fault

Partial backtrace gives

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x
cx_check_missing_mem_inits (fun=value temporarily unavailable, due to
optimizations, body=0x1016db798, complain=false) at
../../work/gcc/cp/semantics.c:5808
5808  if (TREE_CODE (field) != FIELD_DECL
(gdb) bt
#0  cx_check_missing_mem_inits (fun=value temporarily unavailable, due to
optimizations, body=0x1016db798, complain=false) at
../../work/gcc/cp/semantics.c:5808
#1  0x0001001a30cb in register_constexpr_fundef (fun=0x1016fb500,
body=0x1016db798) at ../../work/gcc/cp/semantics.c:5853
Previous frame inner to this frame (gdb could not unwind past this frame)


[Bug libstdc++/50257] [C++0x] unordered_map slow initialization due to huge __prime_list

2011-09-06 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50257

--- Comment #12 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-06 
09:39:47 UTC ---
Thanks Jakub, for now we'd rather keep the library __builtin_constant_p-free (a
couple of weeks ago we had fun with Marc Glisse recollecting all the flames on
the mailing list the last time somebody tried to add one elsewhere ;) Really, I
think here most of the improvement performance-wise comes from not calling the
out-of-line lower_bound on the whole __prime_list (normally in the profile the
malloc call is much higher) thus I say let's delay for now further optimization
for constant values (would be 0 and 10, I guess),


[Bug ada/50294] ICE in output_constructor_regular_field

2011-09-06 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50294

--- Comment #6 from rguenther at suse dot de rguenther at suse dot de 
2011-09-06 09:52:38 UTC ---
On Tue, 6 Sep 2011, ebotcazou at gcc dot gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50294
 
 --- Comment #5 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-09-06 
 09:14:28 UTC ---
  My idea with fixing the Ada issue would be to conditionally use a signed
  or unsigned (sizetype) domain type.  Not sure if all of the middle-end
  copes well with ssizetype domains (but well, we should fix it then).
 
 Yes, IIRC I tried something like that at some point.  You also mentioned in an
 earlier thread that you tried to make sizetype signed.  What kind of problems
 did you run into?  This was the original setting of the Ada compiler, so the
 middle-end was able to support it, at least until relatively recently.

I run into various diagnostic issues in the C family frontends, so I 
quickly gave up.

  Of course that wouldn't fix use of an even larger domain type
  such as Unsigned_128_T is mod 2 ** 128 and appropriate large constants.
  But I see several special-cases in the Gigi code that tries to handle
  overflow situations.
 
 GNAT doesn't support integral types bigger than 64-bit anyway.

And 32-bit for 32-bit targets?  sizetype is 32bits there ...

  Thus, I think we ideally should allow any kind of integer type in
  TYPE_DOMAIN, not just sizetype variants.  But that's of course an even
  bigger change.
 
 The signedness flip is already tricky...

Yeah, I backed off when seeing the amount of code I'd need to change
in GiGi ... esp. as I don't know the code well.

  Sidenote: my idea was to remove special-casings of TYPE_IS_SIZETYPE from
  folders but have a few special-cases explicit in size_binop so we know
  the definite context from which they are invoked (like from stor-layout).
  That's much better than to expose the special-casing from random
  optimization passes that happen to call into fold.
 
 OK, I see.


[Bug ada/50294] ICE in output_constructor_regular_field

2011-09-06 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50294

--- Comment #7 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-09-06 
10:21:42 UTC ---
 And 32-bit for 32-bit targets?  sizetype is 32bits there ...

No, 64-bit type are supported universally.  Of course your mileage may vary for
array types indexed with a 64-bit type...


[Bug libstdc++/50257] [C++0x] unordered_map slow initialization due to huge __prime_list

2011-09-06 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50257

--- Comment #13 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2011-09-06 10:22:27 UTC ---
Author: paolo
Date: Tue Sep  6 10:22:21 2011
New Revision: 178581

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178581
Log:
2011-09-06  Paolo Carlini  paolo.carl...@oracle.com

PR libstdc++/50257
* include/bits/hashtable_policy.h (_Prime_rehash_policy::
   _M_next_bkt): Optimize for small argument.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/hashtable_policy.h


[Bug libstdc++/50257] [C++0x] unordered_map slow initialization due to huge __prime_list

2011-09-06 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50257

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #14 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-06 
10:26:59 UTC ---
I'm closing this, further improvements as enhancements.


[Bug rtl-optimization/50205] [4.6/4.7 Regression] ICE: in code_motion_path_driver, at sel-sched.c:6581 with -fselective-scheduling2 and custom flags

2011-09-06 Thread amonakov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50205

Alexander Monakov amonakov at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-09-06
 CC||abel at gcc dot gnu.org,
   ||amonakov at gcc dot gnu.org
 AssignedTo|unassigned at gcc dot   |amonakov at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #1 from Alexander Monakov amonakov at gcc dot gnu.org 2011-09-06 
11:17:47 UTC ---
We attempt to substitute an insn like (... (cmp (mem (reg:DI ax)) (reg:SI ax)))
(note different modes) through (set (reg:DI ax) (reg:DI dx)), which leaves the
(reg:SI ax) part of the comparison intact, causing an ICE later on when we
notice that the dependency on ax is still present.  As this is quite rare, we
can simply forbid substitution in such circumstances, much like substitution of
multiple hard reg references is forbidden now.  The patch I'm going to test:

diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c
index f11faca..2af01ae 100644
--- a/gcc/sel-sched.c
+++ b/gcc/sel-sched.c
@@ -813,18 +813,12 @@ count_occurrences_1 (rtx *cur_rtx, void *arg)
 {
   rtx_search_arg_p p = (rtx_search_arg_p) arg;

-  /* The last param FOR_GCSE is true, because otherwise it performs excessive
-substitutions like
-r8 = r33
-r16 = r33
-for the last insn it presumes r33 equivalent to r8, so it changes it to
-r33.  Actually, there's no change, but it spoils debugging.  */
-  if (exp_equiv_p (*cur_rtx, p-x, 0, true))
-{
-  /* Bail out if we occupy more than one register.  */
-  if (REG_P (*cur_rtx)
-   HARD_REGISTER_P (*cur_rtx)
-   hard_regno_nregs[REGNO(*cur_rtx)][GET_MODE (*cur_rtx)]  1)
+  if (REG_P (*cur_rtx)  REGNO (*cur_rtx) == REGNO (p-x))
+{
+  /* Bail out if mode is different or more than one register is used.  */
+  if (GET_MODE (*cur_rtx) != GET_MODE (p-x)
+  || (HARD_REGISTER_P (*cur_rtx)
+   hard_regno_nregs[REGNO(*cur_rtx)][GET_MODE (*cur_rtx)]  1))
 {
   p-n = 0;
   return 1;
@@ -837,7 +831,6 @@ count_occurrences_1 (rtx *cur_rtx, void *arg)
 }

   if (GET_CODE (*cur_rtx) == SUBREG
-   REG_P (p-x)
(!REG_P (SUBREG_REG (*cur_rtx))
   || REGNO (SUBREG_REG (*cur_rtx)) == REGNO (p-x)))
 {
@@ -859,6 +852,7 @@ count_occurrences_equiv (rtx what, rtx where)
 {
   struct rtx_search_arg arg;

+  gcc_assert (REG_P (what));
   arg.x = what;
   arg.n = 0;


[Bug tree-optimization/50287] [4.7 Regression] FAIL: gcc.c-torture/execute/builtins/vsnprintf-chk.c compilation, -O2 -flto

2011-09-06 Thread rsandifo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50287

rsand...@gcc.gnu.org rsandifo at gcc dot gnu.org changed:

   What|Removed |Added

 CC||rsandifo at gcc dot gnu.org

--- Comment #2 from rsandifo at gcc dot gnu.org rsandifo at gcc dot gnu.org 
2011-09-06 11:20:52 UTC ---
Same on mipsisa32-elf.


[Bug debug/50299] entryval: bigendian 32bit-64bit extension breaks address match

2011-09-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50299

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-09-06 
11:21:19 UTC ---
The disadvantage of the patch is that it will no longer emit
DW_TAG_call_site_parameter e.g. in
struct S { long a, b; };
void baz (void);

__attribute__((noinline, noclone))
int foo (struct S s)
{
  long a = s.a;
  long b = s.b;
  baz ();
  return 2;
}

int bar (void)
{
  struct S s = { 1, 2 };
  foo (s);
  return 0;
}

on x86_64-linux for %rdi and %rsi registers as it used to before (i.e. for
multi-register arguments).
Would gdb be actually trying to use it?  At least here DW_OP_GNU_entry_value
isn't emitted because RTL DSE doesn't adjust the debug insns.
I guess I could just use the reg's mode for use_regs to restore this.


[Bug middle-end/50301] [4.7 Regression] 416.gamess in SPEC CPU 2006 failed to build with LTO

2011-09-06 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50301

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

 Target||x86_64-linux-gnu
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-09-06
   Host||x86_64-linux-gnu
 AssignedTo|unassigned at gcc dot   |jamborm at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1
  Build||x86_64-linux-gnu

--- Comment #2 from Martin Jambor jamborm at gcc dot gnu.org 2011-09-06 
11:26:37 UTC ---
Confirmed. Mine.


[Bug middle-end/50295] [4.6 Regression] ICE (segfault) in expand_debug_expr at cfgexpand.c:2380

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50295

--- Comment #7 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
11:59:46 UTC ---
Created attachment 25201
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25201
reduced testcase


[Bug tree-optimization/48317] SCCVN does not handle vector constructors

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48317

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-09-06
 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
12:01:23 UTC ---
I have a patch.


[Bug fortran/50288] FAIL: gfortran.dg/class_45b.f03

2011-09-06 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50288

--- Comment #15 from janus at gcc dot gnu.org 2011-09-06 12:19:13 UTC ---
(In reply to comment #14)
  Ok, since class_45{a,b} is not really a run-time test, I think the best
  solution would be to just convert it to dg-do link:
 
 Good idea; the patch is preapproved, but I have not yet tested it.

Thanks. Could anyone please test it? Unfortunately I cannot do it myself. One
doesn't even have to run the whole testsuite, just class_45 with the patch from
comment #13 would be enough.


[Bug tree-optimization/50287] [4.7 Regression] FAIL: gcc.c-torture/execute/builtins/vsnprintf-chk.c compilation, -O2 -flto

2011-09-06 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50287

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 Target|arm-eabi sh*-*-*|arm-eabi,sh*-*-*,
   ||arm-linux-gnueabi
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-09-06
 CC||ramana at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #3 from Ramana Radhakrishnan ramana at gcc dot gnu.org 2011-09-06 
12:55:30 UTC ---
Also prima-facie appears to break eglibc builds for arm-linux-gnueabi. 

eglibc/misc/error.o
err.c: In function 'vwarnx':
err.c:94:1: error: number of operands and imm-links don't agree in statement
# .MEM_58 = VDEF .MEM_25
ap = ap_41(D);
err.c:94:1: internal compiler error: verify_ssa failed
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Ramana


[Bug tree-optimization/48149] Piecewise complex pass-through not optimized

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48149

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-09-06
 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
13:09:26 UTC ---
Mine.


[Bug target/50099] ICE: internal compiler error: in extract_insn, at recog.c:2113 while building lttng-ust

2011-09-06 Thread bernds at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50099

Bernd Schmidt bernds at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-09-06
 AssignedTo|unassigned at gcc dot   |bernds at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #8 from Bernd Schmidt bernds at gcc dot gnu.org 2011-09-06 
13:11:24 UTC ---
Created attachment 25202
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25202
Candidate patch


[Bug tree-optimization/48317] SCCVN does not handle vector constructors

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48317

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
13:17:53 UTC ---
Author: rguenth
Date: Tue Sep  6 13:17:50 2011
New Revision: 178595

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178595
Log:
2011-09-06  Richard Guenther  rguent...@suse.de

PR tree-optimization/48317
* tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
trailing array.
(sizeof_vn_nary_op): New inline function.
(vn_nary_op_lookup_pieces): Adjust.
(vn_nary_op_insert_pieces): Likewise.
* tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
(init_vn_nary_op_from_pieces): Adjust signature.  Deal with
any number of operands.
(vn_nary_length_from_stmt): New function.
(init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
(vn_nary_op_lookup_pieces): Adjust signature and allocate properly
sized temporary.
(vn_nary_op_lookup): Likewise.
(vn_nary_op_lookup_stmt): Likewise.
(vn_nary_op_insert_into): Likewise.
(vn_nary_op_insert_stmt): Likewise.
(visit_use): Handle CONSTRUCTOR as nary.
* tree-ssa-pre.c (phi_translate_1): Adjust.
(create_expression_by_pieces): Likewise.
(compute_avail): Likewise.

* gcc.dg/tree-ssa/ssa-fre-31.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-31.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-pre.c
trunk/gcc/tree-ssa-sccvn.c
trunk/gcc/tree-ssa-sccvn.h


[Bug tree-optimization/48317] SCCVN does not handle vector constructors

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48317

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
13:20:34 UTC ---
Fixed for 4.7.


[Bug tree-optimization/49997] [4.7 Regression] ICE in inline_small_functions with -fnon-call-exceptions

2011-09-06 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49997

--- Comment #2 from Jan Hubicka hubicka at gcc dot gnu.org 2011-09-06 
14:06:29 UTC ---
Hmm,
the problem is that with inline predicates the overall growth depends not only
on number of calls, but also at information known about call site.  This
information could potentially change every time function containing the call
site gets inlined.  This breaks the optimization avoiding update in
inline_small_functions.  The following hack fixes the problem, but the test was
added to avoid really bad quadratic behaviour when compiling cc1 with LTO.
I will need to benchmark it and probably add parameter limitting key updating
for single inline action.

Index: ipa-inline.c
===
--- ipa-inline.c(revision 178592)
+++ ipa-inline.c(working copy)
@@ -1514,7 +1515,7 @@ inline_small_functions (void)
  /* We inlined last offline copy to the body.  This might lead
 to callees of function having fewer call sites and thus they
 may need updating.  */
- if (callee-global.inlined_to)
+ if (callee-global.inlined_to || 1)
update_all_callee_keys (heap, callee, updated_nodes);
  else
update_callee_keys (heap, edge-callee, updated_nodes);


[Bug target/47025] Dead stores in variadic functions not eliminated

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47025

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
14:08:31 UTC ---
We expand __builtin_va_end as

/* Expand EXP, a call to __builtin_va_end.  */

static rtx
expand_builtin_va_end (tree exp)
{
  tree valist = CALL_EXPR_ARG (exp, 0);

  /* Evaluate for side effects, if needed.  I hate macros that don't
 do that.  */
  if (TREE_SIDE_EFFECTS (valist))
expand_expr (valist, const0_rtx, VOIDmode, EXPAND_NORMAL);

  return const0_rtx;
}

thus, it has no side-effects (apart from those of its argument).  It's
simply dropped...

Attached patch is already applied.

Mine.


[Bug tree-optimization/48149] Piecewise complex pass-through not optimized

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48149

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
14:36:06 UTC ---
Author: rguenth
Date: Tue Sep  6 14:36:00 2011
New Revision: 178597

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178597
Log:
2011-09-06  Richard Guenther  rguent...@suse.de

PR tree-optimization/48149
* tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
(vn_valueize): Move earlier.
(valueize_expr): Use vn_valueize.
(simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
operands.
(simplify_unary_expression): Simplify.

* gcc.dg/tree-ssa/ssa-fre-32.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-32.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-sccvn.c


[Bug tree-optimization/48149] Piecewise complex pass-through not optimized

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48149

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
14:37:30 UTC ---
Fixed.


[Bug c++/50303] New: Segfault with variadic template template parameters.

2011-09-06 Thread andyspiros at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50303

 Bug #: 50303
   Summary: Segfault with variadic template template parameters.
Classification: Unclassified
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: andyspi...@gmail.com


Created attachment 25203
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25203
Preprocessed source

A function f taking a class and a set (variadic) of template classes as
template parameters is written. If this function passes the variadic parameter
to another one, the compiler fails with a segfault. Otherwise the compiler just
works.

This happens on Gentoo with gcc 4.6.1, on Fedora 15 with gcc-4.6.0, on the
online service ideone (see http://ideone.com/yrIfa -- there is the original
source too).

On Gentoo I have the following output:

$ g++ -v -save-temps -std=c++0x variadic_template.cpp -pedantic-errors

Using built-in specs.
Reading specs from /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/asneeded.specs
COLLECT_GCC=/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.1/g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with:
/var/tmp/portage/sys-devel/gcc-4.6.1-r1/work/gcc-4.6.1/configure --prefix=/usr
--bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.1
--includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/include
--datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.1
--mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.1/man
--infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.6.1/info
--with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/include/g++-v4
--host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec
--disable-fixed-point --without-ppl --without-cloog --enable-lto --enable-nls
--without-included-gettext --with-system-zlib --disable-werror
--enable-secureplt --enable-multilib --enable-libmudflap --disable-libssp
--enable-libgomp
--with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.6.1/python
--enable-checking=release --enable-languages=c,c++,java,fortran --enable-shared
--enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
--with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.6.1-r1 p1.0,
pie-0.4.5'
Thread model: posix
gcc version 4.6.1 (Gentoo 4.6.1-r1 p1.0, pie-0.4.5) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=c++0x' '-pedantic-errors'
'-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.1/cc1plus -E -quiet -v -D_GNU_SOURCE
variadic_template.cpp -D_FORTIFY_SOURCE=2 -mtune=generic -march=x86-64
-std=c++0x -pedantic-errors -fpch-preprocess -o variadic_template.ii
ignoring nonexistent directory
/usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/../../../../x86_64-pc-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/include/g++-v4
 /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/include/g++-v4/x86_64-pc-linux-gnu
 /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/include/g++-v4/backward
 /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/include
 /usr/local/include
 /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.1/include-fixed
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=c++0x' '-pedantic-errors'
'-shared-libgcc' '-mtune=generic' '-march=x86-64'
 /usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.1/cc1plus -fpreprocessed
variadic_template.ii -quiet -dumpbase variadic_template.cpp -mtune=generic
-march=x86-64 -auxbase variadic_template -pedantic-errors -std=c++0x -version
-o variadic_template.s
GNU C++ (Gentoo 4.6.1-r1 p1.0, pie-0.4.5) version 4.6.1 (x86_64-pc-linux-gnu)
compiled by GNU C version 4.6.1, GMP version 5.0.2, MPFR version 3.0.1-p4,
MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C++ (Gentoo 4.6.1-r1 p1.0, pie-0.4.5) version 4.6.1 (x86_64-pc-linux-gnu)
compiled by GNU C version 4.6.1, GMP version 5.0.2, MPFR version 3.0.1-p4,
MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 510fa67dba4694d68782d987f500559c
variadic_template.cpp: In function ‘void f() [with Interface = I1, Actions =
A1, A2]’:
variadic_template.cpp:58:16:   instantiated from here
variadic_template.cpp:49:58: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugs.gentoo.org/ for instructions.


[Bug tree-optimization/50304] New: poor code for accessing certain element of arrays

2011-09-06 Thread tom at deltasystem dot hu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50304

 Bug #: 50304
   Summary: poor code for accessing certain element of arrays
Classification: Unclassified
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: t...@deltasystem.hu


Array elements on known (hardcoded) positions are accessed by inefficient code.
The addresses are computed runtime, waisting both runtime and code size. For
example:

int a[4][4][16];

void foo( void )
{
int c;

c = a[2][3][4];
...
}
compiles this way in -O1, ARM Cortex M0:
   0:4b02  ldrr3, [pc, #8]; (c foo+0xc)
   2:22b4  movsr2, #180; 0xb4
   4:0092  lslsr2, r2, #2
   6:589a  ldrr2, [r3, r2]
---
I tried to convert this operation to be precompiled by forming a constant
address.

int a[4][4][16];
int *const b=a[2][3][4];

void foo( void )
{
int c;

c = *b;
...
}
However, it is ignored by gcc, and compiles this way in -O1:
   0:4b03  ldrr3, [pc, #12]; (10 foo+0x10)
   2:21b4  movsr1, #180; 0xb4
   4:0089  lslsr1, r1, #2
   6:185a  addsr2, r3, r1
   8:6812  ldrr2, [r2, #0]

The actual code can vary, depending on the situation. For example:
   0:4b02  ldrr3, [pc, #8]; (c foo+0xc)
   2:4a03  ldrr2, [pc, #12]; (10 foo+0x10)
   4:589a  ldrr2, [r3, r2]

or
   0:4b02  ldrr3, [pc, #8]; (c foo+0xc)
   2:4903  ldrr1, [pc, #12]; (10 foo+0x10)
   4:185a  addsr2, r3, r1a[0][0][0]=c;
   6:6812  ldrr2, [r2, #0]

Sometimes (I don't know yet why and exactly when) it can be even much worse,
introducing bytewide accessing of e.g. an int32_t, dissassembling and
reassembling it. (It's definetely not an alignment problem.) This waists about
40 instructions for a read-modify-write access.
--

It should have look like this:
   0:4b02  ldrr3, [pc, #8]; (c foo+0xc)
   2:681b  ldrr3, [r3, #0]
   4:681a  ldrr2, [r3, #0]
where the constant (at 0x0c) at the first row is a precalculated address.

--
With variable address, like this:

int a[4][4][16];
int *b=a[2][3][4];
...
it work nicely. However, it is really not equivalent solution at flash based
processors.


[Bug target/47025] Dead stores in variadic functions not eliminated

2011-09-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47025

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-09-06 
15:02:30 UTC ---
Note that the stdarg pass relies on __builtin_va_end not being optimized away
completely, at least by the time that pass is run.  It can be of course
optimized away afterwards.


[Bug middle-end/49886] [4.6/4.7 Regression] pass_split_functions cannot deal with function type attributes

2011-09-06 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49886

--- Comment #6 from Martin Jambor jamborm at gcc dot gnu.org 2011-09-06 
15:09:18 UTC ---
Author: jamborm
Date: Tue Sep  6 15:09:10 2011
New Revision: 178599

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178599
Log:
2011-09-06  Martin Jambor  mjam...@suse.cz

Revert
2011-09-02  Martin Jambor  mjam...@suse.cz
PR middle-end/49886
* ipa-split.c (split_function): Do not skip any arguments if
can_change_signature is set or there are function type attributes.

testsuite/
* gcc.c-torture/execute/pr49886.c: Move to...
* gcc.dg/torture/pr49886.c: ...here. Xfail run test for -O2 and above.


Added:
branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/torture/pr49886.c
  - copied, changed from r178598,
branches/gcc-4_6-branch/gcc/testsuite/gcc.c-torture/execute/pr49886.c
Removed:
branches/gcc-4_6-branch/gcc/testsuite/gcc.c-torture/execute/pr49886.c
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/ipa-split.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug rtl-optimization/50213] [4.6/4.7 Regression] Regression in space-optimized code relative to 4.5.x

2011-09-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50213

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2011-09-06 
15:45:10 UTC ---
This regressed with http://gcc.gnu.org/viewcvs?root=gccview=revrev=161655
and with -Os -fno-tree-forwprop you get the same code as you used to get
before.
At the tree level, the difference seems to be in
 bb 3:
-  D.2724_9 = *p_8;
+  D.2724_9 = MEM[(const unsigned int *)p_2 + -4B];
   csum_10 = csum_1 ^ D.2724_9;

 bb 4:
   # csum_1 = PHI 0(2), csum_10(3)
   # p_2 = PHI p_6(2), p_8(3)
   p_8 = p_2 + -4;
   if (p_8  tlv_5(D))
 goto bb 3;
   else
 goto bb 5;

 bb 5:
-  D.2724_11 = *p_8;
+  D.2724_11 = MEM[(const unsigned int *)p_2 + -4B];

being now done in forwprop while it wasn't possible before MEM_REF - it wasn't
valid GIMPLE.
While in the loop IVOPTs undoes the undesirable transformation back to
MEM[base: p_8], in bb5 as it is not a loop we keep the longer form and thus use
a var from the middle of the loop instead of p after the loop.  That results in
different expansion.


[Bug tree-optimization/49997] [4.7 Regression] ICE in inline_small_functions with -fnon-call-exceptions

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49997

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
15:48:32 UTC ---
Or finally drop the key dependence on the number of callers.


[Bug tree-optimization/50213] [4.6/4.7 Regression] Regression in space-optimized code relative to 4.5.x

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50213

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-09-06
  Component|rtl-optimization|tree-optimization
 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
15:51:29 UTC ---
Mine.


[Bug target/47025] Dead stores in variadic functions not eliminated

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47025

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
15:56:26 UTC ---
Author: rguenth
Date: Tue Sep  6 15:56:20 2011
New Revision: 178601

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178601
Log:
2011-09-06  Richard Guenther  rguent...@suse.de

PR tree-optimization/47025
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
uses nothing.
(call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
BUILT_IN_FREE.
(stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
definitely points to.
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
BUILT_IN_VA_START doesn't let its va_list argument escape.
* tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
not make any previous stores necessary.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-alias.c
trunk/gcc/tree-ssa-dce.c
trunk/gcc/tree-ssa-structalias.c


[Bug libstdc++/50257] [C++0x] unordered_map slow initialization due to huge __prime_list

2011-09-06 Thread justin at fathomdb dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50257

--- Comment #15 from Justin SB justin at fathomdb dot com 2011-09-06 15:55:31 
UTC ---
That patch works for me - thanks;  gcc optimizes away the array lookup.

I do still think that constexpr could be helpful here: every lookup for an
explicit (or default) unordered_map size would then be optimized away (not just
those = 11), but constexpr is still new to me so I'm not sure of the
behavioural nuances.  I do think it should definitely be optimized away in my
test case, but that's a separate issue.

Thanks again for fixing.


[Bug target/47025] Dead stores in variadic functions not eliminated

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47025

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
15:56:52 UTC ---
Fixed for 4.7.


[Bug target/50304] poor code for accessing certain element of arrays

2011-09-06 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50304

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011-09-06
  Component|tree-optimization   |target
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-09-06 
16:01:31 UTC ---
Isn't it just materializing the constant in an efficient way?

Btw, you lack a compilable testcase.


[Bug target/50099] ICE: internal compiler error: in extract_insn, at recog.c:2113 while building lttng-ust

2011-09-06 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50099

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ramana at gcc dot gnu.org

--- Comment #9 from Ramana Radhakrishnan ramana at gcc dot gnu.org 2011-09-06 
16:29:15 UTC ---
Oh fun - I posted a patch about 2 hours after you put yours here :) 

Ramana


[Bug libstdc++/50257] [C++0x] unordered_map slow initialization due to huge __prime_list

2011-09-06 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50257

--- Comment #16 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-06 
16:37:55 UTC ---
If you could have available a complete constexpr implementation of lower_bound,
it would make in principle possible to optimize to a constant all the cases
when it's called from a _M_next_bkt in turn called with constant argument, like
the default constructor or the move constructor, or the constructor taking a
size known at compile-time (Note the *in principle*, see c++/50087). All in
all, seems a bit overkilling to me, considering the memory allocation which
immediately follows. Also, the optimizers may well at some point become able to
do a lot of this anyway via interprocedural constant propagation and
versioning, because the information is all there: as soon as something is
constant at compile-time it just needs to be thoroughly propagated.


[Bug middle-end/44382] Slow integer multiply

2011-09-06 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44382

--- Comment #8 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-09-06 
16:42:56 UTC ---
Author: hjl
Date: Tue Sep  6 16:42:47 2011
New Revision: 178602

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178602
Log:
PR middle-end/44382: Tree reassociation improvement

gcc/

2011-09-06  Enkovich Ilya  ilya.enkov...@intel.com

PR middle-end/44382
* target.def (reassociation_width): New hook.

* doc/tm.texi.in (reassociation_width): Likewise.

* doc/tm.texi (reassociation_width): Likewise.

* doc/invoke.texi (tree-reassoc-width): New param documented.

* hooks.h (hook_int_uint_mode_1): New default hook.

* hooks.c (hook_int_uint_mode_1): Likewise.

* config/i386/i386.h (ix86_tune_indices): Add
X86_TUNE_REASSOC_INT_TO_PARALLEL and
X86_TUNE_REASSOC_FP_TO_PARALLEL.

(TARGET_REASSOC_INT_TO_PARALLEL): New.
(TARGET_REASSOC_FP_TO_PARALLEL): Likewise.

* config/i386/i386.c (initial_ix86_tune_features): Add
X86_TUNE_REASSOC_INT_TO_PARALLEL and
X86_TUNE_REASSOC_FP_TO_PARALLEL.

(ix86_reassociation_width) implementation of
new hook for i386 target.

* params.def (PARAM_TREE_REASSOC_WIDTH): New param added.

* tree-ssa-reassoc.c (get_required_cycles): New function.
(get_reassociation_width): Likewise.
(swap_ops_for_binary_stmt): Likewise.
(rewrite_expr_tree_parallel): Likewise.

(rewrite_expr_tree): Refactored. Part of code moved into
swap_ops_for_binary_stmt.

(reassociate_bb): Now checks reassociation width to be used
and call rewrite_expr_tree_parallel instead of rewrite_expr_tree
if needed.

gcc/testsuite/

2011-09-06  Enkovich Ilya  ilya.enkov...@intel.com

* gcc.dg/tree-ssa/pr38533.c (dg-options): Added option
--param tree-reassoc-width=1.

* gcc.dg/tree-ssa/reassoc-24.c: New test.
* gcc.dg/tree-ssa/reassoc-25.c: Likewise.

Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/reassoc-24.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/reassoc-25.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/i386.c
trunk/gcc/config/i386/i386.h
trunk/gcc/doc/invoke.texi
trunk/gcc/doc/tm.texi
trunk/gcc/doc/tm.texi.in
trunk/gcc/hooks.c
trunk/gcc/hooks.h
trunk/gcc/params.def
trunk/gcc/target.def
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr38533.c
trunk/gcc/tree-ssa-reassoc.c


[Bug target/50305] New: Inline asm reload failure when building Linux kernel

2011-09-06 Thread uweigand at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50305

 Bug #: 50305
   Summary: Inline asm reload failure when building Linux kernel
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: uweig...@gcc.gnu.org
Target: arm-linux-gnueabi


Created attachment 25204
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25204
Reduced test case

Building the Linux kernel with current mainline fails with certain sets of
options due to a reload failure on an atomic.h inline asm.

The attached test case reproduces the problem when compiled with
  -O2 -fno-omit-frame-pointer -marm -march=armv7-a

core.i: In function ‘event_alloc’:
core.i:34:2: error: ‘asm’ operand requires impossible reload
core.i:34:2: error: ‘asm’ operand requires impossible reload

Note that while the inline asm may be somewhat inefficient (enforcing a +Qo
constraint on an operand that is never used in the assembly), there is nothing
invalid about the set of constraints (and there are enough registers
available).

The problem seems instead to be caused by unfortunate interactions between
ARM's legitimize_reload_address routine and subsequent iterations through
find_reloads common code.


[Bug target/50305] Inline asm reload failure when building Linux kernel

2011-09-06 Thread uweigand at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50305

Ulrich Weigand uweigand at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-09-06
 AssignedTo|unassigned at gcc dot   |uweigand at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #1 from Ulrich Weigand uweigand at gcc dot gnu.org 2011-09-06 
17:06:45 UTC ---
Created attachment 25205
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25205
Possible fix

I'm currently testing this patch to fix the problem.


[Bug tree-optimization/50213] [4.6/4.7 Regression] Regression in space-optimized code relative to 4.5.x

2011-09-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50213

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-09-06 
17:08:57 UTC ---
It seems that in the loop it is changed then again by RTL fwprop2.  Why it
isn't done by fwprop2 with -fno-tree-forwprop is a question...


[Bug c++/50306] New: g++ accepts code with ambiguous, templated conversion operators

2011-09-06 Thread malaperle at omnialabs dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50306

 Bug #: 50306
   Summary: g++ accepts code with ambiguous, templated conversion
operators
Classification: Unclassified
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: malape...@omnialabs.net


This code does not generate an error or warning:

class A{};
class B : public A {};

template class T class SmartPtr{
public:
templatetypename OtherT operator const SmartPtrOtherT() const;

templatetypename OtherT operator SmartPtrOtherT() const;
};

void func(SmartPtrA) {
}

int main() {
SmartPtrB b;
func(b); // this should be ambiguous?
}

But it is an error with MSVC 10 and Clang 2.8.

If the templates on the operators are removed, it also becomes ambiguous with
gcc:

class A {};
class B : public A {};

template class T class SmartPtr {
public:
operator const SmartPtrA() const;
operator SmartPtrA() const;
};

void func(SmartPtrA) {
}

int main() {
SmartPtrB b;
func(b); // func is ambiguous
}


[Bug debug/50191] Strange debug insn produced for TOC compiling 416.gamess with profile-generate

2011-09-06 Thread bergner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50191

--- Comment #16 from Peter Bergner bergner at gcc dot gnu.org 2011-09-06 
17:21:14 UTC ---
I have kicked off a bootstrap and regtest of Jakub's patching in Comments #13
and #14.


[Bug middle-end/50307] New: SSA checking ICE when building Linux kernel

2011-09-06 Thread uweigand at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50307

 Bug #: 50307
   Summary: SSA checking ICE when building Linux kernel
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Keywords: ice-checking
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: uweig...@gcc.gnu.org


Created attachment 25206
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25206
Reduced test case

When building the attached test case (reduced from Linux kernel code) with -O2
(tested on i386 and arm), I'm getting the following ICE:

vsprintf.i: In function ‘vscnprintf’:
vsprintf.i:5:1: error: number of operands and imm-links don’t agree in
statement
# .MEM_26 = VDEF .MEM_17
args = args_7(D);
vsprintf.i:5:1: internal compiler error: verify_ssa failed

Seems to be related to re-inlining and outlined part of the original function
...


[Bug c++/50308] New: __attribute__((deprecated)) incorrectly generates warning in ADL lookup

2011-09-06 Thread gd_bugzilla at growndodo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50308

 Bug #: 50308
   Summary: __attribute__((deprecated)) incorrectly generates
warning in ADL lookup
Classification: Unclassified
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: gd_bugzi...@growndodo.com


void A( int ) __attribute__((deprecated));

namespace B {

struct C {};

void A( C )
{}

}

int main (int argc, const char * argv[])
{
B::C x;

// ADL correctly identifies the non-deprecated B::A, but a warning about
the global A is generated anyway
A( x );

return 0;
}


[Bug middle-end/50301] [4.7 Regression] 416.gamess in SPEC CPU 2006 failed to build with LTO

2011-09-06 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50301

--- Comment #3 from Martin Jambor jamborm at gcc dot gnu.org 2011-09-06 
18:04:59 UTC ---
Proposed fix submitted to the mailing list:

http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00427.html


[Bug c++/50296] [4.7 Regression] New C++ test failures

2011-09-06 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50296

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2011-09-06 
18:09:07 UTC ---
Author: jason
Date: Tue Sep  6 18:09:01 2011
New Revision: 178604

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178604
Log:
PR c++/50296
* semantics.c (register_constexpr_fundef): Call is_valid_constexpr_fn.
(cx_check_missing_mem_inits): Handle bases and empty trivial members.
(validate_constexpr_fundecl): Remove.
* decl.c (start_preparsed_function): Don't call it.
* cp-tree.h: Don't declare it.

Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/semantics.c
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-diag1.C
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-friend.C


[Bug c++/50296] [4.7 Regression] New C++ test failures

2011-09-06 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50296

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC|jason at redhat dot com |jason at gcc dot gnu.org
 Resolution||FIXED
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2011-09-06 
18:09:52 UTC ---
Should be fixed now.


[Bug tree-optimization/50287] [4.7 Regression] FAIL: gcc.c-torture/execute/builtins/vsnprintf-chk.c compilation, -O2 -flto

2011-09-06 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50287

--- Comment #4 from Martin Jambor jamborm at gcc dot gnu.org 2011-09-06 
18:19:57 UTC ---
Created attachment 25207
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25207
Testcase for i686 (and probably x86_64 too)

Testcase that fails on i686-linux for me.


[Bug tree-optimization/50287] [4.7 Regression] FAIL: gcc.c-torture/execute/builtins/vsnprintf-chk.c compilation, -O2 -flto

2011-09-06 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50287

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

 Target|arm-eabi,sh*-*-*,   |arm-eabi,sh*-*-*,
   |arm-linux-gnueabi   |arm-linux-gnueabi,
   ||i686-linux
 Status|NEW |ASSIGNED
 CC||jamborm at gcc dot gnu.org
 AssignedTo|unassigned at gcc dot   |jamborm at gcc dot gnu.org
   |gnu.org |


[Bug middle-end/50295] [4.6 Regression] ICE (segfault) in expand_debug_expr at cfgexpand.c:2380

2011-09-06 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50295

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC|mjambor at suse dot cz  |jamborm at gcc dot gnu.org
 Resolution||DUPLICATE

--- Comment #8 from Martin Jambor jamborm at gcc dot gnu.org 2011-09-06 
18:27:30 UTC ---
I have reverted the patch causing this on the 4.6 branch.  As far as trunk is
concerned, I'll track it in a duplicate of this bug, PR 50287.

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


[Bug tree-optimization/50287] [4.7 Regression] FAIL: gcc.c-torture/execute/builtins/vsnprintf-chk.c compilation, -O2 -flto

2011-09-06 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50287

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

 CC||doko at gcc dot gnu.org

--- Comment #5 from Martin Jambor jamborm at gcc dot gnu.org 2011-09-06 
18:27:30 UTC ---
*** Bug 50295 has been marked as a duplicate of this bug. ***


[Bug c++/50309] New: [4.6/4.7 Regression] [C++0x] ICE: tree check: expected tree_list, have error_mark in comp_except_specs, at cp/typeck.c:1014 on empty noexcept

2011-09-06 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50309

 Bug #: 50309
   Summary: [4.6/4.7 Regression] [C++0x] ICE: tree check: expected
tree_list, have error_mark in comp_except_specs, at
cp/typeck.c:1014 on empty noexcept
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


 testcase.C 
void foo () noexcept () {}


Gives in 4.6 and 4.7:
$ gcc -std=gnu++0x testcase.C 
testcase.C:1:23: error: expected primary-expression before ')' token
testcase.C:1:23: internal compiler error: tree check: expected tree_list, have
error_mark in comp_except_specs, at cp/typeck.c:1016
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r178555 - crash
4.6 r177922 - crash
4.5 r177922 - noexcept is not recognized


[Bug target/50310] New: [4.7 Regression] ICE: in gen_vcondv2div2df, at config/i386/sse.md:1435 with -O -ftree-vectorize and __builtin_isunordered()

2011-09-06 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50310

 Bug #: 50310
   Summary: [4.7 Regression] ICE: in gen_vcondv2div2df, at
config/i386/sse.md:1435 with -O -ftree-vectorize and
__builtin_isunordered()
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz
CC: rgue...@gcc.gnu.org
  Host: x86_64-pc-linux-gnu
Target: x86_64-pc-linux-gnu


Created attachment 25208
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25208
reduced testcase

There are three testcases that ICE with a very similiar message:

$ gcc -O -mavx -ftree-vectorize gcc.target/i386/avx-vcmppd-256-1.c
gcc.target/i386/avx-vcmppd-256-1.c: In function 'do_test':
gcc.target/i386/avx-vcmppd-256-1.c:49:5: internal compiler error: in
gen_vcondv4div4df, at config/i386/sse.md:1418
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

$ gcc -O -mavx -ftree-vectorize gcc.target/i386/avx-vcmpps-1.c 
gcc.target/i386/avx-vcmpps-1.c: In function 'do_test':
gcc.target/i386/avx-vcmpps-1.c:49:5: internal compiler error: in
gen_vcondv4siv4sf, at config/i386/sse.md:1435
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

$ gcc -O -mavx -ftree-vectorize gcc.target/i386/avx-vcmpps-256-1.c 
gcc.target/i386/avx-vcmpps-256-1.c: In function 'do_test':
gcc.target/i386/avx-vcmpps-256-1.c:49:5: internal compiler error: in
gen_vcondv8siv8sf, at config/i386/sse.md:1418
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

As the ICEs look quite similiar, I am opening just one PR for it.

Compiler output:
$ gcc -O -ftree-vectorize testcase.c 
testcase.c: In function 'foo':
testcase.c:9:10: internal compiler error: in gen_vcondv2div2df, at
config/i386/sse.md:1435
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


Maybe related to the Vector Comparison patch.


[Bug c++/50311] New: [4.7 Regression] [C++0x] ICE: SIGSEGV in cx_check_missing_mem_inits (semantics.c:5808) with variadic template

2011-09-06 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50311

 Bug #: 50311
   Summary: [4.7 Regression] [C++0x] ICE: SIGSEGV in
cx_check_missing_mem_inits (semantics.c:5808) with
variadic template
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


Created attachment 25209
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25209
reduced testcase

Compiler output:
$ gcc -std=gnu++0x testcase.C
testcase.C: In instantiation of 'struct AMoveOnly, MoveOnly':
testcase.C:10:44:   required from 'struct tupleMoveOnly, MoveOnly'
testcase.C:21:30:   required from here
testcase.C:6:8: warning: direct base 'MoveOnly' inaccessible in 'AMoveOnly,
MoveOnly' due to ambiguity [enabled by default]
==22934== Invalid read of size 2
==22934==at 0x6CCF01: cx_check_missing_mem_inits(tree_node*, tree_node*,
bool) (semantics.c:5808)
==22934==by 0x6EA5E4: register_constexpr_fundef(tree_node*, tree_node*)
(semantics.c:5853)
==22934==by 0x5ACCA6: finish_function(int) (decl.c:13195)
==22934==by 0x6C367D: synthesize_method(tree_node*) (method.c:770)
==22934==by 0x6447FC: mark_used(tree_node*) (decl2.c:4312)
==22934==by 0x5830EA: build_over_call(z_candidate*, int, int) (call.c:6801)
==22934==by 0x57F8D4: build_new_method_call(tree_node*, tree_node*,
VEC_tree_gc**, tree_node*, int, tree_node**, int) (call.c:7396)
==22934==by 0x580ADE: build_special_member_call(tree_node*, tree_node*,
VEC_tree_gc**, tree_node*, int, int) (call.c:7070)
==22934==by 0x6B30C8: expand_aggr_init_1(tree_node*, tree_node*,
tree_node*, tree_node*, int, int) (init.c:1503)
==22934==by 0x6BA692: emit_mem_initializers(tree_node*) (init.c:972)
==22934==by 0x5D3947: tsubst_expr(tree_node*, tree_node*, int, tree_node*,
bool) (pt.c:12439)
==22934==by 0x5CFEA0: tsubst_expr(tree_node*, tree_node*, int, tree_node*,
bool) (pt.c:12612)
==22934==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==22934== 
testcase.C: In instantiation of 'tuple_Elements::tuple() [with _Elements =
{MoveOnly, MoveOnly}]':
testcase.C:21:30:   required from here
testcase.C:6:8: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r178602 - crash
4.6 r177922 - OK


[Bug target/50310] [4.7 Regression] ICE: in gen_vcondv2div2df, at config/i386/sse.md:1435 with -O -ftree-vectorize and __builtin_isunordered()

2011-09-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50310

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2011-09-06 
19:38:40 UTC ---
While this exact testcase is a recent regression, caused by
http://gcc.gnu.org/viewcvs?root=gccview=revrev=178480

double s1[4], s2[4], s3[4];

void
foo (void)
{
  int i;
  for (i = 0; i  4; i++)
s3[i] = !__builtin_isunordered (s1[i], s2[i])  s1[i] != s2[i] ? -1.0 :
0.0;
}

ICEd for some time already (e.g. with -O3 -mavx or on powerpc64 with -O3
-mvsx).
The problem is that vcond isn't supported for all possible conditions (LTGT in
this case) on all targets, the sse.md pattern just ICEs if the expanding
routine fails, on powerpc64 it ICEs in the middle end because it FAILed.  So,
to fix this either vcond conditions would need to test for the unsupported
condition codes and the vectorizer would need to use the condition, or all
targets that provide vcond* patterns would need to support all possible
condition codes.


[Bug c++/50296] [4.7 Regression] New C++ test failures

2011-09-06 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50296

Hans-Peter Nilsson hp at gcc dot gnu.org changed:

   What|Removed |Added

 CC||zsojka at seznam dot cz

--- Comment #7 from Hans-Peter Nilsson hp at gcc dot gnu.org 2011-09-06 
19:48:09 UTC ---
*** Bug 50311 has been marked as a duplicate of this bug. ***


[Bug c++/50311] [4.7 Regression] [C++0x] ICE: SIGSEGV in cx_check_missing_mem_inits (semantics.c:5808) with variadic template

2011-09-06 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50311

Hans-Peter Nilsson hp at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||hp at gcc dot gnu.org
 Resolution||DUPLICATE

--- Comment #1 from Hans-Peter Nilsson hp at gcc dot gnu.org 2011-09-06 
19:48:09 UTC ---
Matches behavior and revision range so I'll go ahead and call it.

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


[Bug target/50310] [4.7 Regression] ICE: in gen_vcondv2div2df, at config/i386/sse.md:1435 with -O -ftree-vectorize and __builtin_isunordered()

2011-09-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50310

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Target|x86_64-pc-linux-gnu |x86_64-linux,
   ||powerpc64-linux
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-09-06
 Ever Confirmed|0   |1

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-09-06 
19:49:14 UTC ---
On this second testcase it started with
http://gcc.gnu.org/viewcvs?root=gccview=revrev=171236


[Bug c++/48665] type of const member function

2011-09-06 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48665

--- Comment #1 from Marc Glisse marc.glisse at normalesup dot org 2011-09-06 
21:11:40 UTC ---
Created attachment 25210
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25210
Fix libiberty demangler

This patch seems to fix c++filt. It doesn't change anything to the g++ issues.


[Bug middle-end/50266] [4.6/4.7 Regression] ICE in decode_addr_const

2011-09-06 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50266

--- Comment #6 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-09-06 
21:17:51 UTC ---
Author: ebotcazou
Date: Tue Sep  6 21:17:46 2011
New Revision: 178611

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178611
Log:
PR middle-end/50266
* c-common.c (c_fully_fold_internal) ADDR_EXPR: Fold offsetof-like
computations.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/20110906-1.c
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/testsuite/ChangeLog


[Bug middle-end/50266] [4.6/4.7 Regression] ICE in decode_addr_const

2011-09-06 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50266

--- Comment #7 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-09-06 
21:23:57 UTC ---
Author: ebotcazou
Date: Tue Sep  6 21:23:53 2011
New Revision: 178613

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=178613
Log:
PR middle-end/50266
* c-common.c (c_fully_fold_internal) ADDR_EXPR: Fold offsetof-like
computations.

Added:
branches/gcc-4_6-branch/gcc/testsuite/gcc.c-torture/compile/20110906-1.c
  - copied unchanged from r178611,
trunk/gcc/testsuite/gcc.c-torture/compile/20110906-1.c
Modified:
branches/gcc-4_6-branch/gcc/c-family/ChangeLog
branches/gcc-4_6-branch/gcc/c-family/c-common.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug middle-end/50266] [4.6/4.7 Regression] ICE in decode_addr_const

2011-09-06 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50266

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #8 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-09-06 
21:28:22 UTC ---
This should compile again.


[Bug c++/48320] [C++0x][4.6/4.7 Regression] Template parameter packs cannot be expanded in default template arguments

2011-09-06 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48320

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-09-06
 CC||dodji at gcc dot gnu.org
  Component|regression  |c++
 Ever Confirmed|0   |1

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2011-09-06 
22:52:49 UTC ---
This is a problem with fixup_template_parms; when we substitute into the
default template argument for Result, we've wrapped Indices in an
EXPR_PACK_EXPANSION, so it doesn't work as used in the default argument.


[Bug c++/50248] [C++0x] unnecessary instantiation of constexpr constructor

2011-09-06 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50248

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org 2011-09-06 
22:53:30 UTC ---
Fixed for 4.7.


[Bug debug/50191] Strange debug insn produced for TOC compiling 416.gamess with profile-generate

2011-09-06 Thread bergner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50191

--- Comment #17 from Peter Bergner bergner at gcc dot gnu.org 2011-09-06 
23:07:22 UTC ---
This passed bootstrap and regtest on powerpc64-linux.  Bill is on vacation for
a few days, so cannot test the patched compiler on the full benchmark, but I
assume Jakub you have already confirmed it fixes that.


[Bug c++/50312] New: ICE when calling offsetof() illegally on incomplete template class

2011-09-06 Thread scovich at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50312

 Bug #: 50312
   Summary: ICE when calling offsetof() illegally on incomplete
template class
Classification: Unclassified
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: scov...@gmail.com


The following (admittedly illegal) code:

//== begin ==
#include cstddef
#ifdef BUG
template typename T=int
#define EXTRA 
#else
#define EXTRA
#endif
struct foo {
int bar;
enum { END = offsetof(foo, bar) };
};
foo EXTRA a;
//== end ===

Causes an ICE when compiled with -DBUG:
$ g++ -DBUG bug.cpp
bug.cpp: In instantiation of ‘foo’:
bug.cpp:12:11:   instantiated from here
bug.cpp:10:10: internal compiler error: in tree_low_cst, at tree.h:4233
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

The above is for g++-4.6.1; the same error occurs for g++-4.5.0 (but at
tree.c:6202).

Compiling without -DBUG triggers a much more helpful diagnostic:
$ g++ bug.cpp
bug.cpp:10:18: error: invalid use of incomplete type ‘struct foo {aka struct
foo}’
bug.cpp:8:8: error: forward declaration of ‘struct foo {aka struct foo}’


[Bug tree-optimization/50287] [4.7 Regression] FAIL: gcc.c-torture/execute/builtins/vsnprintf-chk.c compilation, -O2 -flto

2011-09-06 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50287

--- Comment #6 from Kazumoto Kojima kkojima at gcc dot gnu.org 2011-09-07 
00:26:13 UTC ---
(In reply to comment #4)
 Testcase that fails on i686-linux for me.

FYI, the testcase is failing also for arm-eabi, mips-elf and sh-elf.


[Bug rtl-optimization/50191] Strange debug insn produced for TOC compiling 416.gamess with profile-generate

2011-09-06 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50191

Alan Modra amodra at gmail dot com changed:

   What|Removed |Added

 Status|NEW |UNCONFIRMED
  Component|debug   |rtl-optimization
 Ever Confirmed|1   |0

--- Comment #18 from Alan Modra amodra at gmail dot com 2011-09-07 00:34:24 
UTC ---
I should have commented here earlier to prevent some wasted effort.  The toc
rtl changes http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00304.html also fix
this bug.


[Bug rtl-optimization/50191] Strange debug insn produced for TOC compiling 416.gamess with profile-generate

2011-09-06 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50191

Alan Modra amodra at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed|2011-09-05 00:00:00 |2011-09-07
 AssignedTo|unassigned at gcc dot   |amodra at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1


[Bug target/50022] [4.7 regression] incorrect condition in IT block when building mozilla code base for ARM

2011-09-06 Thread michael.hope at linaro dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50022

Michael Hope michael.hope at linaro dot org changed:

   What|Removed |Added

 CC||michael.hope at linaro dot
   ||org

--- Comment #6 from Michael Hope michael.hope at linaro dot org 2011-09-07 
02:21:02 UTC ---
For reference, I ran this against the different builds I have lying about.  The
fault occurs in r177688, is gone in r178025, and does not exist in 4.5.3,
4.6.1, or gcc-linaro-4.6-2011.08.

The 4.6 and earlier compilers generate a branch instead of the itt block.


[Bug other/49930] Need some adjustments for bionic

2011-09-06 Thread michael.hope at linaro dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49930

Michael Hope michael.hope at linaro dot org changed:

   What|Removed |Added

 CC||michael.hope at linaro dot
   ||org

--- Comment #2 from Michael Hope michael.hope at linaro dot org 2011-09-07 
02:30:14 UTC ---
Note that sincos() was introduced with Android 2.3.  The initial version calls
sin() then calls cos() so there's no immediate advantage.


[Bug rtl-optimization/50249] ira marks wrong value for inheriting

2011-09-06 Thread mkuvyrkov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50249

Maxim Kuvyrkov mkuvyrkov at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mkuvyrkov at gcc dot
   ||gnu.org

--- Comment #6 from Maxim Kuvyrkov mkuvyrkov at gcc dot gnu.org 2011-09-07 
02:55:56 UTC ---
Vladimir,

Does the analysis done by Tom sound correct (see
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50249#c0) ?

To fix this RA bug, should we teach IRA to distinguish between Reload 1 and
Reload 2, or make sure that the reloads are evaluated in correct order, or
something else?

Thank you.


[Bug c++/50298] [C++0x][constexpr] References cannot be bound to static constexpr reference members

2011-09-06 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50298

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-09-07
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1


[Bug target/50313] New: ARM: PIC code references a non-existant label

2011-09-06 Thread michael.hope at linaro dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50313

 Bug #: 50313
   Summary: ARM: PIC code references a non-existant label
Classification: Unclassified
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: michael.h...@linaro.org


Created attachment 25211
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25211
Preprocessed source

Building gmime with GCC 4.6.1 for ARM gives the following error:

michaelh@ursa1:~/linaro/bugs$ gcc -c -O2 -fPIC -save-temps gmime2.i
gmime2.s: Assembler messages:
gmime2.s:1007: Error: can't resolve `.rodata' {.rodata section} - `.LPIC18'
{*UND* section}

The assembler is correct - the code references a label which doesn't exist.

The suspicious code is around:
 bl g_hash_table_new(PLT)
 mov sl, r0
 add r0, sp, #32
 bl g_mime_decode_lwsp(PLT)
 ldr r3, .L146+24
 ldr r1, [sp, #4]
 str r3, [sp, #16]
 ldr r3, [sp, #32]
...
.L146:
...
 .word .LANCHOR0-(.LPIC18+4)

The 'ldr r3, .L146+24' references the offset. The value is spilt to the stack
before the normal `add r3, pc` and doesn't seem to be used afterwards.

The work-around is to compile at -O1 or -O3. The fault also exists in
gcc-4.6.1. It does not exist in gcc-4.5.3 or trunk r178025.

This is in a Cortex-A9+NEON+Thumb-2 configuration.


[Bug target/50310] [4.7 Regression] ICE: in gen_vcondv2div2df, at config/i386/sse.md:1435 with -O -ftree-vectorize and __builtin_isunordered()

2011-09-06 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50310

--- Comment #3 from Zdenek Sojka zsojka at seznam dot cz 2011-09-07 04:59:06 
UTC ---
For a very similiar testcase:

double s1[4];
double s2[4];
long long e[4];

void foo(void)
{
  int i;
  for (i = 0; i  4; i++)
e[i] = __builtin_isunordered(s1[i], s2[i])  s1[i] != s2[i] ? -1 : 0;
}


Compilation fails with:
$ gcc -O -mavx -ftree-vectorize testcase2.c 
/tmp/cc7w0heQ.s: Assembler messages:
/tmp/cc7w0heQ.s:17: Error: operand type mismatch for `vpand'

or

$ gcc -O -mavx -ftree-vectorize testcase2.c -masm=intel   
/tmp/ccyNaxE9.s: Assembler messages:
/tmp/ccyNaxE9.s:18: Error: operand size mismatch for `vpand'

(-mavx is needed)

I don't know if that's related, GCC 4.6 generates very different code. My as
might be outdated as well.


[Bug target/50313] ARM: PIC code references a non-existant label

2011-09-06 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50313

--- Comment #1 from Mikael Pettersson mikpe at it dot uu.se 2011-09-07 
05:55:26 UTC ---
I suspect this is a dupe of PR48308.