[Bug tree-optimization/57343] [4.8/4.9 Regression] wrong code on x86_64-linux at -Os and above

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57343

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-05-21
 CC||jakub at gcc dot gnu.org
   Target Milestone|--- |4.8.1
Summary|wrong code on x86_64-linux  |[4.8/4.9 Regression] wrong
   |at -Os and above|code on x86_64-linux at -Os
   ||and above
 Ever confirmed|0   |1

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Started with r193098 .

int c = 0;

int
main ()
{
  int i, f = 1;
  for (i = 0; i  5; i++)
{
  --c;
  unsigned char h = c * 100;
  if (h == 0)
{
  f = 0;
  break;
}
}
  if (f != 1)
__builtin_abort ();
  return 0;
}


[Bug rtl-optimization/57347] [4.8/4.9 Regression] wrong code for bitfield on x86_64-linux at -Os and above

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57347

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-05-21
 CC||jakub at gcc dot gnu.org
   Target Milestone|--- |4.8.1
Summary|wrong code for bitfield on  |[4.8/4.9 Regression] wrong
   |x86_64-linux at -Os and |code for bitfield on
   |above   |x86_64-linux at -Os and
   ||above
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
Started with r193298 .

struct S1 { int f0; int f1 : 10; int f2 : 13; };
int i;
int *j = i;

static void
foo (struct S1 s)
{
  int *p;
  int l[88];
  int **pp = p;
  *pp = l[1];
  l[0] = 1;
  *j = 1  s.f2;
}

int
main ()
{
  struct S1 s = { 0, 0, 1 };
  foo (s);
  if (i != 1)
__builtin_abort ();
  return 0;
}


[Bug target/57341] [4.8/4.9 Regression] wrong code on x86_64-linux at -O3 in 32-bit mode

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57341

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-05-21
 CC||jakub at gcc dot gnu.org
   Target Milestone|--- |4.8.1
Summary|wrong code on x86_64-linux  |[4.8/4.9 Regression] wrong
   |at -O3 in 32-bit mode   |code on x86_64-linux at -O3
   ||in 32-bit mode
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
Started with r188667 .  -m32 -O3 -msse is needed.

int a, d;
int *b = a, **c;
int
main ()
{
  int e;
  {
int f[4];
for (d = 0; d  4; d++)
  f[d] = 1;
e = f[1];
  }
  int *g[28] = { };
  *b = e;
  c = g[0];
  if (a != 1)
__builtin_abort ();
  return 0;
}


[Bug fortran/57328] Missed optimization: Unable to vectorize Fortran min and max intrinsics

2013-05-21 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57328

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu.org

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org ---
(In reply to Bud Davis from comment #1)
 The floating point number makes it special in some way.

My suspicion is that this is due to special handling for IEEE 754:2008, which
requires that
   MAX (NaN, x) = MAX (x, NaN) = x
   MIN (NaN, x) = MIN (x, NaN) = x


[Bug c++/41933] [c++0x] lambdas and variadic templates don't work together

2013-05-21 Thread akim.demaille at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41933

Akim Demaille akim.demaille at gmail dot com changed:

   What|Removed |Added

 CC||akim.demaille at gmail dot com

--- Comment #9 from Akim Demaille akim.demaille at gmail dot com ---
Hi all,

For what it's worth, Wikipedia has a note about this G++ bug:
http://en.wikipedia.org/wiki/Variadic_template .  Below, a test case that
passes with clang, but fails to compile with G++ 4.9.


#include iostream

struct pass
{
  templatetypename ...T pass(T...) {}
};

template typename... T
void print(T... args)
{
   pass{([]{ std::cout  args  std::endl; }(), 1)...};
}

int main()
{
  print(1, 2, 3.4, '5');
}


$ g++-mp-4.9 -Wall var.cc -std=c++11
var.cc: In function 'void print(T ...)':
var.cc:11:54: error: expansion pattern '(lambda(), 1)' contains no argument
packs
pass{([]{ std::cout  args  std::endl; }(), 1)...};
  ^
var.cc: In instantiation of 'void print(T ...) [with T = {int, const char*,
double, char}]':
var.cc:16:25:   required from here
var.cc:11:4: error: no matching function for call to
'pass::pass(brace-enclosed initializer list)'
pass{([]{ std::cout  args  std::endl; }(), 1)...};
^
var.cc:11:4: note: candidates are:
var.cc:5:27: note: templateclass ... T pass::pass(T ...)
   templatetypename ...T pass(T...) {}
   ^
var.cc:5:27: note:   template argument deduction/substitution failed:
var.cc:3:8: note: constexpr pass::pass(const pass)
 struct pass
^
var.cc:3:8: note:   no known conversion for argument 1 from 'type error' to
'const pass'
var.cc:3:8: note: constexpr pass::pass(pass)
var.cc:3:8: note:   no known conversion for argument 1 from 'type error' to
'pass'


[Bug rtl-optimization/57321] [4.8/4.9 Regression] static function call miscompiled at -Os and above

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57321

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||jakub at gcc dot gnu.org
 Resolution|--- |FIXED
   Target Milestone|--- |4.8.1
Summary|static function call|[4.8/4.9 Regression] static
   |miscompiled at -Os and  |function call miscompiled
   |above   |at -Os and above

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Confirmed.  Introduced with r193298, fixed on the trunk with r198540 and on the
branch with r198737.


[Bug plugins/56754] some missing plugin headers during installation in gcc 4.8

2013-05-21 Thread baldrick at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56754

Duncan Sands baldrick at gcc dot gnu.org changed:

   What|Removed |Added

 CC||baldrick at gcc dot gnu.org

--- Comment #5 from Duncan Sands baldrick at gcc dot gnu.org ---
Was there any feedback on this patch?


[Bug tree-optimization/57303] [4.7/4.8/4.9 Regression] struct miscompiled at -O1 and above

2013-05-21 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57303

--- Comment #7 from rguenther at suse dot de rguenther at suse dot de ---
On Mon, 20 May 2013, glisse at gcc dot gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57303
 
 --- Comment #6 from Marc Glisse glisse at gcc dot gnu.org ---
 I wonder if, in addition to fixing the sink pass, we should add an 
 optimization
 like the following (it passes bootstrap+testsuite, but I am not so sure where
 it should go and what it should look like exactly).
 
 --- gimple-fold.c(revision 199093)
 +++ gimple-fold.c(working copy)
 @@ -1174,20 +1174,27 @@ fold_stmt_1 (gimple_stmt_iterator *gsi,
  if ((commutative_tree_code (subcode)
   || commutative_ternary_tree_code (subcode))
   tree_swap_operands_p (gimple_assign_rhs1 (stmt),
   gimple_assign_rhs2 (stmt), false))
{
  tree tem = gimple_assign_rhs1 (stmt);
  gimple_assign_set_rhs1 (stmt, gimple_assign_rhs2 (stmt));
  gimple_assign_set_rhs2 (stmt, tem);
  changed = true;
}
 +/* Remove *p = *p.  */
 +if (!inplace  TREE_CODE_CLASS (subcode) == tcc_reference
 + operand_equal_p (lhs, gimple_assign_rhs1 (stmt), 0))
 +  {
 +gsi_remove (gsi, true);
 +return true;
 +  }

The obvious place would be dead store elimination.  But beware that
the above, if not _literally_ being *p = *p can be changing the
effective type of the memory location and thus might be not dead
in terms of type-based aliasing rules (which basically means that
we need to do sth more clever than just removing the store).


[Bug middle-end/56988] ipa-cp incorrectly propagates a field of an aggregate

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56988

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||dhazeghi at yahoo dot com

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org ---
*** Bug 57321 has been marked as a duplicate of this bug. ***


[Bug tree-optimization/57321] [4.8/4.9 Regression] static function call miscompiled at -Os and above

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57321

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

  Component|rtl-optimization|tree-optimization
 Resolution|FIXED   |DUPLICATE

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Tue May 21 07:51:59 2013
New Revision: 199133

URL: http://gcc.gnu.org/viewcvs?rev=199133root=gccview=rev
Log:
PR tree-optimization/57321
* gcc.c-torture/execute/pr57321.c: New test.

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

Author: jakub
Date: Tue May 21 07:58:10 2013
New Revision: 199134

URL: http://gcc.gnu.org/viewcvs?rev=199134root=gccview=rev
Log:
PR tree-optimization/57321
* gcc.c-torture/execute/pr57321.c: New test.

Added:
branches/gcc-4_8-branch/gcc/testsuite/gcc.c-torture/execute/pr57321.c
Modified:
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog

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


[Bug tree-optimization/57349] New: ICE on 253.perlbmk with pgo after r198096

2013-05-21 Thread izamyatin at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57349

Bug ID: 57349
   Summary: ICE on 253.perlbmk with pgo after r198096
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: izamyatin at gmail dot com
CC: rguenther at suse dot de
Target: x86

Output:
gcc  -c -o perl.o   -DSPEC_CPU2000_LP64 -DSPEC_CPU2000_LINUX_I386
-DSPEC_CPU2000_NEED_BOOL -DSPEC_CPU2000_GLIBC22-fprofile-use   -O3
-ffast-math -funroll-loops   perl.c
Error from fdo_make_pass2 'specmake  FDO=PASS2 build  fdo_make_pass2.out 2
fdo_make_pass2.err':

Unable to coalesce ssa_names 1 and 7 which are marked as MUST COALESCE.
argc_1(ab) and  argc_7(ab)
perl.c: In function 'perl_parse':
perl.c:630:1: internal compiler error: SSA corruption
 perl_parse(PerlInterpreter *sv_interp, void (*xsinit) (void), int argc, char
**argv, char **env)
 ^
0x9c56dd fail_abnormal_edge_coalesce
../../gcc/tree-ssa-coalesce.c:898
0x9c56dd coalesce_partitions
../../gcc/tree-ssa-coalesce.c:1200
0x9c56dd coalesce_ssa_name()
../../gcc/tree-ssa-coalesce.c:1337
0x97eaff remove_ssa_form
../../gcc/tree-outof-ssa.c:900
0x97eaff rewrite_out_of_ssa(ssaexpand*)
../../gcc/tree-outof-ssa.c:1133
0x5fdeca gimple_expand_cfg
../../gcc/cfgexpand.c:4541
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.
specmake: *** [perl.o] Error 1

Issue seems related to http://gcc.gnu.org/ml/gcc/2013-05/msg00162.html.
although I haven't managed to make reproducer so far


[Bug libstdc++/53631] [C++11] regex is unimplemented

2013-05-21 Thread akim.demaille at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631

Akim Demaille akim.demaille at gmail dot com changed:

   What|Removed |Added

 CC||akim.demaille at gmail dot com

--- Comment #8 from Akim Demaille akim.demaille at gmail dot com ---
Can't Boost people be asked if they'd donate their code?  It is my
understanding that it already happened, for instance for std::shared_ptr.

Note that the current situation, imho, is very bad.  Instead of a compile-time
failure, we get something that behaves more or less randomly at runtime.  This
is really bad for GCC's karma, and shows in way too many StackOverflow
questions for instance.


[Bug middle-end/57344] [4.8/4.9 Regression] wrong code with pragma pack(1) and -O1 on x86

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57344

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-05-21
 CC||jakub at gcc dot gnu.org
  Component|target  |middle-end
   Target Milestone|--- |4.8.1
Summary|wrong code with pragma  |[4.8/4.9 Regression] wrong
   |pack(1) and -O1 on x86  |code with pragma pack(1)
   ||and -O1 on x86
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org ---
Weird, bisect tells me this regressed with r186825, but that change wasn't a
trunk change at all.  *.optimized dump is the same, *.expand already looks
buggy.


Could not open source file limits.h

2013-05-21 Thread tulio.portilho
Hi,

I work at an engineering company. Here, we use a Linux host where are
installed licenses of an engineering commercial software, called Abaqus. 

Abaqus has a make procedure, that makes executable programs using a user
soubroutine source code, or the correspondent object file. Here, Abaqus
makes use of icpc/ifort compiler to compile C/Fortran codes. 

So, I have an object file, and tried to 'make' it. The problem is that,
apparently, during the make procedure, Abaqus needs to compile an internal
source code, in C language, and icpc gives this error: /Could not open
source file limits.h/ . Here goes a copy of the terminal:

*/
tm@master1:/data/users/tm abaqus make job=abqmain.o
Abaqus JOB abqmain
Begin Compiling User Post-Processing Program
Fri 03 May 2013 02:47:38 PM CEST
Compiling: /data/users/tm/main_6425.C
icpc: Command line warning: ignoring option '-c'; no argument required
/usr/include/limits.h(125): catastrophic error: could not open source file
limits.h
  # include_next limits.h
   ^
compilation aborted for /data/users/tm/main_6425.C (code 4)
Abaqus Error: Problem during compilation - /data/users/tm/main_6425.C
The Abaqus Make execution procedure exited with errors/*

According to the error message, the */usr/include/limits.h* file tries to
include another *limits.h* file, but doesn't find it next in the search
path. According to what I read, there should be another file at
*/usr/lib/gcc/*/*/include/limits.h*, and both really try to include each
other.

I searched for this other file, and what I found was
*/usr/lib64/gcc/x86_64-suse-linux/4.5/include-fixed/limits.h*.

I am not experienced in C programming, so... From the commentaries in both
limits.h files, I didn't understand firstly why icpc tries to include the
limits.h file in gcc library. This is present at the
*/usr/include/limits.h*:

#if defined __GNUC__  !defined _GCC_LIMITS_H_
/* `_GCC_LIMITS_H_' is what GCC's file defines.  */
# include_next limits.h
#endif

If I am using icpc, why is *defined __GNUC__* true? 

Also, supposing it is right, why it doesn't find the other limits.h file?

Thank you



--
View this message in context: 
http://gcc.1065356.n5.nabble.com/Could-not-open-source-file-limits-h-tp939843.html
Sent from the gcc - bugs mailing list archive at Nabble.com.


[Bug libstdc++/57336] [4.8/4.9 Regression] Cannot INVOKE a reference_wrapper around an abstract type

2013-05-21 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57336

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
Fixed.

N.B. Daniel pointer out this was LWG 2017.


[Bug tree-optimization/57303] [4.7/4.8 Regression] struct miscompiled at -O1 and above

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57303

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.9.0
Summary|[4.7/4.8/4.9 Regression]|[4.7/4.8 Regression] struct
   |struct miscompiled at -O1   |miscompiled at -O1 and
   |and above   |above

--- Comment #8 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Tue May 21 08:11:23 2013
New Revision: 199135

URL: http://gcc.gnu.org/viewcvs?rev=199135root=gccview=rev
Log:
2013-05-21  Richard Biener  rguent...@suse.de

PR tree-optimization/57303
* tree-ssa-sink.c (statement_sink_location): Improve killing
stmt detection and properly handle self-assignments.

* gcc.dg/torture/pr57303.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr57303.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-sink.c


Re: Could not open source file limits.h

2013-05-21 Thread Jonathan Wakely
This mailing list is for automated emails from our Bugzilla database,
I suggest you send your mail to the gcc-help list instead.


[Bug libstdc++/57350] New: std::align missing

2013-05-21 Thread potswa at mac dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57350

Bug ID: 57350
   Summary: std::align missing
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: potswa at mac dot com

C++11 §20.6.5 [ptr.align] remains unimplemented.

Several years ago I published what now appears to be a compliant
implementation, but it was under the MIT license. Does that disqualify that
code, or me, from submitting a patch?

As pure, relatively agnostic pointer arithmetic it doesn't seem to fit into the
other groups of functions specified for memory, which are implemented in
various separate files.

[Bug libstdc++/53631] [C++11] regex is unimplemented

2013-05-21 Thread rleigh at debian dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631

--- Comment #9 from Roger Leigh rleigh at debian dot org ---
It would be better if regex did not exist at all until functional.  If I do
regular autoconf header checks, plus a check to make sure that the needed types
can be instantiated, then these all succeed despite it being broken.  I need to
do additional tests on top of this to actually check if it's truly functional,
and then fall back to boost::regex if not.  No other standard library feature
has (IME) needed such extra checking.

Regards,
Roger


[Bug libstdc++/57350] std::align missing

2013-05-21 Thread potswa at mac dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57350

--- Comment #1 from David Krauss potswa at mac dot com ---
Oh, here's a link to my version:
http://code.google.com/p/c-plus/source/browse/src/util.h#50


[Bug libstdc++/53631] [C++11] regex is unimplemented

2013-05-21 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631

--- Comment #10 from Jonathan Wakely redi at gcc dot gnu.org ---
Yes, we're well aware of all these problems.  What I don't see is anyone
proposing any useful solutions.

If someone sends a patch to remove the regex header *without* removing
exported symbols from libstdc++.so I'll happily review it, but I have other
things to work on.


[Bug tree-optimization/57349] [4.9 Regression] ICE on 253.perlbmk with pgo after r198096

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57349

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2013-05-21
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
   Target Milestone|--- |4.9.0
Summary|ICE on 253.perlbmk with pgo |[4.9 Regression] ICE on
   |after r198096   |253.perlbmk with pgo after
   ||r198096
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
I will have a look.


[Bug libstdc++/53631] [C++11] regex is unimplemented

2013-05-21 Thread akim.demaille at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631

--- Comment #11 from Akim Demaille akim.demaille at gmail dot com ---
Sorry, I didn't mean to be harsh, and I did try to propose a solution.  I can
easily guess that there is no reason for it to be easy or even possible, but
can't Boost people be asked if they'd contribute?


[Bug middle-end/57348] [TM] ICE for transaction expression in gimplify_expr

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57348

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-05-21
  Component|libitm  |middle-end
Summary|ICE for transaction |[TM] ICE for transaction
   |expression in gimplify_expr |expression in gimplify_expr
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed.


[Bug libstdc++/53631] [C++11] regex is unimplemented

2013-05-21 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631

--- Comment #12 from Jonathan Wakely redi at gcc dot gnu.org ---
It's a possibility, but personally I have other things to work on.


[Bug rtl-optimization/57344] [4.7/4.8/4.9 Regression] wrong code with pragma pack(1) and -O1 on x86

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57344

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Component|middle-end  |rtl-optimization
  Known to work||4.7.0
   Target Milestone|4.8.1   |4.7.4
Summary|[4.8/4.9 Regression] wrong  |[4.7/4.8/4.9 Regression]
   |code with pragma pack(1)|wrong code with pragma
   |and -O1 on x86  |pack(1) and -O1 on x86
  Known to fail||4.7.1, 4.7.3, 4.8.0, 4.9.0

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Bi-secting on the 4.7 branch should reveal the offending patch.  Tree
optimizers
look good, so the issue is on the RTL or target side.


[Bug bootstrap/57340] [4.9 regression] stage2 miscompiles build/genconditions on armv5tel-linux-gnueabi breaking bootstrap

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57340

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Target||armv5tel-linux-gnueabi
   Target Milestone|--- |4.9.0
  Build||armv5tel-linux-gnueabi


[Bug tree-optimization/57337] [4.9 Regression] 416.gamess ICE on x86 after r199048

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57337

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0
Summary|416.gamess ICE on x86 after |[4.9 Regression] 416.gamess
   |r199048 |ICE on x86 after r199048


[Bug lto/57334] ICE: in input_gimple_stmt, at gimple-streamer-in.c:287

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57334

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||lto
 CC||hubicka at gcc dot gnu.org

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
I've seen this ICE before I think.

  else if (code == GIMPLE_LABEL)
gcc_assert (emit_label_in_global_context_p (gimple_label_label (stmt))
|| DECL_CONTEXT (gimple_label_label (stmt)) == fn-decl);


[Bug rtl-optimization/57344] [4.7/4.8/4.9 Regression] wrong code with pragma pack(1) and -O1 on x86

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57344

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org ---
Yeah, the problem is definitely in store_split_bit_field.

One possible fix is:

--- gcc/expmed.c.jj2013-05-14 10:54:58.0 +0200
+++ gcc/expmed.c2013-05-21 10:54:59.707793889 +0200
@@ -1094,10 +1094,15 @@ store_split_bit_field (rtx op0, unsigned
   thispos = (bitpos + bitsdone) % unit;

   /* When region of bytes we can touch is restricted, decrease
- UNIT close to the end of the region as needed.  */
+ UNIT close to the end of the region as needed.
+ Don't do this if op0 is a REG or SUBREG, there won't be any
+ data races on registers and the code assumes unit is
+ BITS_PER_WORD.  */
   if (bitregion_end
unit  BITS_PER_UNIT
-   bitpos + bitsdone - thispos + unit  bitregion_end + 1)
+   bitpos + bitsdone - thispos + unit  bitregion_end + 1
+   !REG_P (op0)
+   GET_CODE (op0) != SUBREG)
 {
   unit = unit / 2;
   continue;

Another one I'm currently testing is just not assuming unit is BITS_PER_WORD in
the SUBREG/REG handling code, and another one a mixture of both.

I don't know if we can actually end up with a SUBREG of MEM, if yes, then the
above patch is wrong, because it could introduce a data race in that case.  The
other fix on the other side might pessimize the case where we e.g. have a real
REG or SUBREG of some REG and store some bits in a first word and bitregion_end
tells us that we must not touch the last byte in the second word, but we need
to touch the rest.  On REGs there should be no data races.  So I'm probably
going with both changes together.


[Bug fortran/57328] Missed optimization: Unable to vectorize Fortran min and max intrinsics

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57328

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Yes, you generally need -ffast-math here (or -ffinite-math-only at least).


[Bug tree-optimization/57326] Piecewise folding of operations on PHI nodes

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57326

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2013-05-21
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed.  Something for tree-ssa-phiopt.c.  PRE likely also computes this
but does not transform (for some reason).  Ah, it produces the first bit here
translating _8 = _7 | _14 doesn't produce the desired result (too complex).


[Bug tree-optimization/57322] [4.9 Regression] Segfault at -O1 in build_and_add_sum

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57322

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0


[Bug c++/57319] [4.8 Regression]: bogus defaulted move assignment for ... calls a non-trivial move assignment operator for virtual base ...

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57319

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.9.0
   Target Milestone|--- |4.8.1


[Bug tree-optimization/57318] [4.9 Regression] optimizer takes several seconds on nested loops

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57318

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org
   Target Milestone|--- |4.9.0
Summary|optimizer takes several |[4.9 Regression] optimizer
   |seconds on nested loops |takes several seconds on
   ||nested loops

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
4.8 compiles this to just

main:
.LFB0:
.cfi_startproc
movl$10, %eax
movl$10, b(%rip)
movl$10, a(%rip)
movw%ax, u+4(%rip)
ret


[Bug tree-optimization/57318] [4.9 Regression] optimizer takes several seconds on nested loops

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57318

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
 BB: 5, after_exit: 0
  size:   1 vol.0_11 ={v} v.f0;
   Constant expression will be folded away.

obviously wrong.  I have a patch.


[Bug sanitizer/57316] [4.8/4.9 regression] build failure in libsanitizer

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57316

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.8.1
Summary|[4.8 regression] build  |[4.8/4.9 regression] build
   |failure in libsanitizer |failure in libsanitizer


[Bug tree-optimization/57315] LTO and/or vectorizer performance regression on salsa20 core, 4.7-4.8

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57315

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||missed-optimization
 Target||x86_64-*-*
 CC||rguenth at gcc dot gnu.org

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Please at least reproduce the core function as a separate compilable testcase
here togehter with flags used for the build.  Also please try to factor out
LTO ...


[Bug tree-optimization/57330] [4.8/4.9 Regression] ICE: verify_gimple failed -O3 [tree-cfg.c:4792]

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57330

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
I'm having a look.


[Bug tree-optimization/57330] [4.8/4.9 Regression] ICE: verify_gimple failed -O3 [tree-cfg.c:4792]

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57330

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
I have a simple patch.


[Bug tree-optimization/57343] [4.8/4.9 Regression] wrong code on x86_64-linux at -Os and above

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57343

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
I'll have a look.


[Bug fortran/57328] Missed optimization: Unable to vectorize Fortran min and max intrinsics

2013-05-21 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57328

--- Comment #4 from Marc Glisse glisse at gcc dot gnu.org ---
(In reply to Richard Biener from comment #3)
 Yes, you generally need -ffast-math here (or -ffinite-math-only at least).

SSE2 has an unord comparison instruction (aka isnan) though, so vectorizing the
full version of min/max should still work, and be even more worth it than for
the finite-only min/max... Maybe a target issue?


[Bug libstdc++/57350] std::align missing

2013-05-21 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57350

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to David Krauss from comment #0)
 C++11 §20.6.5 [ptr.align] remains unimplemented.
 
 Several years ago I published what now appears to be a compliant
 implementation, but it was under the MIT license. Does that disqualify that
 code, or me, from submitting a patch?

Not at all, nothing stops you (as the author) submitting it to the FSF under
the GPL, but to accept it the FSF usually need a copyright asignment on file -
do you have one?

[Bug fortran/57328] Missed optimization: Unable to vectorize Fortran min and max intrinsics

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57328

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
But vectorization reorders the loop iterations, thus say if some value is sNaN,
you'd get exceptions in different order.  So, I'm afraid without -ffast-math
you can vectorize this only if the user says that the order of iterations
doesn't matter (say using OpenMP 4.0 #pragma omp simd or Cilk+ #pragma simd).


[Bug tree-optimization/57331] [4.9 Regression] ICE: tree check: expected integer_type or enumeral_type or boolean_type or real_type or fixed_point_type, have pointer_type in int_fits_type_p, at tree.c

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57331

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 30150
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30150action=edit
gcc49-pr57331.patch

Untested fix.


[Bug rtl-optimization/57344] [4.7/4.8/4.9 Regression] wrong code with pragma pack(1) and -O1 on x86

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57344

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org ---
Created attachment 30151
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30151action=edit
gcc49-pr57344.patch

Untested fix.


[Bug debug/57351] New: ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

Bug ID: 57351
   Summary: ICE: internal compiler error: in dbx_reg_number, at
dwarf2out.c:10507 on arm-none-eabi
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ktkachov at gcc dot gnu.org
CC: christian.bruel at st dot com
Target: arm-none-eabi

Created attachment 30152
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30152action=edit
Preprocessed testcase

Building newlib for arm-none-eabi fails after r199132

2013-05-21  Christian Bruel  christian.br...@st.com

* dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
spanning registers. LEAF_REG_REMAP is supported only for contiguous
registers. Set register size out of the PARALLEL loop.


with an ICE:
$SRC/binutils/newlib/libc/stdlib/dtoa.c:862:1: internal compiler error: in
dbx_reg_number, at dwarf2out.c:10507
 }
 ^
0x659a6e dbx_reg_number
$SRC/gcc/gcc/dwarf2out.c:10507
0x6dc41c rest_of_handle_final
$SRC/gcc/gcc/final.c:4393
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.

I encounter the same ICE when trying to build libgfortran on arm-none-eabi. The
attached testcase is reduced from there.

I reproduced the ICE with flags -std=c99 -O2 -g on the testcase
My cross compiler is configured with --with-fpu=neon-vfpv4 --with-float=hard
--with-arch=armv7-a

Thanks,
Kyrill


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread chrbr at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

chrbr at gcc dot gnu.org changed:

   What|Removed |Added

 CC||chrbr at gcc dot gnu.org

--- Comment #1 from chrbr at gcc dot gnu.org ---
looking at it


[Bug fortran/57328] Missed optimization: Unable to vectorize Fortran min and max intrinsics

2013-05-21 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57328

Marc Glisse glisse at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||missed-optimization

--- Comment #6 from Marc Glisse glisse at gcc dot gnu.org ---
(In reply to Jakub Jelinek from comment #5)
 But vectorization reorders the loop iterations, thus say if some value is
 sNaN, you'd get exceptions in different order.  So, I'm afraid without
 -ffast-math you can vectorize this only if the user says that the order of
 iterations doesn't matter (say using OpenMP 4.0 #pragma omp simd or Cilk+
 #pragma simd).

Ah, I was only thinking of quiet nans. -fno-signaling-nans should be enough
though, no? (I checked and it doesn't help, which makes sense since it is the
default) I think it is quite common to care about quiet nans but not use
signaling nans.


[Bug lto/57289] [4.9 Regression] ICE during 454.calculix compilation with -O3 -flto

2013-05-21 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57289

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2013-05/msg01147.htm
   ||l

--- Comment #4 from Martin Jambor jamborm at gcc dot gnu.org ---
Proposed fix submitted to the mailing list:
http://gcc.gnu.org/ml/gcc-patches/2013-05/msg01147.html


[Bug c++/57352] New: internal compiler error in cp_parser_abort_tentative_parse at cp/parser.c:22878

2013-05-21 Thread vanyacpp at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57352

Bug ID: 57352
   Summary: internal compiler error in
cp_parser_abort_tentative_parse at cp/parser.c:22878
   Product: gcc
   Version: 4.7.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vanyacpp at gmail dot com

gcc 4.7.2 crashes on the following code:

struct x
{
operator class {} ();
};

With error message:

13.cpp:3:21: internal compiler error: in cp_parser_abort_tentative_parse, at
cp/parser.c:22878
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


[Bug target/57341] [4.8/4.9 Regression] wrong code on x86_64-linux at -O3 in 32-bit mode

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57341

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||matz at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
Seems validate_equiv_mem_from_store during update_equiv_regs calls
true_dependence to find out if it is safe to use it as equiv, and
true_dependence is called with
x being
(mem/c:SI (plus:SI (reg/f:SI 20 frame)
(const_int -108 [0xff94])) [3 f+4 S4 A32])
and mem being
(mem/c:BLK (reg:SI 64) [2 g+0 S112 A128])
and returns 0 because the alias sets weren't properly adjusted.


[Bug tree-optimization/57343] [4.8/4.9 Regression] wrong code on x86_64-linux at -Os and above

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57343

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||rakdver at gcc dot gnu.org

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
   The value C is equal to final - base, where final and base are the final and
   initial value of the actual induction variable in the analysed loop.  BNDS
   bounds the value of this difference when computed in signed type with
   unbounded range, while the computation of C is performed in an unsigned
   type with the range matching the range of the type of the induction
variable.
   In particular, BNDS.up contains an upper bound on C in the following cases:
   -- if the iv must reach its final value without overflow, i.e., if
  NO_OVERFLOW  EXIT_MUST_BE_TAKEN is true, or
   -- if final = base, which we know to hold when BNDS.below = 0.  */

static void
number_of_iterations_ne_max (mpz_t bnd, bool no_overflow, tree c, tree s,
 bounds *bnds, bool exit_must_be_taken)
{
  double_int max;
  mpz_t d;
  bool bnds_u_valid = ((no_overflow  exit_must_be_taken)
   || mpz_sgn (bnds-below) = 0);

for the case in question (IV of unsigned char type, base
((unsigned char) (c_lsm.4_12 + -1)) * 100 and step 100 (negated 156))
the bnds values (below 0, up 255 - full range of unsigned char) the
fact that the IV overflows cannot be simply ignored - and I don't see
how we can derive from below = 0 that final (which is zero!) is
= base.

We then fall to

  if (multiple_of_p (TREE_TYPE (c), c, s))
{
  /* If C is an exact multiple of S, then its value will be reached before
 the induction variable overflows (unless the loop is exited in some
 other way before).  Note that the actual induction variable in the
 loop (which ranges from base to final instead of from 0 to C) may
 overflow, in which case BNDS.up will not be giving a correct upper
 bound on C; thus, BNDS_U_VALID had to be computed in advance.  */
  no_overflow = true;
  exit_must_be_taken = true;

which ends up with no_overflow = true and things going downhill from here.

Note that the original, non-negated bnds would _not_ have mpz_sgn (bnds-below)
= 0 (but -255):

  /* Rearrange the terms so that we get inequality S * i  C, with S
 positive.  Also cast everything to the unsigned type.  If IV does
 not overflow, BNDS bounds the value of C.  Also, this is the
 case if the computation |FINAL - IV-base| does not overflow, i.e.,
 if BNDS-below in the result is nonnegative.  */
  if (tree_int_cst_sign_bit (iv-step))
{
  s = fold_convert (niter_type,
fold_build1 (NEGATE_EXPR, type, iv-step));
  c = fold_build2 (MINUS_EXPR, niter_type,
   fold_convert (niter_type, iv-base),
   fold_convert (niter_type, final));
  bounds_negate (bnds);

Here |FINAL - IV-base| does overflow, but bounds_negate shadows this.


But even before that we have IVCANON remove the pointless exit

Removed pointless exit: if (i_11 = 4)
Added canonical iv to loop 1, 3 iterations.

then it adds back the canonical IV, but that's pointless in the next
analysis run done by cunroll and removed there.

The bogus upper bound is determined from local_pure_const via finite_loop_p ()
on the non-header-copied form and the estimate from the h == 0 test.

Analyzing # of iterations of loop 1
  exit condition [(unsigned char) (c_6 + -1) * 100, + , 156] != 0
  bounds on difference of bases: -255 ... 0
  result:
# of iterations (((unsigned char) (c_6 + -1) * 100) /[ex] 4) * 41  63,
bounded by 2

In the end I think that number_of_iterations_ne_max does not properly
honor the case where for

  if (multiple_of_p (TREE_TYPE (c), c, s))
{
  /* If C is an exact multiple of S, then its value will be reached before
 the induction variable overflows (unless the loop is exited in some
 other way before).  Note that the actual induction variable in the
 loop (which ranges from base to final instead of from 0 to C) may
 overflow, in which case BNDS.up will not be giving a correct upper
 bound on C; thus, BNDS_U_VALID had to be computed in advance.  */
  no_overflow = true;

that multiply overflows.  At least the IV does not range from 0 to C
for (unsigned char) (c_6 + -1) * 100.

I have a hard time following the logic that this all is correct for
wrapping IVs ... that said,

Index: gcc/tree-ssa-loop-niter.c
===
--- gcc/tree-ssa-loop-niter.c   (revision 199137)
+++ gcc/tree-ssa-loop-niter.c   (working copy)
@@ -627,7 +627,7 @@ number_of_iterations_ne (tree type, affi
  not overflow, BNDS bounds the value of C.  Also, this is the
  case 

[Bug tree-optimization/57330] [4.8 Regression] ICE: verify_gimple failed -O3 [tree-cfg.c:4792]

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57330

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.9.0
Summary|[4.8/4.9 Regression] ICE:   |[4.8 Regression] ICE:
   |verify_gimple failed -O3|verify_gimple failed -O3
   |[tree-cfg.c:4792]   |[tree-cfg.c:4792]
  Known to fail|4.9.0   |

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Tue May 21 11:56:57 2013
New Revision: 199139

URL: http://gcc.gnu.org/viewcvs?rev=199139root=gccview=rev
Log:
2013-05-21  Richard Biener  rguent...@suse.de

PR tree-optimization/57330
* cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
preserve the call stmts fntype.

* gcc.dg/torture/pr57330.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr57330.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cgraph.c
trunk/gcc/testsuite/ChangeLog


[Bug tree-optimization/57318] [4.9 Regression] optimizer takes several seconds on nested loops

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57318

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Tue May 21 11:59:28 2013
New Revision: 199140

URL: http://gcc.gnu.org/viewcvs?rev=199140root=gccview=rev
Log:
2013-05-21  Richard Biener  rguent...@suse.de

PR tree-optimization/57318
* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
estimate stmts with side-effects as likely eliminated.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-loop-ivcanon.c

Fixed - latent on the branch though.


[Bug tree-optimization/57343] [4.8/4.9 Regression] wrong code on x86_64-linux at -Os and above

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57343

--- Comment #5 from Richard Biener rguenth at gcc dot gnu.org ---
(In reply to Richard Biener from comment #4)
 Index: gcc/tree-ssa-loop-niter.c
 ===
 --- gcc/tree-ssa-loop-niter.c   (revision 199137)
 +++ gcc/tree-ssa-loop-niter.c   (working copy)
 @@ -627,7 +627,7 @@ number_of_iterations_ne (tree type, affi
   not overflow, BNDS bounds the value of C.  Also, this is the
   case if the computation |FINAL - IV-base| does not overflow, i.e.,
   if BNDS-below in the result is nonnegative.  */
 -  if (tree_int_cst_sign_bit (iv-step))
 +  if (tree_int_cst_sgn (iv-step) == -1)
  {
s = fold_convert (niter_type,
 fold_build1 (NEGATE_EXPR, type, iv-step));
 
 fixes the testcase (otherwise untested).

Doesn't work and fails bootstrap.


[Bug rtl-optimization/57347] [4.8/4.9 Regression] wrong code for bitfield on x86_64-linux at -Os and above

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57347

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jamborm at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org ---
I don't find code in http://gcc.gnu.org/ml/gcc-patches/2012-11/msg00460.html to
handle bitfields, the comment talks about punting on them, but I couldn't find
anything that would try to punt.
ipa_load_from_parm_agg_1 seems to return just the bit offset (which is then
compared to the offsets in aggval chain), but not the access bitsize (if aggval
is guaranteed to contain values for all fields, then perhaps with bitsize it
would be enough to look for all v where v-offset is in [offset,
offset+bitsize)
and combine all those values together - is v-value always constant?).


[Bug tree-optimization/57318] [4.9 Regression] optimizer takes several seconds on nested loops

2013-05-21 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57318

--- Comment #5 from Marc Glisse glisse at gcc dot gnu.org ---
(In reply to Richard Biener from comment #4)
 Fixed

Thanks. Is the slowness of the sched2 pass tracked elsewhere? Or is that a
normal speed for many volatile ops?


[Bug tree-optimization/57318] [4.9 Regression] optimizer takes several seconds on nested loops

2013-05-21 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57318

--- Comment #6 from rguenther at suse dot de rguenther at suse dot de ---
On Tue, 21 May 2013, glisse at gcc dot gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57318
 
 --- Comment #5 from Marc Glisse glisse at gcc dot gnu.org ---
 (In reply to Richard Biener from comment #4)
  Fixed
 
 Thanks. Is the slowness of the sched2 pass tracked elsewhere? Or is that a
 normal speed for many volatile ops?

It's dependence computation, thus known.


[Bug libgcc/57353] New: unrecognizable insn in decLibrary.c, ICE in extract_insn

2013-05-21 Thread stigge at antcom dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57353

Bug ID: 57353
   Summary: unrecognizable insn in decLibrary.c, ICE in
extract_insn
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgcc
  Assignee: unassigned at gcc dot gnu.org
  Reporter: stigge at antcom dot de

Created attachment 30153
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30153action=edit
debug file from ICE

Subject: unrecognizable insn in decLibrary.c, ICE in extract_insn

Hi,

on Debian's powerpcspe (i.e. powerpc e500v2, gnuspe), I encountered the
following while building the latest gcc snapshot:

...
/home/ernie/gcc-snapshot-20130509/build/./gcc/xgcc
-B/home/ernie/gcc-snapshot-20130509/build/./gcc/
-B/usr/lib/gcc-snapshot/powerpc-linux-gnuspe/bin/
-B/usr/lib/gcc-snapshot/powerpc-linux-gnuspe/lib/ -isystem
/usr/lib/gcc-snapshot/powerpc-linux-gnuspe/include -isystem
/usr/lib/gcc-snapshot/powerpc-linux-gnuspe/sys-include-g -O2 -O2  -g -O2
-DIN_GCC   -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition  -isystem ./include   -fPIC
-mlong-double-128 -mno-minimal-toc -g -DIN_LIBGCC2 -fbuilding-libgcc
-fno-stack-protector   -fPIC -mlong-double-128 -mno-minimal-toc -I. -I.
-I../.././gcc -I../../../src/libgcc -I../../../src/libgcc/.
-I../../../src/libgcc/../gcc -I../../../src/libgcc/../include
-I../../../src/libgcc/../libdecnumber/dpd -I../../../src/libgcc/../libdecnumber
-DHAVE_CC_TLS  -o decDouble.o -MT decDouble.o -MD -MP -MF decDouble.dep -c
../../../src/libgcc/../libdecnumber/decDouble.c
../../../src/libgcc/../libdecnumber/decLibrary.c: In function 'isinfd64':
../../../src/libgcc/../libdecnumber/decLibrary.c:60:1: error: unrecognizable
insn:
 }
 ^
(insn 2 4 3 2 (set (reg/v:DD 125 [ arg ])
(reg:DD 3 3 [ arg ]))
../../../src/libgcc/../libdecnumber/decLibrary.c:53 -1
 (nil))
../../../src/libgcc/../libdecnumber/decLibrary.c:60:1: internal compiler error:
in extract_insn, at recog.c:2154
0x1086917f _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
../../src/gcc/rtl-error.c:109
0x108691d3 _fatal_insn_not_found(rtx_def const*, char const*, int, char const*)
../../src/gcc/rtl-error.c:117
0x10801bd7 extract_insn(rtx_def*)
../../src/gcc/recog.c:2154
0x10573667 instantiate_virtual_regs_in_insn
../../src/gcc/function.c:1561
0x105752c3 instantiate_virtual_regs
../../src/gcc/function.c:1926
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See file:///usr/share/doc/gcc-snapshot/README.Bugs for instructions.
Preprocessed source stored into /tmp/ccLwS90V.out file, please attach this to
your bugreport.
make[5]: *** [decLibrary.o] Error 1
make[5]: *** Waiting for unfinished jobs
make[5]: Leaving directory
`/home/ernie/gcc-snapshot-20130509/build/powerpc-linux-gnuspe/libgcc'
make[4]: *** [all-stage1-target-libgcc] Error 2
make[4]: Leaving directory `/home/ernie/gcc-snapshot-20130509/build'
...

Attaching the cited debug file ccLwS90V.out

Thanks in advance,

Roland


[Bug fortran/57354] New: Wrong run-time assignment of allocatable array of derived type with allocatable component

2013-05-21 Thread vladimir.fuka at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57354

Bug ID: 57354
   Summary: Wrong run-time assignment of allocatable array of
derived type with allocatable component
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: vladimir.fuka at gmail dot com

Created attachment 30154
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30154action=edit
realloc.f90

source:

  type t
integer,allocatable :: i
  end type

  type(t) :: e
  type(t), allocatable :: a(:)

  do i=1,100
e%i = i

if (.not.allocated(a)) then
  a = [e]
else
  a = [a, e]
end if
  end do

  print *, (a(i)%i, i=1,size(a))
end


gcc version 4.8.1 20130509 (prerelease) (GCC)

expected result: 1,2..100

actual result: 

  gfortran realloc.f90

  ./a.out 
323386243233856032338496323384323233836832338304   
323382403233817632338112323380483233792032337856   
323377923233772832337664323376003233753632337472   
323380163233795232337232323371683233710432337040   
323369763233740832337344323368163233675232336688   
323366243233609632336032323359683233691232336512   
323364483233638432336352323362883233622432335872   
323361603233568032335248323348643233452832334240   
323339523233388832333952323342403233452832334864   
323352483233568032336160323358723233622432336288   
323363523233638432336448323365123233691232335968   
323360323233609632336624323366883233675232336816   
323373443233740832336976323370403233710432337168   
323372323233795232338016323374723233753632337600   
323376643233772832337792323378563233792032338048   
323381123233817632338240323383043233836832338432   
323384963233856032338624 100
(the garbage differs on each run)


[Bug fortran/57354] Wrong run-time assignment of allocatable array of derived type with allocatable component

2013-05-21 Thread vladimir.fuka at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57354

--- Comment #1 from Vladimir Fuka vladimir.fuka at gmail dot com ---
valgrind ./a.out 
==17600== Memcheck, a memory error detector
==17600== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==17600== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==17600== Command: ./a.out
==17600== 
==17600== Invalid read of size 4
==17600==at 0x4012A0: MAIN__ (realloc.f90:15)
==17600==by 0x40159A: main (realloc.f90:22)
==17600==  Address 0x5c4e4a0 is 0 bytes inside a block of size 4 free'd
==17600==at 0x4C2AF6C: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==17600==by 0x401181: MAIN__ (realloc.f90:15)
==17600==by 0x40159A: main (realloc.f90:22)
==17600== 
   1   2   3   4   5   6   
   7   8   9  10  11  12  13   
  14  15  16  17  18  19 
20  21  22  23  24  25  26 
27  28  29  30  31  32  33 
34  35  36  37  38  39 
40  41  42  43  44  45  46 
47  48  49  50  51  52  53 
54  55  56  57  58  59 
60  61  62  63  64  65  66 
67  68  69  70  71  72  73 
74  75  76  77  78  79 
80  81  82  83  84  85  86 
87  88  89  90  91  92  93 
94  95  96  97  98  99
100
==17600== 
==17600== HEAP SUMMARY:
==17600== in use at exit: 0 bytes in 0 blocks
==17600==   total heap usage: 5,372 allocs, 5,372 frees, 116,676 bytes
allocated
==17600== 
==17600== All heap blocks were freed -- no leaks are possible
==17600== 
==17600== For counts of detected and suppressed errors, rerun with: -v
==17600== ERROR SUMMARY: 4950 errors from 1 contexts (suppressed: 2 from 2)


[Bug plugins/57355] New: -march=native ivy bridge i5 shows tuning for sandy bridge

2013-05-21 Thread croutch at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57355

Bug ID: 57355
   Summary: -march=native ivy bridge i5 shows tuning for sandy
bridge
   Product: gcc
   Version: 4.7.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: plugins
  Assignee: unassigned at gcc dot gnu.org
  Reporter: croutch at gmail dot com


[Bug plugins/56754] some missing plugin headers during installation in gcc 4.8

2013-05-21 Thread pageexec at freemail dot hu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56754

--- Comment #6 from PaX Team pageexec at freemail dot hu ---
(In reply to Duncan Sands from comment #5)
 Was there any feedback on this patch?

sadly, no response so far (this bug is still UNCONFIRMED even), so it's
probably not going to make 4.8.1.


[Bug target/57355] -march=native ivy bridge i5 shows tuning for sandy bridge

2013-05-21 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57355

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

  Component|plugins |target

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org ---
ivy bridge is a sandy bridge with small improvements IIRC.


[Bug target/57355] -march=native ivy bridge i5 shows tuning for sandy bridge

2013-05-21 Thread croutch at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57355

--- Comment #2 from croutch croutch at gmail dot com ---
I have a. 
Intel Core i5 3570K 3,4Ghz (Ivy Bridge)

I use gentoo linux with gcc 4.7.3 and those settings.

CFLAGS=-march=native -O2 -pipe 
CXXFLAGS=${CFLAGS} 
MAKEOPTS=-j4 

From manual.
core-avx-i = for ivy bridge 
Intel Core CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
SSE4.2, AVX, AES, PCLMUL, FSGSBASE, RDRND and F16C instruction set support.

When i use this command i get this output.

$ gcc -c -Q -march=native --help=target | grep march 
-march=corei7-avx 

for sandy bridge?

And this command shows . 
echo  | gcc -march=native -v -E - 21 | grep cc1 
/usr/libexec/gcc/x86_64-pc-linux-gnu/4.7.1/cc1 -E -quiet -v - -march=corei7-avx
-mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma
-mno-fma4 -mno-xop 
-mno-bmi -mno-bmi2 -mno-tbm -mavx -mno-avx2 -msse4.2 -msse4.1 -mno-lzcnt
-mrdrnd -mf16c -mfsgsbase --param l1-cache-size=32 --param
l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=generic 

I thougth CFLAGS=-march=native -O2 -pipe should enable most of this -
core-avx-i in gcc 4.7 with ivy bridge?? not for sandy bridge??

I found same problems in many linux forums.
Here are one  with a included patch -
https://bbs.archlinux.org/viewtopic.php?id=156282

Link to patch  https://github.com/crondog/misc-patches


[Bug target/57355] -march=native ivy bridge i5 shows tuning for sandy bridge

2013-05-21 Thread croutch at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57355

--- Comment #3 from croutch croutch at gmail dot com ---
Created attachment 30155
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30155action=edit
gcc-native-ivy-detect

This patch is not from me and not tested by me.


[Bug c++/57352] internal compiler error in cp_parser_abort_tentative_parse at cp/parser.c:22878

2013-05-21 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57352

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com ---
Most likely related to PR51908


[Bug c/57356] New: gcc-4.8: SSE2 instructions generated with '-mno-sse2'

2013-05-21 Thread thutt at vmware dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57356

Bug ID: 57356
   Summary: gcc-4.8: SSE2 instructions generated with '-mno-sse2'
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: thutt at vmware dot com

The following example shows a defect in gcc 4.8 when using the
'-mno-sse2' command line option: SSE2 instructions are still
generated.

Compile with:

  gcc-4.8 -m64 -O1 -mno-sse2 -c -o /tmp/gungla.o /tmp/gungla.c

Sample Code:

  typedef struct s128 {
  char x[16];
  } s128;

  typedef struct wrapper {
  s128 elem;
  } wrapper;

  void test2(s128 *);

  void
  test(wrapper **p, int *num)
  {
  int   i;
  s128 *a = (*p)-elem;
  s128  b = *a;

  for (i = 1; i  *num; i++) {
 test2(a);
 if (i == 10) {
*a = b;
break;
 }
  }
  if (p) {
 *p = 0;
  }
  }

We have not been able to simplify this code any further.

  Disassembly of section .text:

   test:
 0:41 56push   %r14
 2:41 55push   %r13
 4:41 54push   %r12
 6:55   push   %rbp
 7:53   push   %rbx
 8:48 83 ec 10  sub$0x10,%rsp
 c:49 89 fe mov%rdi,%r14
 f:48 89 f5 mov%rsi,%rbp
12:4c 8b 2f mov(%rdi),%r13
-- 15:f3 41 0f 6f 45 00movdqu 0x0(%r13),%xmm0
-- 1b:66 0f 7f 04 24   movdqa %xmm0,(%rsp)
20:83 3e 01 cmpl   $0x1,(%rsi)
23:7f 32jg 57 test+0x57
25:eb 22jmp49 test+0x49
27:4c 89 e7 mov%r12,%rdi
2a:e8 00 00 00 00   callq  2f test+0x2f
  2b: R_X86_64_PC32test2-0x4
2f:83 fb 0a cmp$0xa,%ebx
32:75 0djne41 test+0x41
34:66 0f 6f 0c 24   movdqa (%rsp),%xmm1
39:f3 41 0f 7f 4d 00movdqu %xmm1,0x0(%r13)
3f:eb 08jmp49 test+0x49
41:83 c3 01 add$0x1,%ebx
44:39 5d 00 cmp%ebx,0x0(%rbp)
47:7f dejg 27 test+0x27
49:4d 85 f6 test   %r14,%r14
4c:74 1bje 69 test+0x69
4e:49 c7 06 00 00 00 00 movq   $0x0,(%r14)
55:eb 12jmp69 test+0x69
57:4d 89 ec mov%r13,%r12
5a:4c 89 ef mov%r13,%rdi
5d:e8 00 00 00 00   callq  62 test+0x62
  5e: R_X86_64_PC32test2-0x4
62:bb 01 00 00 00   mov$0x1,%ebx
67:eb d8jmp41 test+0x41
69:48 83 c4 10  add$0x10,%rsp
6d:5b   pop%rbx
6e:5d   pop%rbp
6f:41 5cpop%r12
71:41 5dpop%r13
73:41 5epop%r14
75:c3   retq

One oddity is that using '-mno-sse', the offending instructions are
not generated.  (Maybe this implies that the instructions are simply
misclassified as SSE, rather than SSE2?)

gcc-4.7 does not exhibit the problem with the same code.

Can you folks please confirm, or refute, if gcc-4.7 suffers from the
same defect?

Possibly related to bug 46716.


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread chrbr at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #2 from chrbr at gcc dot gnu.org ---
Created attachment 30156
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30156action=edit
patch


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread chrbr at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #3 from chrbr at gcc dot gnu.org ---
Under test.


[Bug c/57357] New: Error with '-mno-sse' and include wchar.h

2013-05-21 Thread thutt at vmware dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57357

Bug ID: 57357
   Summary: Error with '-mno-sse' and include wchar.h
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: thutt at vmware dot com

The following example shows a defect in gcc 4.8 when using the
'-mno-sse' command line option: an error is reported when including
wchar.h.

Compile with:

  gcc-4.8 -m64 -O1 -mno-sse -c -o /tmp/gungla.o /tmp/gungla.c

Sample Code:

  #include wchar.h

Sample Output:

  In file included from /tmp/gungla.c:1:0:
  /opt/gcc-4.8.0/lib/gcc/x86_64-linux5.0/4.8.0/include-fixed/wchar.h: In
function 'wcstod':
  /opt/gcc-4.8.0/lib/gcc/x86_64-linux5.0/4.8.0/include-fixed/wchar.h:563:1:
error: SSE register return with SSE disabled
   { return __wcstod_internal (__nptr, __endptr, 0); }
   ^


[Bug rtl-optimization/57347] [4.8/4.9 Regression] wrong code for bitfield on x86_64-linux at -Os and above

2013-05-21 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57347

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jamborm at gcc dot 
gnu.org

--- Comment #3 from Martin Jambor jamborm at gcc dot gnu.org ---
Right, even though IPA-CP was intended to ignore bit-fields, this
testcase shows there are quite good reasons to do so, but apparently I
somehow lost or forgot to add the code to actually check for this.

For 4.8 we do want to ignore bit-fields for sure.  And I'd argue that
we should do it on trunk too.  Once we implement the plan to lower
bit-fields early, jump functions will automatically start working on
bit-fields too.  Let me prepare a patch that adds the punting.


[Bug lto/57289] [4.9 Regression] ICE during 454.calculix compilation with -O3 -flto

2013-05-21 Thread jamborm at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57289

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Martin Jambor jamborm at gcc dot gnu.org ---
Author: jamborm
Date: Tue May 21 13:49:30 2013
New Revision: 199145

URL: http://gcc.gnu.org/viewcvs?rev=199145root=gccview=rev
Log:
2013-05-21  Martin Jambor  mjam...@suse.cz

PR lto/57289
* ipa-prop.c (ipa_read_node_info): Process param_used and
controlled_uses in the same order as when writing.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-prop.c


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #4 from ktkachov at gcc dot gnu.org ---
hmmm...
now I'm getting a different ICE:
internal compiler error: in arm_dbx_register_number, at config/arm/arm.c:25834

a gcc_unreachable () is reached.

If I print out the regno argument to arm_dbx_register_number, it's 272 which
seem to me like it could be reg number in DWARF numbering?


[Bug tree-optimization/57349] [4.9 Regression] ICE on 253.perlbmk with pgo after r198096

2013-05-21 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57349

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Reduced testcase, fails with -O -fbranch-probabilities

struct __jmp_buf_tag   { };
typedef struct __jmp_buf_tag jmp_buf[1];
typedef struct cop COP;
typedef struct gv GV;
struct cop {
GV * cop_filegv;
};
struct jmpenv {
jmp_buf je_buf;
int je_ret;
};
typedef struct jmpenv JMPENV;
extern char * PL_origfilename;
extern COP * volatile PL_curcop ;
static void open_script() {
PL_curcop-cop_filegv = Perl_gv_fetchfile(PL_origfilename);
}
int perl_parse(char **argv) {
char *scriptname = ((void *)0);
char *validarg = ;
JMPENV cur_env;
int fdscript = -1;
cur_env.je_ret = _setjmp (((cur_env.je_buf)));
if (!scriptname)  scriptname = argv[0];
open_script();
validate_suid(validarg, scriptname,fdscript);
}


[Bug tree-optimization/57303] [4.7/4.8 Regression] struct miscompiled at -O1 and above

2013-05-21 Thread glisse at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57303

--- Comment #9 from Marc Glisse glisse at gcc dot gnu.org ---
(In reply to rguent...@suse.de from comment #7)
 On Mon, 20 May 2013, glisse at gcc dot gnu.org wrote:
  +/* Remove *p = *p.  */
  +if (!inplace  TREE_CODE_CLASS (subcode) == tcc_reference
  + operand_equal_p (lhs, gimple_assign_rhs1 (stmt), 0))
  +  {
  +gsi_remove (gsi, true);
  +return true;
  +  }
 
 The obvious place would be dead store elimination.  But beware that
 the above, if not _literally_ being *p = *p can be changing the
 effective type of the memory location and thus might be not dead
 in terms of type-based aliasing rules (which basically means that
 we need to do sth more clever than just removing the store).

So operand_equal_p on a tcc_reference is not enough? Aliasing is complicated, I
guess I'll open a PR about this optimization.


[Bug tree-optimization/53991] _mm_popcnt_u64 fails with -O3 -fgnu-tm

2013-05-21 Thread torvald at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53991

--- Comment #7 from torvald at gcc dot gnu.org ---
A piece of code is tm_pure if, roughly, it doesn't need any instrumentation
(e.g., in contrast to memory loads/stores).  In the test case, I suppose that
the compiler detects that it is tm_pure, but we also allow programmers to
declare it.

Ideally, tm_pure should be a property of a region of code that is preserved
across optimizations (but where we don't move code into or out of tm_pure
regions).  That may require too much implementation effort (but perhaps we
could reuse the TM regions for that, as a no-TM region?)

Alternatively, we could not automatically mark always_inline functions also as
tm_pure, and warn if always_inline is also annotated as tm_pure by the
programmer.

Other thoughts?


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread chrbr at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #5 from chrbr at gcc dot gnu.org ---
 If I print out the regno argument to arm_dbx_register_number, it's 272 which
 seem to me like it could be reg number in DWARF numbering?

yes it is. strange, I can't see this new failure, with a full newlib build for 

--enable-languages=c,c++ \
--with-fpu=neon-vfpv4 --with-float=hard --with-arch=armv7-a 

could you please attach the preprocessed file ? thanks,


[Bug tree-optimization/57318] [4.9 Regression] optimizer takes several seconds on nested loops

2013-05-21 Thread hubicka at ucw dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57318

--- Comment #7 from Jan Hubicka hubicka at ucw dot cz ---
 URL: http://gcc.gnu.org/viewcvs?rev=199140root=gccview=rev
 Log:
 2013-05-21  Richard Biener  rguent...@suse.de
 
 PR tree-optimization/57318
 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
 estimate stmts with side-effects as likely eliminated.
 
 Modified:
 trunk/gcc/ChangeLog
 trunk/gcc/tree-ssa-loop-ivcanon.c
 
 Fixed - latent on the branch though.

Hmm, this heuristic was sort of intended (inliner makes same trick)
We anticipate that making the array stores explicit will enable SRA  stuff.
But since then I made inliner to asume the 50% probability of optimizing
these away that works better.

Did you measure runtime effect of this? (we will see in SPEC graph soon
I guess)

Honza


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #6 from ktkachov at gcc dot gnu.org ---
(In reply to chrbr from comment #5)
  If I print out the regno argument to arm_dbx_register_number, it's 272 which
  seem to me like it could be reg number in DWARF numbering?
 
 yes it is. strange, I can't see this new failure, with a full newlib build
 for 
 
   --enable-languages=c,c++ \
   --with-fpu=neon-vfpv4 --with-float=hard --with-arch=armv7-a 
 
 could you please attach the preprocessed file ? thanks,

My apologies, the attachment I added in the bug report is reduced from newlib
(I initially said it was from libgfortran).

I'm getting the ICE in arm_dbx_register_number on the initial file I attached.

On a side note, in your patch you say:
-  t = one_reg_loc_descriptor (REGNO (XVECEXP (regs, 0, i)),
+  reg = REGNO (XVECEXP (regs, 0, i));
+  t = one_reg_loc_descriptor (DBX_REGISTER_NUMBER (reg),

but reg is undeclared in this scope (changing it to unsigned reg = ... fixes
it)
which suggests to me there's some other changes?
In your original patch you also moved the #ifdef LEAF_REG_MAP and associated
definitions inside the if (regs == NULL_RTX) block...

[Bug fortran/57354] Wrong run-time assignment of allocatable array of derived type with allocatable component

2013-05-21 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57354

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
 CC||burnus at gcc dot gnu.org,
   ||pault at gcc dot gnu.org

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org ---
Slightly reduced example. The problem seems to be if the LHS and the RHS are
the same for one of the RHSlements:

  type t
integer,allocatable :: i
  end type
  type(t) :: e
  type(t), allocatable :: a(:)

  e%i = 1 ! Realloc on assignment: OK
  a = [e] ! OK
  e%i = 2 ! OK
  a = [a, e]  !  Wrong result
  print *, (a(i)%i,i=1,2)
end


[Bug tree-optimization/57343] [4.8/4.9 Regression] wrong code on x86_64-linux at -Os and above

2013-05-21 Thread rakdver at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57343

--- Comment #6 from Zdenek Dvorak rakdver at gcc dot gnu.org ---
I will have a look.


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread chrbr at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #7 from chrbr at gcc dot gnu.org ---
(In reply to ktkachov from comment #6)
 (In reply to chrbr from comment #5)
   If I print out the regno argument to arm_dbx_register_number, it's 272 
   which
   seem to me like it could be reg number in DWARF numbering?
  
  yes it is. strange, I can't see this new failure, with a full newlib build
  for 
  
  --enable-languages=c,c++ \
  --with-fpu=neon-vfpv4 --with-float=hard --with-arch=armv7-a 
  
  could you please attach the preprocessed file ? thanks,
 
 My apologies, the attachment I added in the bug report is reduced from
 newlib (I initially said it was from libgfortran).
 
 I'm getting the ICE in arm_dbx_register_number on the initial file I
 attached.
 
 On a side note, in your patch you say:
 -  t = one_reg_loc_descriptor (REGNO (XVECEXP (regs, 0, i)),
 +  reg = REGNO (XVECEXP (regs, 0, i));
 +  t = one_reg_loc_descriptor (DBX_REGISTER_NUMBER (reg),
 
 but reg is undeclared in this scope (changing it to unsigned reg = ...
 fixes it)
 which suggests to me there's some other changes?
 In your original patch you also moved the #ifdef LEAF_REG_MAP and associated
 definitions inside the if (regs == NULL_RTX) block...

OOPS ! I committed the wrong patch, I kept to good version locally. sorry about
this I don't know what I messed in my sandbox. recommitting the first part now
this now as approved. Will send the ARM part on the ML after the testsuite.

thanks for catching it.

[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #8 from ktkachov at gcc dot gnu.org ---
(In reply to chrbr from comment #7)

 thanks for catching it.

No problem, thanks for fixing :)


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread chrbr at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #9 from chrbr at gcc dot gnu.org ---
no, in fact, you confused me. The patch was committed correctly :-)

 On a side note, in your patch you say:
 -  t = one_reg_loc_descriptor (REGNO (XVECEXP (regs, 0, i)),
 +  reg = REGNO (XVECEXP (regs, 0, i));
 +  t = one_reg_loc_descriptor (DBX_REGISTER_NUMBER (reg),
 
 but reg is undeclared in this scope (changing it to unsigned reg = ...
 fixes it)
 which suggests to me there's some other changes?
 In your original patch you also moved the #ifdef LEAF_REG_MAP and associated
 definitions inside the if (regs == NULL_RTX) block...

are you sure you have the good version of this file ? you should have

t = one_reg_loc_descriptor (dbx_reg_number (XVECEXP (regs, 0, i)),

so reg is not needed and doesn't need to be initialized. reg is set/used only
in the /* Simple, contiguous registers.  */ part.

The original failing attachment now passes with the ARM patch. Will post
after checking with the testsuite

Regards,


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #10 from ktkachov at gcc dot gnu.org ---
(In reply to chrbr from comment #9)
 no, in fact, you confused me. The patch was committed correctly :-)
  
  On a side note, in your patch you say:
  -  t = one_reg_loc_descriptor (REGNO (XVECEXP (regs, 0, i)),
  +  reg = REGNO (XVECEXP (regs, 0, i));
  +  t = one_reg_loc_descriptor (DBX_REGISTER_NUMBER (reg),
  
  but reg is undeclared in this scope (changing it to unsigned reg = ...
  fixes it)
  which suggests to me there's some other changes?
  In your original patch you also moved the #ifdef LEAF_REG_MAP and associated
  definitions inside the if (regs == NULL_RTX) block...
 
 are you sure you have the good version of this file ? you should have
 
 t = one_reg_loc_descriptor (dbx_reg_number (XVECEXP (regs, 0, i)),
 
 so reg is not needed and doesn't need to be initialized. reg is set/used
 only in the /* Simple, contiguous registers.  */ part.
 
 The original failing attachment now passes with the ARM patch. Will post
 after checking with the testsuite

In that post (comment 6) I was citing the patch you attached to this report,
which says:

-  t = one_reg_loc_descriptor (REGNO (XVECEXP (regs, 0, i)),
+  reg = REGNO (XVECEXP (regs, 0, i));
+  t = one_reg_loc_descriptor (DBX_REGISTER_NUMBER (reg),

which doesn't apply to trunk cleanly because the trunk version was:
  t = one_reg_loc_descriptor (dbx_reg_number (XVECEXP (regs, 0, i)),

like you said. Presumably that attached part should have been applied instead
of your original patch?

In any case, from what I understand you reproduced the arm.c ICE and confirmed
that it's fixed with your (under test) ARM patch?

Thanks,
Kyrill


In any case, if you have


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #11 from ktkachov at gcc dot gnu.org ---
 In any case, if you have

Err... stray line. Ignor that.


[Bug tree-optimization/57358] New: segmentation fault with attribute(optimize(O0))

2013-05-21 Thread nbkolchin at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57358

Bug ID: 57358
   Summary: segmentation fault with attribute(optimize(O0))
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: nbkolchin at gmail dot com

Created attachment 30157
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30157action=edit
backtrace

The following code crashes GCC (gcc-4.8.0 -O2):

typedef void (*done)(void* arg);
struct t { done func; void* arg; };
static void test_func() __attribute__((optimize(O0)));   
  static void test_func(struct t* a)
{
  a-func(a-arg);
}

Program received signal SIGSEGV, Segmentation fault.
walk_aliased_vdefs_1 (ref=ref@entry=0x7fffda70, vdef=0x0,
walker=0x6f5d90 mark_modified(ao_ref*, tree, void*), data=0x7fffda5f,
visited=0x7fffda28, cnt=0)
at /mnt/work/oktet/transas/sources/4.8/gcc/gcc/tree-ssa-alias.c:2196
2196  gimple def_stmt = SSA_NAME_DEF_STMT (vdef);

Backtrace from gdb attached.

Reproducable with custom GCC build and gentoo 4.8. No error in 4.7.


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread chrbr at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #12 from chrbr at gcc dot gnu.org ---
Comment on attachment 30156
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30156
patch

Index: arm.c
===
--- arm.c   (revision 199138)
+++ arm.c   (working copy)
@@ -25860,10 +25860,10 @@ arm_dwarf_register_span (rtx rtl)
 return NULL_RTX;

   nregs = GET_MODE_SIZE (GET_MODE (rtl)) / 8;
+  gcc_assert (nregs != 1);
   p = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (nregs));
-  regno = (regno - FIRST_VFP_REGNUM) / 2;
   for (i = 0; i  nregs; i++)
-XVECEXP (p, 0, i) = gen_rtx_REG (DImode, 256 + regno + i);
+XVECEXP (p, 0, i) = gen_rtx_REG (DImode, regno + i);

   return p;
 }


[Bug tree-optimization/57331] [4.9 Regression] ICE: tree check: expected integer_type or enumeral_type or boolean_type or real_type or fixed_point_type, have pointer_type in int_fits_type_p, at tree.c

2013-05-21 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57331

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
Author: jakub
Date: Tue May 21 15:17:31 2013
New Revision: 199148

URL: http://gcc.gnu.org/viewcvs?rev=199148root=gccview=rev
Log:
PR tree-optimization/57331
* tree-vrp.c (simplify_cond_using_ranges): Don't optimize
comparison of conversion from pointer type to integral type
with integer.

* gcc.c-torture/compile/pr57331.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr57331.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vrp.c


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread chrbr at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #13 from chrbr at gcc dot gnu.org ---
Comment on attachment 30156
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30156
patch

ndex: arm.c
===
--- arm.c(revision 199138)
+++ arm.c(working copy)
@@ -25860,10 +25860,9 @@ arm_dwarf_register_span (rtx rtl)
 return NULL_RTX;

   nregs = GET_MODE_SIZE (GET_MODE (rtl)) / 8;
   p = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (nregs));
-  regno = (regno - FIRST_VFP_REGNUM) / 2;
   for (i = 0; i  nregs; i++)
-XVECEXP (p, 0, i) = gen_rtx_REG (DImode, 256 + regno + i);
+XVECEXP (p, 0, i) = gen_rtx_REG (DImode, regno + i);

   return p;
 }


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread chrbr at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #14 from chrbr at gcc dot gnu.org ---

 In that post (comment 6) I was citing the patch you attached to this report,
 which says:
 

OK that's clear. Wrong attachment 

 like you said. Presumably that attached part should have been applied
 instead of your original patch?

no, applied patch was OK as approved.

 
 In any case, from what I understand you reproduced the arm.c ICE and
 confirmed that it's fixed with your (under test) ARM patch?

yes, correct. Reproduced and fixed with the ARM patch posted in comment #13

p, sorry for the confusion.


[Bug target/57356] gcc-4.8: SSE2 instructions generated with '-mno-sse2'

2013-05-21 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57356

Uroš Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2013-05-21
  Component|c   |target
   Assignee|unassigned at gcc dot gnu.org  |ubizjak at gmail dot com
   Target Milestone|--- |4.7.4
 Ever confirmed|0   |1

--- Comment #1 from Uroš Bizjak ubizjak at gmail dot com ---
There are many assumptions that x86 implies SSE2 throughout the
target-dependant part of gcc. This one is simple to fix with following fix to
movti insn pattern.

--cut here--
Index: config/i386/i386.md
===
--- config/i386/i386.md (revision 199017)
+++ config/i386/i386.md (working copy)
@@ -1805,7 +1805,8 @@
 (const_string V4SF)
   (match_test TARGET_AVX)
 (const_string TI)
-  (match_test optimize_function_for_size_p (cfun))
+  (ior (not (match_test TARGET_SSE2))
+   (match_test optimize_function_for_size_p (cfun)))
 (const_string V4SF)
   ]
   (const_string TI)))])
--cut here--

The 4.7 branch is also affected, 4.9 is not.

[Bug bootstrap/57340] [4.9 regression] stage2 miscompiles build/genconditions on armv5tel-linux-gnueabi breaking bootstrap

2013-05-21 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57340

--- Comment #1 from Ramana Radhakrishnan ramana at gcc dot gnu.org ---
I'll take a look. 

Ramana


[Bug debug/57351] ICE: internal compiler error: in dbx_reg_number, at dwarf2out.c:10507 on arm-none-eabi

2013-05-21 Thread ktkachov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57351

--- Comment #15 from ktkachov at gcc dot gnu.org ---
(In reply to chrbr from comment #14)
  In that post (comment 6) I was citing the patch you attached to this report,
  which says:
  
 
 OK that's clear. Wrong attachment 
 
  like you said. Presumably that attached part should have been applied
  instead of your original patch?
 
 no, applied patch was OK as approved.
 
  
  In any case, from what I understand you reproduced the arm.c ICE and
  confirmed that it's fixed with your (under test) ARM patch?
  
 yes, correct. Reproduced and fixed with the ARM patch posted in comment #13

Cool, that patch fixes it for me as well. A build with newlib and fortran
enabled succeeded. Running tests as well.

Thanks,
Kyrill


[Bug target/57357] Error with '-mno-sse' and include wchar.h

2013-05-21 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57357

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Target||x86_64-pc-linux-gnu
 Status|UNCONFIRMED |RESOLVED
  Component|c   |target
 Resolution|--- |INVALID

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org ---
This is expected as you are disabling SSE and the function returns a double
which is not valid with SSE disabled.


[Bug tree-optimization/57318] [4.9 Regression] optimizer takes several seconds on nested loops

2013-05-21 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57318

--- Comment #8 from rguenther at suse dot de rguenther at suse dot de ---
hubicka at ucw dot cz gcc-bugzi...@gcc.gnu.org wrote:

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

--- Comment #7 from Jan Hubicka hubicka at ucw dot cz ---
 URL: http://gcc.gnu.org/viewcvs?rev=199140root=gccview=rev
 Log:
 2013-05-21  Richard Biener  rguent...@suse.de
 
 PR tree-optimization/57318
 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
 estimate stmts with side-effects as likely eliminated.
 
 Modified:
 trunk/gcc/ChangeLog
 trunk/gcc/tree-ssa-loop-ivcanon.c
 
 Fixed - latent on the branch though.

Hmm, this heuristic was sort of intended (inliner makes same trick)
We anticipate that making the array stores explicit will enable SRA 
stuff.
But since then I made inliner to asume the 50% probability of
optimizing
these away that works better.

Did you measure runtime effect of this? (we will see in SPEC graph soon
I guess)

This is about Volatile loads and stores.

Honza


[Bug target/57357] Error with '-mno-sse' and include wchar.h

2013-05-21 Thread thutt at vmware dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57357

--- Comment #2 from thutt at vmware dot com ---
Can you please explain why it's invalid to return a double if SSE is disabled?
SSE is an x86-specific hardware implementation and has nothing to do with
language validity from my standpoint.


[Bug target/57357] Error with '-mno-sse' and include wchar.h

2013-05-21 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57357

--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org ---
(In reply to thutt from comment #2)
 Can you please explain why it's invalid to return a double if SSE is
 disabled?
 SSE is an x86-specific hardware implementation and has nothing to do with
 language validity from my standpoint.

On x86_64 the ABI says doubles are returned (and passed) via the SSE registers.


  1   2   >