Re: Enabling a function based on Language

2012-05-22 Thread Tobias Burnus

Ian Lance Taylor wrote:

Iyer, Balaji Vbalaji.v.i...@intel.com  writes:


Is there a #define in GCC that will turn on only for certain languages? 
I am trying to use build_array_ref but it is giving me a undefined reference 
for f951. This code that I am trying to use will ONLY execute  if we have a 
C/C++ code.  Is it possible for me to enclose this inside some #defines (or a 
combination of them)?


By definition, no, there isn't.  The middle-end is compiled once, into a
library.  Then each frontend is linked against that library.

Calling a frontend function like build_array_ref from the middle-end is
always a mistake.  In the middle-end you should probably be making a
POINTER_PLUS_EXPR node or something along those lines.


Unless, of course, one goes the route which Richard once suggested: 
Adding array and scalarizer support to the middle end,

http://gcc.gnu.org/wiki/GCCGathering2011Fortran#Scalarizer

(See all three links; mistakes in the Wiki are mine, made when I tried 
to summarize/understand Richard's draft patches. The project got stalled 
as there was not enough developer time on the Fortran side and as the 
current approach works relatively well. ME support would be beneficial 
as it would allow for certain optimizations which are not possible in 
the front end.)


Tobias


RE: A question about loop ivopt

2012-05-22 Thread Jiangning Liu


 -Original Message-
 From: Richard Guenther [mailto:richard.guent...@gmail.com]
 Sent: Tuesday, May 15, 2012 10:17 PM
 To: Zdenek Dvorak
 Cc: Jiangning Liu; gcc@gcc.gnu.org; Jiangning Liu
 Subject: Re: A question about loop ivopt
 
 On Tue, May 15, 2012 at 4:13 PM, Zdenek Dvorak
 rakd...@iuuk.mff.cuni.cz wrote:
  Hi,
 
 Why can't we replace function force_expr_to_var_cost directly
 with
  function
 computation_cost in tree-ssa-loop-ivopt.c?

 Actually I think it is inaccurate for the current recursive
 algorithm
  in
 force_expr_to_var_cost to estimate expr cost. Instead
  computation_cost can
 count some back-end factors and make the estimation more
 accurate.

 For example, using computation_cost, we may check whether
 back-ends
  can tie
 some modes transformation expressed by SUBREG or not. If we
 use
 force_expr_to_var_cost, some more computations around type
 promotion/demotion would increase the cost estimated.

 Looking at the algorithm in force_expr_to_var_cost, it is just
 to
  analyze
 the operator in the expression and give estimation. Should it
 be the
  same as
 expanding EXPR to RTX and give estimation like in
 computation_cost?

 Any thoughts?
   
I suppose Zdenek may remember.
  
   computation_cost actually expands the expression to RTL.  Since
 cost
  estimates
   are computed a lot in ivopts, using it directly would require a
 huge
  amount of memory,
 
  Zdenek,
 
  Do you know how huge is it? Any data on this? For GCC, is this
 huge
  memory consumption is critical enough, and there aren't any other
 else
  consuming even more memory?
 
  no, not really (I haven't worked on this for a few years now),
 although
  of course I did some measurements when ivopts were created.  Feel
 free
  to experiment with that, if it turned out that the memory consumption
  and extra time spent by it is negligible, it would be a nice cleanup.
 
 Well, I don't think we should feed arbitrary expressions to expand at
 IVOPTs time.  What probably matters most is address costs, no?
 At least that is where expand probably makes the most difference.
 So why not improve force_expr_to_var_cost instead?

OK, yes, the thing that matter most is just address cost, so I can improve
force_expr_to_var_cost.

Would it sound OK if I expose MODES_TIEABLE_P to middle-end by defining a
new target hook? I need this function to strip some operations and make the
cost estimate more accurate. If I don't expand to RTL, I would need a method
to check the modes conversion in middle end, anyway. Any idea?

Thanks,
-Jiangning

 
 Richard.
 
 
  Zdenek






Re: A question about loop ivopt

2012-05-22 Thread Richard Guenther
On Tue, May 22, 2012 at 11:19 AM, Jiangning Liu jiangning@arm.com wrote:


 -Original Message-
 From: Richard Guenther [mailto:richard.guent...@gmail.com]
 Sent: Tuesday, May 15, 2012 10:17 PM
 To: Zdenek Dvorak
 Cc: Jiangning Liu; gcc@gcc.gnu.org; Jiangning Liu
 Subject: Re: A question about loop ivopt

 On Tue, May 15, 2012 at 4:13 PM, Zdenek Dvorak
 rakd...@iuuk.mff.cuni.cz wrote:
  Hi,
 
 Why can't we replace function force_expr_to_var_cost directly
 with
  function
 computation_cost in tree-ssa-loop-ivopt.c?

 Actually I think it is inaccurate for the current recursive
 algorithm
  in
 force_expr_to_var_cost to estimate expr cost. Instead
  computation_cost can
 count some back-end factors and make the estimation more
 accurate.

 For example, using computation_cost, we may check whether
 back-ends
  can tie
 some modes transformation expressed by SUBREG or not. If we
 use
 force_expr_to_var_cost, some more computations around type
 promotion/demotion would increase the cost estimated.

 Looking at the algorithm in force_expr_to_var_cost, it is just
 to
  analyze
 the operator in the expression and give estimation. Should it
 be the
  same as
 expanding EXPR to RTX and give estimation like in
 computation_cost?

 Any thoughts?
   
I suppose Zdenek may remember.
  
   computation_cost actually expands the expression to RTL.  Since
 cost
  estimates
   are computed a lot in ivopts, using it directly would require a
 huge
  amount of memory,
 
  Zdenek,
 
  Do you know how huge is it? Any data on this? For GCC, is this
 huge
  memory consumption is critical enough, and there aren't any other
 else
  consuming even more memory?
 
  no, not really (I haven't worked on this for a few years now),
 although
  of course I did some measurements when ivopts were created.  Feel
 free
  to experiment with that, if it turned out that the memory consumption
  and extra time spent by it is negligible, it would be a nice cleanup.

 Well, I don't think we should feed arbitrary expressions to expand at
 IVOPTs time.  What probably matters most is address costs, no?
 At least that is where expand probably makes the most difference.
 So why not improve force_expr_to_var_cost instead?

 OK, yes, the thing that matter most is just address cost, so I can improve
 force_expr_to_var_cost.

 Would it sound OK if I expose MODES_TIEABLE_P to middle-end by defining a
 new target hook? I need this function to strip some operations and make the
 cost estimate more accurate. If I don't expand to RTL, I would need a method
 to check the modes conversion in middle end, anyway. Any idea?

You are already in the middle-end and thus can use MODES_TIABLE_P
directly.  Modes are also available on gimple variables via DECL/TYPE_MODE.

Richard.

 Thanks,
 -Jiangning


 Richard.


  Zdenek






C++98/C++11 ABI compatibility for gcc-4.7

2012-05-22 Thread Jeffrey Yasskin
I've put together the following description of C++98/11 ABI
(in)compatibility, so people can tell which libraries need to be
recompiled. This is useful when you've bought a library that didn't
come with source code, and you're trying to figure out if you need to
buy a new version. I think this belongs on the Wiki somewhere, but I
wanted to run it by the list first to make sure it's accurate. You can
probably skip the first section, since it's just a description of how
to use the subsequent list.



This page explains how to identify when your pre-compiled library (.a
or .so) defines a symbol that has a different enough definition in
C++98 vs C++11 that it could cause runtime problems if it's linked
into a program compiled for the other version.

First, get a list of demangled symbols from your .a or .so:

$ (find . -name '*.a'|xargs nm -f posix; find . -name '*.so' | xargs
nm -f posix -D)|cut -f1 -d' '|LANG=C sort -u|c++filt|sort

(There may be better ways to get this list.)

Next, find instances in this list of the ABI changes listed below.
For example, you might find:

  std::_List_baseFooBar, std::allocatorFooBar ::_M_clear()

Since std::_List_base::_M_clear() destroys nodes, it's affected by the
addition of the _M_size field and can't be used by C++11 code if it
was compiled for C++98, or vice versa.  If it's possible that code
outside the library would use this instance of _List_base, then you
have to recompile the library. On the other hand, if FooBar is a type
used only inside this library, then code using the library is safe.
If FooBar is defined by the library but exposed in one of the
library's headers, then the library still needs to be recompiled,
since code using it could wind up including the other version's
implementation.


=== ABI Changes ===

complex::{real,imag}(), std::{real,imag}(complex)

The non-const overloads go from returning _Tp to _Tp.
[Since gcc-4.4]


std::list, std::_List_impl, and std::_List_base

New _M_size member, meaning any method that adds or removes nodes or
inspects the size has a new ABI.
[Since gcc-4.7]


std::operator-(reverse_iterator) and std::operator-(__normal_iterator)
may return a different type if
reverse_iterator_IteratorL::difference_type (respectively,
__normal_iterator_IteratorL, _Container::difference_type) isn't
accurate.
[Since gcc-4.4]


map::erase(iterator), multimap::erase(iterator),
set::erase(const_iterator), set::erase(const_iterator,
const_iterator), multiset::erase(const_iterator),
multiset::erase(const_iterator, const_iterator):

Return type changes from void to iterator.
[Since gcc-4.5]


_Rb_treeT, T::erase(const_iterator), _Rb_treeT,
T::erase(const_iterator, const_iterator), _Rb_treeT,
pair::erase(iterator):

Return type changes from void to iterator. these are instantiated from
map and set.
[Since gcc-4.5]


vector::data()'s return type changes from pointer to _Tp*

This is a no-op with most allocators, but any allocator that defines a
non-default pointer typedef will be incompatible.
[Since gcc-4.6]



Probably safe: istreambuf_iterator::reference changes from _CharT to _CharT.

This could affect return types if they mention 'reference', but they
appear not to mention it when istreambuf_iterator is involved.
[Since gcc-4.7]


Probably safe: map::erase(iterator, iterator),
multimap::erase(iterator, iterator)

C++11 uses const_iterator, which doesn't collide.  Other versions of
gcc are unlikely to have defined this overload in C++98 mode, and
C++11 is unlikely to have defined the iterator version.

[Since gcc-4.5]


Probably safe: Types with node allocators, like deque and tree

C++11 uses _M_get_Node_allocator().construct(node, ...), while C++98
uses get_allocator().construct(node-_M_value_field, ...).  The node's
constructor forwards to the value_field's constructor, so this works
by default.  Can this cause problems with some mix of C++98/C++11
allocator compilations?




I haven't analyzed the debug and profile headers.




I found these differences by grepping for GXX_EXPERIMENTAL_CXX0X
inside libstdc++, and examining each instance to see if there was an
#else clause that had different behavior in C++11 vs C++98.


=== ABI non-changes ===

libstdc++'s binary component is nearly ABI-compatible between C++98
and C++11.  Most incompatibilities are in the templates defined in
headers, but the complex stream operators call the real() and imag()
methods that change return type.  If these calls aren't inlined, (and
they're likely to be inlined), then libstdc++ (which is compiled in
C++98 mode by default) could cause problems when linked into C++11
programs.  (http://gcc.gnu.org/PR53429)

There have been some claims that the change in the definition of POD
types causes an ABI incompatibility, but apparently it doesn't in
practice: http://gcc.gnu.org/ml/gcc/2012-01/msg00056.html.


RE: Enabling a function based on Language

2012-05-22 Thread Iyer, Balaji V
Thanks Tobias,

I am wanting to call this function right before we hit the 
gimplify_function_tree (), so I guess I am right before the middle-end...

-Balaji V. Iyer.

-Original Message-
From: Tobias Burnus [mailto:bur...@net-b.de] 
Sent: Tuesday, May 22, 2012 3:25 AM
Cc: i...@google.com; Iyer, Balaji V; 'gcc@gcc.gnu.org'
Subject: Re: Enabling a function based on Language

Ian Lance Taylor wrote:
 Iyer, Balaji Vbalaji.v.i...@intel.com  writes:

  Is there a #define in GCC that will turn on only for certain languages? 
 I am trying to use build_array_ref but it is giving me a undefined reference 
 for f951. This code that I am trying to use will ONLY execute  if we have a 
 C/C++ code.  Is it possible for me to enclose this inside some #defines (or 
 a combination of them)?

 By definition, no, there isn't.  The middle-end is compiled once, into 
 a library.  Then each frontend is linked against that library.

 Calling a frontend function like build_array_ref from the middle-end 
 is always a mistake.  In the middle-end you should probably be making 
 a POINTER_PLUS_EXPR node or something along those lines.

Unless, of course, one goes the route which Richard once suggested: 
Adding array and scalarizer support to the middle end, 
http://gcc.gnu.org/wiki/GCCGathering2011Fortran#Scalarizer

(See all three links; mistakes in the Wiki are mine, made when I tried to 
summarize/understand Richard's draft patches. The project got stalled as there 
was not enough developer time on the Fortran side and as the current approach 
works relatively well. ME support would be beneficial as it would allow for 
certain optimizations which are not possible in the front end.)

Tobias


Re: MULTILIB_OPTIONS and DRIVER_SELF_SPEC

2012-05-22 Thread Paulo J. Matos

On 21/05/12 15:21, Christian Bruel wrote:


Options not explicitly described in the compiler before their use in a
spec rules are now rejected. So you probably need to describe it into
your target optimization file, (something like xap.opt).



OK, thanks for letting me know about this.

Cheers,

--
PMatos



RE: A question about loop ivopt

2012-05-22 Thread Jiangning Liu


 -Original Message-
 From: Richard Guenther [mailto:richard.guent...@gmail.com]
 Sent: Tuesday, May 22, 2012 6:36 PM
 To: Jiangning Liu
 Cc: Zdenek Dvorak; Jiangning Liu; gcc@gcc.gnu.org
 Subject: Re: A question about loop ivopt
 
 On Tue, May 22, 2012 at 11:19 AM, Jiangning Liu jiangning@arm.com
 wrote:
 
 
  -Original Message-
  From: Richard Guenther [mailto:richard.guent...@gmail.com]
  Sent: Tuesday, May 15, 2012 10:17 PM
  To: Zdenek Dvorak
  Cc: Jiangning Liu; gcc@gcc.gnu.org; Jiangning Liu
  Subject: Re: A question about loop ivopt
 
  On Tue, May 15, 2012 at 4:13 PM, Zdenek Dvorak
  rakd...@iuuk.mff.cuni.cz wrote:
   Hi,
  
  Why can't we replace function force_expr_to_var_cost
 directly
  with
   function
  computation_cost in tree-ssa-loop-ivopt.c?
 
  Actually I think it is inaccurate for the current recursive
  algorithm
   in
  force_expr_to_var_cost to estimate expr cost. Instead
   computation_cost can
  count some back-end factors and make the estimation more
  accurate.
 
  For example, using computation_cost, we may check whether
  back-ends
   can tie
  some modes transformation expressed by SUBREG or not. If we
  use
  force_expr_to_var_cost, some more computations around type
  promotion/demotion would increase the cost estimated.
 
  Looking at the algorithm in force_expr_to_var_cost, it is
 just
  to
   analyze
  the operator in the expression and give estimation. Should
 it
  be the
   same as
  expanding EXPR to RTX and give estimation like in
  computation_cost?
 
  Any thoughts?

 I suppose Zdenek may remember.
   
computation_cost actually expands the expression to RTL.  Since
  cost
   estimates
are computed a lot in ivopts, using it directly would require a
  huge
   amount of memory,
  
   Zdenek,
  
   Do you know how huge is it? Any data on this? For GCC, is this
  huge
   memory consumption is critical enough, and there aren't any other
  else
   consuming even more memory?
  
   no, not really (I haven't worked on this for a few years now),
  although
   of course I did some measurements when ivopts were created.  Feel
  free
   to experiment with that, if it turned out that the memory
 consumption
   and extra time spent by it is negligible, it would be a nice
 cleanup.
 
  Well, I don't think we should feed arbitrary expressions to expand
 at
  IVOPTs time.  What probably matters most is address costs, no?
  At least that is where expand probably makes the most difference.
  So why not improve force_expr_to_var_cost instead?
 
  OK, yes, the thing that matter most is just address cost, so I can
 improve
  force_expr_to_var_cost.
 
  Would it sound OK if I expose MODES_TIEABLE_P to middle-end by
 defining a
  new target hook? I need this function to strip some operations and
 make the
  cost estimate more accurate. If I don't expand to RTL, I would need a
 method
  to check the modes conversion in middle end, anyway. Any idea?
 
 You are already in the middle-end and thus can use MODES_TIABLE_P
 directly.  Modes are also available on gimple variables via
 DECL/TYPE_MODE.

Richard,

But MODES_TIEABLE_P is a macro hook and isn't exposed to TREE level, so I
would have to modify xxx-protos.h for all back-ends.

An alternative way is I define a new function hook. This way I needn't to
change all back-ends, but support several back-ends required first.

Which solution is usually preferred?

Thanks,
-Jiangning

 
 Richard.
 
  Thanks,
  -Jiangning
 
 
  Richard.
 
 
   Zdenek
 
 
 
 






Re: A question about loop ivopt

2012-05-22 Thread Andrew Pinski
On Tue, May 22, 2012 at 8:04 PM, Jiangning Liu jiangning@arm.com wrote:
 Richard,

 But MODES_TIEABLE_P is a macro hook and isn't exposed to TREE level, so I
 would have to modify xxx-protos.h for all back-ends.

As far as I can tell it is exposed already to the middle-end via that
hook in that you should be able to use MODES_TIEABLE_P from
tree-ssa-loop-ivopts.c without modifying anything else.
It looks like the arm and i386 are have both broken xxx-protos.h.
Both rs6000 and mips will work without touching their xxx-protos.h.  I
think it is better if you just fix the targets which have a broken
xxx-protos.h.


Thanks,
Andrew Pinski



 An alternative way is I define a new function hook. This way I needn't to
 change all back-ends, but support several back-ends required first.

 Which solution is usually preferred?

 Thanks,
 -Jiangning


 Richard.

  Thanks,
  -Jiangning
 
 
  Richard.
 
 
   Zdenek
 
 
 
 






[Bug c++/53380] .ehframe could be smaller

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53380

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2012-05-22
 Ever Confirmed|0   |1


[Bug tree-optimization/53438] [4.7/4.8 Regression] Bitfield store replaced with full-byte store

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53438

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|4.7.2   |4.7.1


[Bug bootstrap/49707] GCC sends incorrect flags to native IRIX ld

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49707

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||WONTFIX
   Target Milestone|--- |4.8.0

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2012-05-22 
06:10:04 UTC ---
IRIX 6.5 support was removed so closing as won't fix.


[Bug gcov-profile/53414] gcov does not generate 'Lines' record for final block of functions

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53414

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2012-05-22
 Ever Confirmed|0   |1
   Severity|major   |normal

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2012-05-22 
05:59:35 UTC ---
Can you provide a full testcase that is runnable?

Also does this happen with newer versions of GCC?


[Bug c++/53350] Internal compiler error when compiling boost/smart_ptr/intrusive_ptr.hpp 1.49

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53350

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED

--- Comment #13 from Andrew Pinski pinskia at gcc dot gnu.org 2012-05-22 
06:03:10 UTC ---
Fixed as mentioned already.


[Bug bootstrap/49707] GCC sends incorrect flags to native IRIX ld

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49707

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2012-05-22
 Ever Confirmed|0   |1

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2012-05-22 
06:08:55 UTC ---
How was irix-crti.o built from the GCC Log?


[Bug bootstrap/37308] bootstrap hangs in libstdc++

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37308

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID

--- Comment #11 from Andrew Pinski pinskia at gcc dot gnu.org 2012-05-22 
06:11:58 UTC ---
No feedback in over 4 months so closing.


[Bug gcov-profile/53406] Unit Record not present in header files or in GCOV output

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53406

--- Comment #5 from Andrew Pinski pinskia at gcc dot gnu.org 2012-05-22 
05:57:23 UTC ---
function == unit .


[Bug bootstrap/42666] xgcc: Internal error: segmentation violation (program cc1)

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42666

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID

--- Comment #5 from Andrew Pinski pinskia at gcc dot gnu.org 2012-05-22 
06:12:42 UTC ---
No feedback in over 3 months so closing.


[Bug bootstrap/51450] configure's test for -fno-rtti -fno-exceptions broken

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51450

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |NEW


[Bug bootstrap/40650] gcc-4.5-20090702 won't build on OS X 10.5 with GMP/MPFR in-tree

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40650

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID

--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org 2012-05-22 
06:13:05 UTC ---
No feedback in over 3 months so closing.


[Bug c++/53380] .ehframe could be smaller

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53380

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2012-05-22 
06:01:32 UTC ---
Did -fno-asynchronous-unwind-tables do what you wanted it to do?  In that
disable the unwinding tables when not using exceptions?


[Bug bootstrap/50993] IRIX: fails to build in lto for sgi1.0 linker flag

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50993

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX
   Target Milestone|--- |4.8.0

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2012-05-22 
06:09:42 UTC ---
IRIX 6.5 support was removed so closing as won't fix.


[Bug bootstrap/49986] Compilation of cross GCC (Linux - AIX) fails

2012-05-22 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49986

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org 2012-05-22 
06:11:30 UTC ---
No feed back in over 4 months so closing.

Also IIRC binutils is not fully supported targeting AIX yet.


[Bug target/53447] New: missed optimization of 64bit ALU operation with small constant

2012-05-22 Thread carrot at google dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53447

 Bug #: 53447
   Summary: missed optimization of 64bit ALU operation with small
constant
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: car...@google.com
Target: arm-unknown-linux-gnueabi


Compile the following code with options -march=armv7-a -O2 -mthumb

void t0p(long long *p)
{
  *p += 1;
}

GCC 4.8  generates:


t0p:
ldrdr2, [r0]
push{r4, r5}
movsr4, #1   //A
addsr2, r2, r4   //B
movr5, #0   //C
adcr3, r3, r5   //D
strdr2, [r0]
pop{r4, r5}
bxlr

Instructions ABCD can be simplified as

adds   r2, r2, 1
adcr3, r3, 0

This sequence is smaller and faster than original code, it uses two less
registers, so the push/pop instructions can also be removed.

Both arm/thumb mode and Os/O2 generates similar code.

This optimization can also be applied to other alu operations, such as
sub/and/or/xor/cmp.


[Bug tree-optimization/53436] Volatile behaves strange with OpenMP

2012-05-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53436

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||jakub at gcc dot gnu.org
 Resolution||FIXED

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-22 
07:37:14 UTC ---
The testcase is not valid OpenMP, there is no flush operation in between the
store and reads, that said, there was a bug on the GCC side that I've fixed.


[Bug tree-optimization/53366] [4.7/4.8 Regression] wrong code generation by tree vectorizer using AVX

2012-05-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53366

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.7.1
Summary|wrong code generation by|[4.7/4.8 Regression] wrong
   |tree vectorizer using AVX   |code generation by tree
   ||vectorizer using AVX

--- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-22 
07:38:53 UTC ---
Fixed.


[Bug tree-optimization/53410] [4.7/4.8 Regression] ICE in build_int_cst_wide, at tree.c:1219

2012-05-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53410

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Component|c   |tree-optimization
 Resolution||FIXED

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-22 
07:39:49 UTC ---
Fixed.


[Bug middle-end/53409] [4.7/4.8 Regression] ICE: vector VEC(vec_void_p,base) index domain error, in vinfo_for_stmt at tree-vectorizer.h:630

2012-05-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53409

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 CC||jakub at gcc dot gnu.org
 Resolution||FIXED

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-22 
07:38:01 UTC ---
Fixed.


[Bug tree-optimization/53436] Volatile behaves strange with OpenMP

2012-05-22 Thread o.mangold at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53436

--- Comment #4 from o.mangold at googlemail dot com 2012-05-22 07:45:46 UTC ---
(In reply to comment #3)
 The testcase is not valid OpenMP, there is no flush operation in between the
 store and reads, 

Is that also needed with volatile variables? Would be quite counterintuitive.

 that said, there was a bug on the GCC side that I've fixed.

Great, thanks.


[Bug tree-optimization/53436] Volatile behaves strange with OpenMP

2012-05-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53436

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-22 
07:59:01 UTC ---
(In reply to comment #4)
 (In reply to comment #3)
  The testcase is not valid OpenMP, there is no flush operation in between the
  store and reads, 
 
 Is that also needed with volatile variables? Would be quite counterintuitive.

I believe so.  Volatile only makes sure the compiler emits a store of the
variable to memory, but the CPU can just store it into a cache.  There is
nothing that orders that store compared to other stores/loads.
So, just use the appropriate OpenMP directives for synchronization, rather than
bad attempts at busy waiting using volatile.


[Bug target/53192] Incorrect arguments to AVX2's gather intrinsics

2012-05-22 Thread kirill.yukhin at intel dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53192

Yukhin Kirill kirill.yukhin at intel dot com changed:

   What|Removed |Added

 CC||areg.melikadamyan at gmail
   ||dot com

--- Comment #3 from Yukhin Kirill kirill.yukhin at intel dot com 2012-05-22 
08:23:56 UTC ---
(In reply to comment #1)
 Please provide a testcase to show the problem.

I have no idea, which kind of test it should be.
These is just MS-ICC-GCC incompatibility issue


[Bug target/53447] missed optimization of 64bit ALU operation with small constant

2012-05-22 Thread steven at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53447

Steven Bosscher steven at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-05-22
 Ever Confirmed|0   |1


[Bug tree-optimization/53436] Volatile behaves strange with OpenMP

2012-05-22 Thread o.mangold at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53436

--- Comment #6 from o.mangold at googlemail dot com 2012-05-22 08:32:03 UTC ---
Yes, I get, that it's not a good way to do things, as (among other reasons) a
volatile access is no memory fence. So accesses to other locations may not be
ordered. But just for the sake of correctness, accesses should be ordered, if
they all go to volatile variables, no? From the C99-standard, section 5.1.2.3:

 At sequence points, volatile objects are stable in the sense that previous 
 accesses are complete and subsequent accesses have not yet occurred.

This means buffering the reads to the volatile variable over multiple
iterations of the while loop is not allowed, or do I get this wrong?


[Bug c/52952] Wformat location info is bad (wrong column number)

2012-05-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52952

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-22 
08:29:08 UTC ---
The format string could be even something like
   void f() {
 __builtin_printf(
u8Rabcd(%.)abcd
   *d);
  }
So, the question is, if we have a way to find from the source_location on the
ADDR_EXPR around STRING_CST the original non-concatenated tokens, and given
index into the (possibly) translated STRING_CST redo the lexing of those
tokens, looking at which byte in the source tokens maps to that offset in the
STRING_CST.


[Bug target/53448] [avr] ignoring __attribute__((aligned(2)))

2012-05-22 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53448

Georg-Johann Lay gjl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-05-22
 AssignedTo|unassigned at gcc dot   |gjl at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #1 from Georg-Johann Lay gjl at gcc dot gnu.org 2012-05-22 
08:39:51 UTC ---
Created attachment 27474
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27474
C test case

More test cases


[Bug target/53448] New: [avr] ignoring __attribute__((aligned(2)))

2012-05-22 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53448

 Bug #: 53448
   Summary: [avr] ignoring __attribute__((aligned(2)))
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: g...@gcc.gnu.org
CC: eric.wedding...@atmel.com
Target: avr


int var __attribute__((aligned(2))) = 1;

gets compiled to

.globalvar
.data
.typevar, @object
.sizevar, 2
var:
.word1


i.e. the alignment directive .p2align 1 is missing.


[Bug c/52862] [4.5/4.6 Regression] ICE convert_to_pointer, at convert.c:50

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52862

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||4.6.4
 Resolution||FIXED
   Target Milestone|4.5.4   |4.6.4
  Known to fail|4.6.4   |4.6.3

--- Comment #9 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
09:18:41 UTC ---
Fixed for 4.6.4, I don't intend to backport this further.


[Bug target/53447] missed optimization of 64bit ALU operation with small constant

2012-05-22 Thread steven at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53447

Steven Bosscher steven at gcc dot gnu.org changed:

   What|Removed |Added

 CC||steven at gcc dot gnu.org

--- Comment #1 from Steven Bosscher steven at gcc dot gnu.org 2012-05-22 
08:24:52 UTC ---
Confirmed. 

Here is the assembler output with the -dAp -fdump-rtl-all-details options:

t0p:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
@ BLOCK 2 freq:1 seq:0
@ PRED: ENTRY [100.0%]  (fallthru)
ldrdr2, [r0]@ 6*arm_movdi/4[length = 8]
push{r4, r5}@ 20*push_multi[length = 2]
movsr4, #1@ 16*thumb2_movsi_shortim[length = 2]
addsr2, r2, r4@ 18*addsi3_compare_op1/1[length = 4]
movr5, #0@ 17*thumb2_movsi_insn/2[length = 4]
adcr3, r3, r5@ 19*addsi3_carryin_ltu[length = 4]
strdr2, [r0]@ 9*arm_movdi/5[length = 8]
@ SUCC: EXIT [100.0%] 
pop{r4, r5}
bxlr


The add is a DImode add up to the pr53447.c.195r.postreload dump:

(insn 6 3 13 2 (set (reg:DI 2 r2 [orig:137 D.4118 ] [137])
(mem:DI (reg/v/f:SI 0 r0 [orig:136 p ] [136]) [2 *p_1(D)+0 S8 A64]))
pr53447.c:3 182 {*arm_movdi}
 (nil))

(insn 13 6 8 2 (set (reg:DI 4 r4 [139])
(const_int 1 [0x1])) pr53447.c:3 182 {*arm_movdi}
 (expr_list:REG_EQUIV (const_int 1 [0x1])
(nil)))

(insn 8 13 9 2 (parallel [ 
(set (reg:DI 2 r2 [orig:137 D.4118 ] [137])
(plus:DI (reg:DI 2 r2 [orig:137 D.4118 ] [137])
(reg:DI 4 r4 [139])))
(clobber (reg:CC 24 cc))
]) pr53447.c:3 1 {*arm_adddi3}
 (nil)) 

(insn 9 8 12 2 (set (mem:DI (reg/v/f:SI 0 r0 [orig:136 p ] [136]) [2 *p_1(D)+0
S8 A64])
(reg:DI 2 r2 [orig:137 D.4118 ] [137])) pr53447.c:3 182 {*arm_movdi}
 (nil)) 



The add is split in the pr53447.c.197r.split2 dump:

(insn 6 3 16 2 (set (reg:DI 2 r2 [orig:137 D.4118 ] [137])
(mem:DI (reg/v/f:SI 0 r0 [orig:136 p ] [136]) [2 *p_1(D)+0 S8 A64]))
pr53447.c:3 182 {*arm_movdi}
 (nil)) 

(insn 16 6 17 2 (set (reg:SI 4 r4 [139])
(const_int 1 [0x1])) pr53447.c:3 718 {*thumb2_movsi_insn}
 (nil))

(insn 17 16 18 2 (set (reg:SI 5 r5 [+4 ])
(const_int 0 [0])) pr53447.c:3 718 {*thumb2_movsi_insn}
 (nil))

(insn 18 17 19 2 (parallel [
(set (reg:CC_C 24 cc)
(compare:CC_C (plus:SI (reg:SI 2 r2 [orig:137 D.4118 ] [137])
(reg:SI 4 r4 [139]))
(reg:SI 2 r2 [orig:137 D.4118 ] [137])))
(set (reg:SI 2 r2 [orig:137 D.4118 ] [137])
(plus:SI (reg:SI 2 r2 [orig:137 D.4118 ] [137])
(reg:SI 4 r4 [139])))
]) pr53447.c:3 10 {*addsi3_compare_op1}
 (nil))

(insn 19 18 9 2 (set (reg:SI 3 r3 [ D.4118+4 ])
(plus:SI (plus:SI (reg:SI 3 r3 [ D.4118+4 ])
(reg:SI 5 r5 [+4 ]))
(ltu:SI (reg:CC_C 24 cc)
(const_int 0 [0] pr53447.c:3 14 {*addsi3_carryin_ltu}
 (nil))

(insn 9 19 12 2 (set (mem:DI (reg/v/f:SI 0 r0 [orig:136 p ] [136]) [2 *p_1(D)+0
S8 A64])
(reg:DI 2 r2 [orig:137 D.4118 ] [137])) pr53447.c:3 182 {*arm_movdi}
 (nil))


[Bug tree-optimization/53438] [4.7/4.8 Regression] Bitfield store replaced with full-byte store

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53438

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jamborm at gcc dot gnu.org

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
09:03:53 UTC ---
It should be a bitfield on both sides, otherwise the GIMPLE verifier would
complain.


[Bug target/52407] [4.6 Regression] sse2 simd uint32_t and int64_t and stack variable initialization

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52407

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED

--- Comment #12 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
09:20:41 UTC ---
Fixed.


[Bug c/52862] [4.5/4.6 Regression] ICE convert_to_pointer, at convert.c:50

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52862

--- Comment #8 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
09:17:53 UTC ---
Author: rguenth
Date: Tue May 22 09:17:42 2012
New Revision: 187762

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187762
Log:
2012-05-22  Richard Guenther  rguent...@suse.de

Backport from mainline
2012-04-12  Richard Guenther  rguent...@suse.de

PR c/52862
* convert.c (convert_to_pointer): Remove special-casing of
zero.

* gcc.dg/pr52862.c: New testcase.

Added:
branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/pr52862.c
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/convert.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug middle-end/51071] [4.7 Regression] ICE in gimple_has_side_effects, at gimple.c:2513

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51071

--- Comment #7 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
09:23:14 UTC ---
Author: rguenth
Date: Tue May 22 09:23:01 2012
New Revision: 187764

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187764
Log:
2012-05-22  Richard Guenther  rguent...@suse.de

Backport from mainline
2011-11-10  Richard Guenther  rguent...@suse.de

PR middle-end/51071
* gimple.c (gimple_has_side_effects): Remove checking code
that doesn't belong here.

* gcc.dg/torture/pr51071.c: New testcase.
* gcc.dg/torture/pr51071-2.c: Likewise.

Added:
branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/torture/pr51071-2.c
branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/torture/pr51071.c
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/gimple.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug regression/52383] [4.6 Regression] miscompiles Perl on m68k

2012-05-22 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52383

Mikael Pettersson mikpe at it dot uu.se changed:

   What|Removed |Added

 CC||mikpe at it dot uu.se

--- Comment #5 from Mikael Pettersson mikpe at it dot uu.se 2012-05-22 
08:35:14 UTC ---
(In reply to comment #4)
 Upgrading didn’t help, but in the meantime, I got it built.
 I blame ARAnyM, as it succeeds on a box I put Petr’s .deb on…
 so no wonder Andreas couldn’t reproduce it.

FWIW, I've just built perl-5.12.4 with gcc-4.6.3 (+ patches) on ARAnyM (0.9.11)
running a Linux 3.x kernel.  It seems to work fine, and the make_patchnum.pl
error you mentioned did not occur.  IOW, I'm more inclined to suspect Debian's
gcc-4.6 (at the time) than ARAnyM.


[Bug target/53334] [4.8 Regression] ICE in extract_insn, at recog.c:2131

2012-05-22 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53334

--- Comment #6 from Ramana Radhakrishnan ramana at gcc dot gnu.org 2012-05-22 
09:07:03 UTC ---
Author: ramana
Date: Tue May 22 09:06:55 2012
New Revision: 187761

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187761
Log:
Fix PR target/53334


2012-05-22  Ramana Radhakrishnan  ramana.radhakrish...@linaro.org

PR target/53334
* config/arm/arm-protos.h (arm_validize_comparison): Declare.
* config/arm/arm.c (arm_validize_comparison): Define.
* config/arm/arm.md (cbranchsi4): Cleanup expansion and use
arm_validize_comparison.
(cbranchdi4): Likewise.
(cstoredi4): Likewise.
(movsicc): Likewise.
(movsfcc): Likewise.
(movdfcc): Likewise.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm-protos.h
trunk/gcc/config/arm/arm.c
trunk/gcc/config/arm/arm.md


[Bug middle-end/51071] [4.7 Regression] ICE in gimple_has_side_effects, at gimple.c:2513

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51071

--- Comment #9 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
09:28:44 UTC ---
Author: rguenth
Date: Tue May 22 09:28:38 2012
New Revision: 187765

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187765
Log:
2012-05-22  Richard Guenther  rguent...@suse.de

PR middle-end/51071
* gcc.dg/torture/pr51071-2.c: New testcase.

Added:
branches/gcc-4_7-branch/gcc/testsuite/gcc.dg/torture/pr51071-2.c
Modified:
branches/gcc-4_7-branch/gcc/testsuite/ChangeLog


[Bug middle-end/53437] [4.8 Regression] FAIL: gcc.dg/guality/inline-params.c -O0

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53437

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
09:33:51 UTC ---
Author: rguenth
Date: Tue May 22 09:33:42 2012
New Revision: 187767

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187767
Log:
2012-05-22  Richard Guenther  rguent...@suse.de

PR middle-end/53437
* tree-inline.c (setup_one_parameter): Create a dummy init
statement for unused parameters when not optimizing.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-inline.c


[Bug middle-end/53437] [4.8 Regression] FAIL: gcc.dg/guality/inline-params.c -O0

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53437

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
09:36:02 UTC ---
Fixed.


[Bug tree-optimization/53336] [4.8 Regression] invalid types in nop conversion

2012-05-22 Thread bonzini at gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53336

--- Comment #4 from Paolo Bonzini bonzini at gnu dot org 2012-05-22 08:32:07 
UTC ---
Author: bonzini
Date: Tue May 22 08:31:52 2012
New Revision: 187759

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187759
Log:
gcc:
2012-05-16  Paolo Bonzini  bonz...@gnu.org

PR tree-optimization/53336
* tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
non-integer integral types to offset type and vice versa.

gcc/testsuite:
2012-05-16  Paolo Bonzini  bonz...@gnu.org

PR tree-optimization/53336
* g++.dg/torture/pr53336.C: New testcase.


Added:
trunk/gcc/testsuite/g++.dg/torture/pr53336.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-cfg.c


[Bug objc++/53441] [4.8 Regression] obj-c++.dg/ivar-invalid-type-1.mm ICE

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53441

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-05-22
   Target Milestone|--- |4.8.0
 Ever Confirmed|0   |1

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
09:51:52 UTC ---
Confirmed.


[Bug target/52407] [4.6 Regression] sse2 simd uint32_t and int64_t and stack variable initialization

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52407

--- Comment #11 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
09:20:24 UTC ---
Author: rguenth
Date: Tue May 22 09:20:15 2012
New Revision: 187763

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187763
Log:
2012-05-22  Richard Guenther  rguent...@suse.de

Backport from mainline
2012-02-28  Richard Guenther  rguent...@suse.de

PR target/52407
* config/i386/i386.c (ix86_expand_vector_set): Fix element
ordering for the VEC_CONCAT for two element vectors for
V2SFmode, V2SImode and V2DImode.

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

Added:
branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/torture/pr52407.c
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/config/i386/i386.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug target/53192] Incorrect arguments to AVX2's gather intrinsics

2012-05-22 Thread kirill.yukhin at intel dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53192

--- Comment #2 from Yukhin Kirill kirill.yukhin at intel dot com 2012-05-22 
08:22:12 UTC ---
(In reply to comment #1)
 Please provide a testcase to show the problem.

I have no idea, which kind of test it should be.
These is just MS-ICC-GCC incompatibility issue


[Bug fortran/53389] [4.6/4.7/4.8 Regression] -frealloc-lhs: memory leak when assigning array function result to allocatable array, where one of its supplied arguments is itself an array function resul

2012-05-22 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53389

--- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org 2012-05-22 
10:10:55 UTC ---
Author: burnus
Date: Tue May 22 10:10:47 2012
New Revision: 187769

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187769
Log:
2012-05-22  Tobias Burnus  bur...@net-b.de

PR fortran/53389
* trans-array.c (gfc_add_loop_ss_code): Don't evaluate
* expression, if
ss-is_alloc_lhs is set.

2012-05-22  Tobias Burnus  bur...@net-b.de

PR fortran/53389
* gfortran.dg/realloc_on_assign_15.f90: New.


Added:
trunk/gcc/testsuite/gfortran.dg/realloc_on_assign_15.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-array.c
trunk/gcc/testsuite/ChangeLog


[Bug target/53448] [avr] ignoring __attribute__((aligned(2)))

2012-05-22 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53448

Georg-Johann Lay gjl at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P4


[Bug middle-end/51071] [4.7 Regression] ICE in gimple_has_side_effects, at gimple.c:2513

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51071

--- Comment #8 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
09:24:10 UTC ---
Backported with a new testcase.


[Bug tree-optimization/53426] [4.8 Regression] ICE:create_variable_info_for at ../../gcc-trunk/gcc/tree-ssa-structalias.c:5581

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53426

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
09:44:41 UTC ---
(In reply to comment #4)
  Hum. IPA-PTA ... yeah ... :/
  
  Mine I guess (note ipa-pta is experimental).
  
  Honza - we are trying to access the varinfo for
  _ZTIN5boost16exception_detail19error_info_injectorISt13runtime_errorEE
  which is mentioned in the initializer of
  _ZTVN5boost16exception_detail19error_info_injectorISt13runtime_errorEE
  but that variable, despite mentioned, does not have a varpool entry.  Is
  that by design?  Can we not look at the initializer of a decl via
 
 I suppose it is the case where
 _ZTVN5boost16exception_detail19error_info_injectorISt13runtime_errorEE is
 external but with constructor known.  I recently fixed that on mainline by
 making those analyzed, too.
 
 So if this still reproduce on mainline, it is possible that you arrive to the
 constructor in some way that is not visible by varpool?

I'm arriving at it by walking all of varpool via FOR_EACH_VARIABLE, reaching
_ZTVN5boost16exception_detail19error_info_injectorISt13runtime_errorEE which is

readonly addressable used public ignored external virtual BLK file
/afs/cern.ch/cms/slc5_amd64_gcc470/external/boost/1.49.0/include/boost/exception/exception.hpp
line 315 col 9 size integer_cst 0x75c07640 576 unit size integer_cst
0x75c07740 72
align 256 context record_type 0x75c70930 error_info_injector initial
constructor 0x75c6f078

looking at its DECL_INITIAL which contains an address of
_ZTIN5boost16exception_detail19error_info_injectorISt13runtime_errorEE
which does not have a varpool entry and is

readonly addressable used public ignored external weak BLK file
/afs/cern.ch/cms/slc5_amd64_gcc470/external/boost/1.49.0/include/boost/exception/exception.hpp
line 315 col 9 size integer_cst 0x75c07460 448 unit size integer_cst
0x75c074c0 56
align 256 initial error_mark 0x75ad4bb8

it's the pointer to the typeinfo struct, so I'm not sure we ever create
varpool entries for that.

I can of course simply guard the code doing

  struct varpool_node *vnode = varpool_get_node (decl);

  /* For escaped variables initialize them from nonlocal.  */
  if (!varpool_all_refs_explicit_p (vnode))
make_copy_constraint (vi, nonlocal_id);

by changing it to

  if (!vnode
  || DECL_INITIAL (vnode) == error_mark_node
  || !varpool_all_refs_explicit_p (vnode))
make_copy_constraint (vi, nonlocal_id);

also noting the special error_mark_node DECL_INITIAL (what's that coming
from!?)


[Bug tree-optimization/53436] Volatile behaves strange with OpenMP

2012-05-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53436

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-22 
10:01:11 UTC ---
What GCC did was wrong.  But your testcase is clearly invalid as per
OpenMP 3.1, 1.4.1:
Similarly, if at least one thread reads from a memory unit and at least one
thread writes without synchronization to that same memory unit, including cases
due to atomicity considerations as described above, then a data race occurs. If
a data race occurs then the result of the program is unspecified.


[Bug middle-end/51071] [4.7 Regression] ICE in gimple_has_side_effects, at gimple.c:2513

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51071

--- Comment #10 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
09:35:40 UTC ---
Author: rguenth
Date: Tue May 22 09:35:32 2012
New Revision: 187768

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187768
Log:
2012-05-22  Richard Guenther  rguent...@suse.de

PR middle-end/51071
* gcc.dg/torture/pr51071-2.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr51071-2.c
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug c/52952] Wformat location info is bad (wrong column number)

2012-05-22 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52952

--- Comment #6 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-05-22 
09:54:29 UTC ---
(In reply to comment #3)
 What does clang report for this:
 
 #include stdio.h
 void f() {
printf(
 %.
 *d);
 }
 
 ?

/tmp/webcompile/_2090_0.c:5:2: warning: '.*' specified field precision is
missing a matching 'int' argument
*d);
~^~
1 warning generated.

They have an awesome online demo: http://llvm.org/demo/


[Bug bootstrap/53449] New: [4.8 regression] fortran fails to build

2012-05-22 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53449

 Bug #: 53449
   Summary: [4.8 regression] fortran fails to build
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: vincenzo.innoce...@cern.ch


with revision 187761
I now get an error while building fortran 

In file included from ../../gcc-trunk/gcc/fortran/trans-common.c:1310:0,
 from ./gt-fortran-trans-io.h:88,
 from :4794:
../../gcc-trunk/gcc/fortran/parse.c: In function 'gfc_parse_file':
../../gcc-trunk/gcc/fortran/parse.c:4603:60: error: 'errors_before' may be used
uninitialized in this function [-Werror=maybe-uninitialized]
   gfc_dump_module (s.sym-name, errors_before == errors);
^
In file included from ../../gcc-trunk/gcc/fortran/trans-common.c:1310:0,
 from ./gt-fortran-trans-io.h:88,
 from :4794:
../../gcc-trunk/gcc/fortran/parse.c:4487:21: note: 'errors_before' was declared
here
   int seen_program, errors_before, errors;
 ^
lto1: all warnings being treated as errors
make[4]: *** [/tmp/innocent/ccixchHw.ltrans30.ltrans.o] Error 1

configuration that fails
../gcc-trunk/configure --prefix=/afs/cern.ch/user/i/innocent/w2
--enable-languages=c,c++,fortran -enable-gold=yes --enable-lto
--with-build-config=bootstrap-lto --with-gmp-lib=/usr/local/lib64
--with-mpfr-lib=/usr/local/lib64 -with-mpc-lib=/usr/local/lib64
--enable-cloog-backend=isl --with-cloog=/usr/local
--with-ppl-lib=/usr/local/lib64 CFLAGS='-O2 -ftree-vectorize -fPIC'
CXXFLAGS='-O2 -fPIC -ftree-vectorize -fvisibility-inlines-hidden -march=native'
-enable-libitm -disable-multilib

configuration that succeeds
../gcc-trunk/configure --enable-languages=c,c++,fortran --disable-multilib
--enable-gold=yes --disable-nls --enable-lto
--with-mpc=/afs/cern.ch/cms/slc5_amd64_gcc470/external/gcc/4.7.0
--with-gmp=/afs/cern.ch/cms/slc5_amd64_gcc470/external/gcc/4.7.0
--with-mpfr=/afs/cern.ch/cms/slc5_amd64_gcc470/external/gcc/4.7.0
--prefix=/afs/cern.ch/user/i/innocent/w3/gcc47slc5


[Bug bootstrap/53449] [4.8 regression] fortran fails to build with LTO bootstrap

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53449

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.8.0
Summary|[4.8 regression] fortran|[4.8 regression] fortran
   |fails to build  |fails to build with LTO
   ||bootstrap

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
10:25:13 UTC ---
LTO bootstrap I suppose.


[Bug bootstrap/49707] GCC sends incorrect flags to native IRIX ld

2012-05-22 Thread kais58 at sucs dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49707

--- Comment #3 from kais58 at sucs dot org 2012-05-22 10:33:03 UTC ---
I should have updated this earlier, it turned out to be a problem with the
standard ld in IRIX 6.5, using the updated one included with MIPSPro made it
work without error.


[Bug middle-end/53408] [4.6/4.7 Regression] ICE in get_initial_def_for_induction, at tree-vect-loop.c:3222

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53408

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
10:46:25 UTC ---
Author: rguenth
Date: Tue May 22 10:46:21 2012
New Revision: 187770

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187770
Log:
2012-05-22  Richard Guenther  rguent...@suse.de

PR tree-optimization/53408
* tree-vect-loop.c (vectorizable_induction): Properly check
the restriction that we cannot handle induction results from
the inner loop outside of the outer loop.

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

Added:
branches/gcc-4_7-branch/gcc/testsuite/gcc.dg/torture/pr53408.c
Modified:
branches/gcc-4_7-branch/gcc/ChangeLog
branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
branches/gcc-4_7-branch/gcc/tree-vect-loop.c


[Bug tree-optimization/53438] [4.7/4.8 Regression] Bitfield store replaced with full-byte store

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53438

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-05-22
 Ever Confirmed|0   |1

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
10:47:53 UTC ---
Confirmed.  The following C testcase works correctly:

struct S { _Bool b : 1; char c : 7; };
void bar (struct S s)
{
  if (s.c != 7)
abort ();
}
int foo (_Bool b)
{
  struct S s;
  s.c = 7;
  s.b = b;
  bar (s);
  return s.c;
}

but for some reason your reduced testcase ends up producing a MEM_REF
instead of a component-ref to store b instead.


[Bug target/53440] [arm] generic thunk code fails for method which uses '...'

2012-05-22 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53440

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-05-22
 CC||ramana at gcc dot gnu.org
 Ever Confirmed|0   |1


[Bug c/52952] Wformat location info is bad (wrong column number)

2012-05-22 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52952

--- Comment #7 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-05-22 
10:55:49 UTC ---
(In reply to comment #5)
 The format string could be even something like
void f() {
  __builtin_printf(
 u8Rabcd(%.)abcd
*d);
   }
 So, the question is, if we have a way to find from the source_location on the
 ADDR_EXPR around STRING_CST the original non-concatenated tokens, and given
 index into the (possibly) translated STRING_CST redo the lexing of those
 tokens, looking at which byte in the source tokens maps to that offset in the
 STRING_CST.

Is it possible to re-preprocess some tokens only? Do the line-maps keep track
of the locations of the tokens which make up a single string? If not, we would
need to create new source locations on-the-fly. Is this possible at all?


[Bug c/52952] Wformat location info is bad (wrong column number)

2012-05-22 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52952

--- Comment #8 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-05-22 
11:04:41 UTC ---
(In reply to comment #3)
 What does clang report for this:
 
 #include stdio.h
 void f() {
printf(
 %.
 *d);
 }
 
 ?

An even more interesting example is this:

#define FORMAT .*d
#include stdio.h
void f() {
   printf(
%
FORMAT);
}

for which Clang prints:

/tmp/webcompile/_17428_0.c:6:1: warning: '.*' specified field precision is
missing a matching 'int' argument
FORMAT);
^
/tmp/webcompile/_17428_0.c:1:18: note: expanded from:
#define FORMAT .*d
 ^
1 warning generated.

So either one keeps track of all source locations of all interesting
characters within strings, which sounds infeasible. Or one needs to
re-preprocess the format string, creating new locations on-the-fly. Dodji, is
this possible?


[Bug target/53192] Incorrect arguments to AVX2's gather intrinsics

2012-05-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53192

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 2012-05-22 
11:18:50 UTC ---
Can you explain how are the two incompatible?  You mean you get a warning if
you pass an address of int64_t to this intrinsic?  Even if this weirdo __int64
is compatible with long rather than long long in LP64, both are layed out the
same.


[Bug middle-end/53450] New: [4.8 Regression] ICE in compiling libiberty/cp-demangle.c with -O2

2012-05-22 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53450

 Bug #: 53450
   Summary: [4.8 Regression]  ICE in compiling
libiberty/cp-demangle.c with -O2
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: vincenzo.innoce...@cern.ch


compile:  /home/data/newsoft/gcc-build/./gcc/xgcc
-B/home/data/newsoft/gcc-build/./gcc/
-B/afs/cern.ch/user/i/innocent/w2/x86_64-unknown-linux-gnu/bin/
-B/afs/cern.ch/user/i/innocent/w2/x86_64-unknown-linux-gnu/lib/ -isystem
/afs/cern.ch/user/i/innocent/w2/x86_64-unknown-linux-gnu/include -isystem
/afs/cern.ch/user/i/innocent/w2/x86_64-unknown-linux-gnu/sys-include
-DHAVE_CONFIG_H -I.. -I/home/data/newsoft/gcc-trunk/libstdc++-v3/../libiberty
-I/home/data/newsoft/gcc-trunk/libstdc++-v3/../include
-I/home/data/newsoft/gcc-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu
-I/home/data/newsoft/gcc-build/x86_64-unknown-linux-gnu/libstdc++-v3/include
-I/home/data/newsoft/gcc-trunk/libstdc++-v3/libsupc++ -g -O2 -ftree-vectorize
-fPIC -DIN_GLIBCPP_V3 -Wno-error -c cp-demangle.c  -fPIC -DPIC -o cp-demangle.o
In file included from /usr/include/string.h:637:0,
 from cp-demangle.c:112:
cp-demangle.c: In function 'd_print_comp.part.9':
cp-demangle.c:3933:16: internal compiler error: in int_mode_for_mode, at
stor-layout.c:424
  strncmp (dcl-u.s_name.s, JArray, 6) == 0)
^


 cd
/home/data/newsoft/gcc-build/x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++
[innocent@vinavx0 libsupc++]$ /home/data/newsoft/gcc-build/./gcc/xgcc
-B/home/data/newsoft/gcc-build/./gcc/
-B/afs/cern.ch/user/i/innocent/w2/x86_64-unknown-linux-gnu/bin/
-B/afs/cern.ch/user/i/innocent/w2/x86_64-unknown-linux-gnu/lib/ -isystem
/afs/cern.ch/user/i/innocent/w2/x86_64-unknown-linux-gnu/include -isystem
/afs/cern.ch/user/i/innocent/w2/x86_64-unknown-linux-gnu/sys-include
-DHAVE_CONFIG_H -I.. -I/home/data/newsoft/gcc-trunk/libstdc++-v3/../libiberty
-I/home/data/newsoft/gcc-trunk/libstdc++-v3/../include
-I/home/data/newsoft/gcc-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu
-I/home/data/newsoft/gcc-build/x86_64-unknown-linux-gnu/libstdc++-v3/include
-I/home/data/newsoft/gcc-trunk/libstdc++-v3/ -g -ftree-vectorize -fPIC
-DIN_GLIBCPP_V3 -Wno-error -c cp-demangle.c  -fPIC -DPIC -o cp-demangle.o

succeds…


[Bug plugins/41757] Add PLUGIN_FINISH_DECL

2012-05-22 Thread pageexec at freemail dot hu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41757

pageexec at freemail dot hu changed:

   What|Removed |Added

 CC||pageexec at freemail dot hu

--- Comment #5 from pageexec at freemail dot hu 2012-05-22 11:49:47 UTC ---
this feature seems to have been implemented already in gcc 4.7.x, can it be
backported to 4.5.x and 4.6.x perhaps? it would make life easier for plugin
writers who would like to provide the same features for all the plugin capable
gcc series.


[Bug c++/53380] .ehframe could be smaller

2012-05-22 Thread msharov at users dot sourceforge.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53380

--- Comment #3 from msharov at users dot sourceforge.net 2012-05-22 11:21:41 
UTC ---
 Did -fno-asynchronous-unwind-tables do what you wanted it to do?  In that
 disable the unwinding tables when not using exceptions?

No, it did not. For example:

#include stdio.h
int calculate (int x, int y) { return (x * y); }
void print (void) { printf (%d, calculate(1,2)); }
int main (void) { print(); return (0); }

g++ -Os -c -fno-asynchronous-unwind-tables -o tes.o tes.cc
readelf --debug-dump=frames tes.o

Contents of the .eh_frame section:

 0014  CIE
  Version:   1
  Augmentation:  zR
  Code alignment factor: 1
  Data alignment factor: -8
  Return address column: 16
  Augmentation data: 1b

  DW_CFA_def_cfa: r7 (rsp) ofs 8
  DW_CFA_offset: r16 (rip) at cfa-8
  DW_CFA_nop
  DW_CFA_nop

0018 0010 001c FDE cie= pc=..0006
  DW_CFA_nop
  DW_CFA_nop
  DW_CFA_nop

002c 0010 0030 FDE cie= pc=0006..0017
  DW_CFA_nop
  DW_CFA_nop
  DW_CFA_nop

0040 0014 0044 FDE cie= pc=..000a
  DW_CFA_advance_loc: 1 to 0001
  DW_CFA_def_cfa_offset: 16
  DW_CFA_advance_loc: 8 to 0009
  DW_CFA_def_cfa_offset: 8
  DW_CFA_nop

As you can see, all three functions still have unwind entries emitted.
According to documentation I saw on the web, -fno-asynchronous-unwind-tables
increases unwind information granularity to function-level, meaning that it
supposedly avoids stepping cfa unless there is a function call there. While I
don't regularly read the unwind tables, I was under impression that this was
happening by default.


[Bug target/53192] Incorrect arguments to AVX2's gather intrinsics

2012-05-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53192

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-22 
11:52:12 UTC ---
BTW, to avoid that warning, you could use in C:
extern __inline __m128i
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm_i32gather_epi64 (
#ifdef __cplusplus
 long long int const *base,
#else
 union __attribute__((__transparent_union__)) { long long
int const *__ll; long int const *__l; } base,
#endif
 __m128i index, const int scale)
and for C++ add another overload (of course, for _LP64 only).


[Bug c++/53451] New: [4.8 regression] ICE verify_gimple failed

2012-05-22 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53451

 Bug #: 53451
   Summary: [4.8 regression] ICE verify_gimple failed
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: vincenzo.innoce...@cern.ch


requires boost
(p.s. last working version of 4.8 for what I'm concerned is revision 187326)

cat ice2205.cc 
#include vector
#include algorithm
#include boost/bind/bind.hpp


struct A {
  int i;
};

bool foo(std::vectorA const  va, int q) {
   auto it = std::find_if(va.begin(), va.end(), boost::bind(A::i, _1) == q);
  return it != va.end();
} 
[vocms123] ~/public/ctest/bugs48 $ c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/afs/cern.ch/user/i/innocent/w3/gcc47slc5/libexec/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-trunk/configure --enable-languages=c,c++,fortran
--disable-multilib --enable-gold=yes --disable-nls --enable-lto
--with-mpc=/afs/cern.ch/cms/slc5_amd64_gcc470/external/gcc/4.7.0
--with-gmp=/afs/cern.ch/cms/slc5_amd64_gcc470/external/gcc/4.7.0
--with-mpfr=/afs/cern.ch/cms/slc5_amd64_gcc470/external/gcc/4.7.0
--prefix=/afs/cern.ch/user/i/innocent/w3/gcc47slc5
--with-build-time-tools=/build/ge/new-binutils/a/slc5_amd64_gcc470/external/gcc/4.7.0-cms/bin
Thread model: posix
gcc version 4.8.0 20120522 (experimental) [trunk revision 187760] (GCC) 

[vocms123] ~/public/ctest/bugs48 $ c++ -std=c++11 -c ice2205.cc
-I/build/ge/new-binutils/a/slc5_amd64_gcc470/external/boost/1.49.0-cms3/include
In file included from
/build/ge/new-binutils/a/slc5_amd64_gcc470/external/boost/1.49.0-cms3/include/boost/mem_fn.hpp:22:0,
 from
/build/ge/new-binutils/a/slc5_amd64_gcc470/external/boost/1.49.0-cms3/include/boost/bind/bind.hpp:26,
 from ice2205.cc:3:
/build/ge/new-binutils/a/slc5_amd64_gcc470/external/boost/1.49.0-cms3/include/boost/bind/mem_fn.hpp:
In member function 'const R boost::_mfi::dmR, T::operator()(const T) const
[with R = int; T = A]':
/build/ge/new-binutils/a/slc5_amd64_gcc470/external/boost/1.49.0-cms3/include/boost/bind/mem_fn.hpp:362:15:
error: invalid types in nop conversion
 R const  operator()(T const  t) const
   ^
sizetype
 Unknown tree: offset_type 
D.66000 = (sizetype) D.65999;

/build/ge/new-binutils/a/slc5_amd64_gcc470/external/boost/1.49.0-cms3/include/boost/bind/mem_fn.hpp:362:15:
internal compiler error: verify_gimple failed


[Bug regression/52383] [4.6 Regression] miscompiles Perl on m68k

2012-05-22 Thread tg at mirbsd dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52383

--- Comment #6 from Thorsten Glaser tg at mirbsd dot org 2012-05-22 12:17:36 
UTC ---
Hm, I was pretty sure I tracked it down to aranym. But anyway, it’s gone.


[Bug tree-optimization/53426] [4.8 Regression] ICE:create_variable_info_for at ../../gcc-trunk/gcc/tree-ssa-structalias.c:5581

2012-05-22 Thread hubicka at ucw dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53426

--- Comment #6 from Jan Hubicka hubicka at ucw dot cz 2012-05-22 12:19:55 UTC 
---
 by changing it to
 
   if (!vnode
   || DECL_INITIAL (vnode) == error_mark_node
   || !varpool_all_refs_explicit_p (vnode))
 make_copy_constraint (vi, nonlocal_id);
 
 also noting the special error_mark_node DECL_INITIAL (what's that coming
 from!?)

DECL_INITIAL is replaced by error mark when the variable is removed from
varpool
(so we know it is no longer going to be referenced or emit in some way) to
conserve
memory.

Other case is the partitioning, when the variable is in the other partition 
and thus there is no need to sream the DECL_INITIAL (we stream DECL_INITIAL for
variables from other partitions only when we think it may be useful for
constant
folding: that is variables passes const_value_known_p).  This is probably the
case
here.

If you only need to collect all things that escape, you can safely ignore
DECL_INITIAL of DECLs with in_ohter_partition set: all vars that are in current
partition referenced by the constructor from other partition
used_from_other_partition set anyway, so they won't pass
varpool_all_refs_explicit_p.

You only need to worry about local constructors.

Honza


[Bug tree-optimization/53438] [4.7/4.8 Regression] Bitfield store replaced with full-byte store

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53438

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
11:07:15 UTC ---
I think the following should fix it:

Index: gcc/tree-sra.c
===
--- gcc/tree-sra.c  (revision 187767)
+++ gcc/tree-sra.c  (working copy)
@@ -1001,9 +1001,10 @@ build_access_from_expr_1 (tree expr, gim
@@ -2096,9 +2097,12 @@ analyze_access_subtree (struct access *r
   (TREE_CODE (root-type) != INTEGER_TYPE
  || TYPE_PRECISION (root-type) != root-size)
  /* But leave bitfield accesses alone.  */
-  (root-offset % BITS_PER_UNIT) == 0)
+  (TREE_CODE (root-expr) != COMPONENT_REF
+ || !DECL_BIT_FIELD (TREE_OPERAND (root-expr, 1
{
  tree rt = root-type;
+ gcc_assert ((root-offset % BITS_PER_UNIT) == 0
+  (root-size % BITS_PER_UNIT) == 0);
  root-type = build_nonstandard_integer_type (root-size,
   TYPE_UNSIGNED (rt));
  root-expr = build_ref_for_offset (UNKNOWN_LOCATION,


can you verify that, thus give it a bootstrap  regtest run?


[Bug middle-end/53408] [4.6 Regression] ICE in get_initial_def_for_induction, at tree-vect-loop.c:3222

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53408

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.7.1
Summary|[4.6/4.7 Regression] ICE in |[4.6 Regression] ICE in
   |get_initial_def_for_inducti |get_initial_def_for_inducti
   |on, at  |on, at
   |tree-vect-loop.c:3222   |tree-vect-loop.c:3222
  Known to fail||4.7.0

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
12:01:48 UTC ---
And for 4.7.1.


[Bug tree-optimization/53426] [4.8 Regression] ICE:create_variable_info_for at ../../gcc-trunk/gcc/tree-ssa-structalias.c:5581

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53426

--- Comment #7 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
12:47:04 UTC ---
(In reply to comment #6)
  by changing it to
  
if (!vnode
|| DECL_INITIAL (vnode) == error_mark_node
|| !varpool_all_refs_explicit_p (vnode))
  make_copy_constraint (vi, nonlocal_id);
  
  also noting the special error_mark_node DECL_INITIAL (what's that coming
  from!?)
 
 DECL_INITIAL is replaced by error mark when the variable is removed from
 varpool
 (so we know it is no longer going to be referenced or emit in some way) to
 conserve
 memory.
 
 Other case is the partitioning, when the variable is in the other partition 
 and thus there is no need to sream the DECL_INITIAL (we stream DECL_INITIAL 
 for
 variables from other partitions only when we think it may be useful for
 constant
 folding: that is variables passes const_value_known_p).  This is probably the
 case
 here.
 
 If you only need to collect all things that escape, you can safely ignore
 DECL_INITIAL of DECLs with in_ohter_partition set: all vars that are in 
 current
 partition referenced by the constructor from other partition
 used_from_other_partition set anyway, so they won't pass
 varpool_all_refs_explicit_p.
 
 You only need to worry about local constructors.

But I have a variable that fulfills varpool_all_refs_explicit_p but still
its DECL_INITIAL contains X where I have no varpool node for X for.  So
if I constant fold from it I can get an explicit reference to a global
variable X that has no varpool node assigned.  How can that be ok?


[Bug c++/53451] [4.8 regression] ICE verify_gimple failed

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53451

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
12:47:37 UTC ---
I think I fixed that with

2012-05-22  Richard Guenther  rguent...@suse.de

* tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous
commit.


[Bug middle-end/53450] [4.8 Regression] ICE in compiling libiberty/cp-demangle.c with -O2 in int_mode_for_mode, at stor-layout.c:424

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53450

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2012-05-22
   Target Milestone|--- |4.8.0
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
12:50:17 UTC ---
You have -ftree-vectorize enabled ... quickly trying with -O2 -ftree-vectrize
on cp-demangle.c works for me (and ISTR the int_mode_for_mode ICE ...).  Can
you attach preprocessed source?  Or try again?


[Bug middle-end/53450] [4.8 Regression] ICE in compiling libiberty/cp-demangle.c with -O2 in int_mode_for_mode, at stor-layout.c:424

2012-05-22 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53450

Markus Trippelsdorf markus at trippelsdorf dot de changed:

   What|Removed |Added

 CC||markus at trippelsdorf dot
   ||de

--- Comment #2 from Markus Trippelsdorf markus at trippelsdorf dot de 
2012-05-22 12:53:40 UTC ---
Most likely a dup of Bug 53433.


[Bug tree-optimization/53426] [4.8 Regression] ICE:create_variable_info_for at ../../gcc-trunk/gcc/tree-ssa-structalias.c:5581

2012-05-22 Thread hubicka at ucw dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53426

--- Comment #8 from Jan Hubicka hubicka at ucw dot cz 2012-05-22 12:53:43 UTC 
---
 But I have a variable that fulfills varpool_all_refs_explicit_p but still
 its DECL_INITIAL contains X where I have no varpool node for X for.  So
 if I constant fold from it I can get an explicit reference to a global
 variable X that has no varpool node assigned.  How can that be ok?

We bring the references only for vars that pass const_value_known_p, but from
what you quote it looks like it should pass the check.  I am now tracking
memory
corruption in other PR, so i will look into this next.


[Bug c++/53380] .ehframe could be smaller

2012-05-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53380

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 2012-05-22 
12:55:30 UTC ---
Adding default handling if there is no FDE is an ABI change, so can't be done
on existing architectures (except those that have that in their ABI already).

Why do you care about the .eh_frame size so much?  If you don't use the unwind
info, it often won't be even paged in, or can be discarded from RAM if needed. 
And if you need it, it better be accurrate.


[Bug libstdc++/53429] libstdc++ should guarantee not to expose complex::{imag,real} so it supports both C++98 and C++11

2012-05-22 Thread jyasskin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53429

Jeffrey Yasskin jyasskin at gcc dot gnu.org changed:

   What|Removed |Added

 Status|RESOLVED|NEW
   Last reconfirmed||2012-05-22
 CC||gdr at gcc dot gnu.org
 Resolution|INVALID |
Summary|complex::{imag,real} should |libstdc++ should guarantee
   |be marked alwaysinline to   |not to expose
   |guarantee libstdc++ binary  |complex::{imag,real} so it
   |compatibility between C++98 |supports both C++98 and
   |and C++11   |C++11
 Ever Confirmed|0   |1

--- Comment #5 from Jeffrey Yasskin jyasskin at gcc dot gnu.org 2012-05-22 
12:58:14 UTC ---
Specializing operator sounds fine too. Adding Gaby for his opinion, and
reopening since I'm not sure Richard understood the request.


[Bug c/53452] New: large array problem x86_64

2012-05-22 Thread peter.faasse at nlr dot nl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53452

 Bug #: 53452
   Summary: large array problem x86_64
Classification: Unclassified
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: peter.faa...@nlr.nl


Created attachment 27475
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27475
per-request, the .i file, command-line file will follow

The following very simple program:

int main(int argc, char *argv[])
{
//
int ttt[1073741824];// fails -- segmentation fault
//int ttt[1048576];// ok
//
return 0;
//
}

segfaults when an array of 1Gig ints is declared. 
In gdb that shows up as: 

(gdb) b main
Breakpoint 1 at 0x4004d0: file test.c, line 7.
(gdb) r
Starting program: /home/prf/z08/ALL/DSC/test/test 

Program received signal SIGSEGV, Segmentation fault.
0x004004bc in main (argc=Cannot access memory at address 0xfffec99c
) at test.c:2
2   {



[Bug c/53452] large array problem x86_64

2012-05-22 Thread peter.faasse at nlr dot nl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53452

--- Comment #1 from Peter Faasse peter.faasse at nlr dot nl 2012-05-22 
13:03:59 UTC ---
Created attachment 27476
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27476
gcc -v  etcetera version of gcc

Distribution is Slackware-64 13.37


[Bug middle-end/53433] [4.8 Regression] ICE in int_mode_for_mode, at stor-layout.c:424 during lto-bootstrap

2012-05-22 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53433

vincenzo Innocente vincenzo.innocente at cern dot ch changed:

   What|Removed |Added

 CC||vincenzo.innocente at cern
   ||dot ch

--- Comment #6 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2012-05-22 13:06:58 UTC ---
*** Bug 53450 has been marked as a duplicate of this bug. ***


[Bug middle-end/53450] [4.8 Regression] ICE in compiling libiberty/cp-demangle.c with -O2 in int_mode_for_mode, at stor-layout.c:424

2012-05-22 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53450

vincenzo Innocente vincenzo.innocente at cern dot ch changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||DUPLICATE

--- Comment #3 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2012-05-22 13:06:58 UTC ---


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


[Bug tree-optimization/53438] [4.7/4.8 Regression] Bitfield store replaced with full-byte store

2012-05-22 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53438

--- Comment #7 from William J. Schmidt wschmidt at gcc dot gnu.org 2012-05-22 
13:13:04 UTC ---
Yep, I'll check it out.  Thanks, Richard!


[Bug c++/53451] [4.8 regression] ICE verify_gimple failed

2012-05-22 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53451

vincenzo Innocente vincenzo.innocente at cern dot ch changed:

   What|Removed |Added

 Resolution|FIXED   |INVALID

--- Comment #2 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2012-05-22 13:18:32 UTC ---
indeed.
ok with trunk revision 187772


[Bug middle-end/53161] [4.8 Regression] ICE with weakref function and a function which takes vector types

2012-05-22 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53161

--- Comment #9 from Jan Hubicka hubicka at gcc dot gnu.org 2012-05-22 
13:20:19 UTC ---
OK, this problem is caused by C++ FE corrupting symbol table by creating new
symbol from DECL_ASSEMBLER_NAME langhook while creating another symbol.  There
has to be better ways to produce those aliases than from here...

I am testing fix.
Honza


[Bug debug/53453] New: darwin linker expects both AT_name and AT_comp_dir debug notes

2012-05-22 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53453

 Bug #: 53453
   Summary: darwin linker expects both AT_name and AT_comp_dir
debug notes
Classification: Unclassified
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: howa...@nitro.med.uc.edu


Future versions of dsymutil on darwin will emit warnings of the form...

warning: no debug symbols in executable (-arch x86_64)

warning: no debug symbols in executable (-arch i386)

when the debug note for AT_comp_dir is missing from linked object files.
Upstream had the following comments...


The issue is not directly dsymutil.  The way it works on darwin, is that 
the linker does not copy dwarf debug info.  Instead, the linker leaves 
the debug info in the .o files and then puts debug notes into the final 
linked image. If you run the program under gdb, the debugger sees the 
notes and opens the .of files and reads the dwarf. If instead you run 
dysmtuil, it reads the debug notes which tells it where to find the 
.o files from which to read the dwarf and merge all the dwarf into 
the .dSYM.

The dsymtuil warning is that no dwarf was found.  In this case that 
is because there were no debug notes recorded by the linker which 
was because of the lack of AT_comp_dir.   In some of the cases you've 
set up, there was no warning because there was some dwarf found but 
not all dwarf was found, so the .dSYM is less than ideal.

The format of the debug notes requires a pair of dir/file.  Because 
it always just worked before, the linker just copied the dir from 
AT_comp_dir and the file from AT_name. It does not look like the 
dwarf spec requires the AT_comp_dir, but it has always been there 
before and the linker has come to depend on it.
-

This issue can be demonstrated with Xcode 4.2 under 10.7.4 using gcc trunk...


howarth% gcc-fsf-4.8
/sw/src/fink.build/gcc48-4.8.0-1000/gcc-4.8-20120520/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.c
/sw/src/fink.build/gcc48-4.8.0-1000/gcc-4.8-20120520/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1-lib.c
/sw/src/fink.build/gcc48-4.8.0-1000/gcc-4.8-20120520/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c
-fno-diagnostics-show-caret --save-temps -w -O3 -g -lm -m64 -o 20010124-1.x4
howarth% dwarfdump --debug-info main.o | grep -A3 AT_language
 AT_language( DW_LANG_C89 )
 AT_name(
/sw/src/fink.build/gcc48-4.8.0-1000/gcc-4.8-20120520/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c
)
 AT_stmt_list( 0x )

whereas if you copy or symlink the source files into a local directory and
compile with...

howarth% gcc-fsf-4.8 20010124-1.c 20010124-1-lib.c main.c
-fno-diagnostics-show-caret --save-temps -w -O3 -g -lm -m64 -o 20010124-1.x4

...both the AT_name and AT_comp_dir debug notes are present...

howarth% dwarfdump --debug-info main.o | grep -A3 AT_language  
   AT_language( DW_LANG_C89 )
 AT_name( main.c )
 AT_comp_dir( /Users/howarth/xcode44_bugv2/good_binary )
 AT_stmt_list( 0x )

and future dsymutil releases won't emit the warning.


[Bug c/53452] large array problem x86_64

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53452

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
13:27:16 UTC ---
Increase your stack limit - 'ulimit -s unlimited' is your friend.


[Bug tree-optimization/53426] [4.8 Regression] ICE:create_variable_info_for at ../../gcc-trunk/gcc/tree-ssa-structalias.c:5581

2012-05-22 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53426

--- Comment #9 from Jan Hubicka hubicka at gcc dot gnu.org 2012-05-22 
13:31:28 UTC ---
OK,
I see the following:
6882  FOR_EACH_VARIABLE (var)
6883{
6884  if (var-alias)
6885continue;
6886
6887  get_vi_for_tree (var-symbol.decl);
6888}

(gdb) p dump_varpool_node (stderr, var)
_ZTVN5boost16exception_detail19error_info_injectorISt13runtime_errorEE.local.230/1658
(_ZTVN5boost16exception_detail19error_info_injectorISt13runtime_errorEE)
@0x775f1e88
  Type: variable
  Visibility: in_other_partition used_from_other_partition
prevailing_def_ironly external public visibility_specified visibility:hidden
virtual artificial
  References: 
  Referring:
_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorISt13runtime_errorEEE5cloneEv.local.151/2414
(addr)_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorISt13runtime_errorEEE5cloneEv.local.151/2414
(addr)
  Availability: overwritable
  Varpool flags: initialized finalized

this var won't pass varpool_all_refs_explicit: it is from other partition and
used from elsewhere.

Partitioning should have put the variables referred by this constructor into a
boundary and it is not doing it - I will fix that.
(it gets that right at my internal symbol table tree)

On the other hand, is ipa-pta able to take advantage of fact that the variable
is readonly? I would propose:
Index: tree-ssa-structalias.c
===
--- tree-ssa-structalias.c  (revision 187695)
+++ tree-ssa-structalias.c  (working copy)
@@ -5583,7 +5583,8 @@ create_variable_info_for (tree decl, con

  /* If this is a global variable with an initializer and we are in
 IPA mode generate constraints for it.  */
- if (DECL_INITIAL (decl))
+ if (DECL_INITIAL (decl)
+  vnode-analyzed)
{
  VEC (ce_s, heap) *rhsc = NULL;
  struct constraint_expr lhs, *rhsp;

I.e. to care only about constructors of vars from current partition.
This function does not check varpool_all_refs_explicit as you suggested in
previous comment.


[Bug middle-end/53433] [4.8 Regression] ICE in int_mode_for_mode, at stor-layout.c:424 during lto-bootstrap

2012-05-22 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53433

--- Comment #7 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2012-05-22 13:42:17 UTC ---
mine is a one-year-old libc

GNU C Library stable release version 2.13, by Roland McGrath et al.
….
Compiled by GNU CC version 4.6.1 20110520 (prerelease).
Compiled on a Linux 2.6.32 system on 2011-05-30.


[Bug debug/53453] darwin linker expects both AT_name and AT_comp_dir debug notes

2012-05-22 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53453

--- Comment #1 from Jack Howarth howarth at nitro dot med.uc.edu 2012-05-22 
13:33:01 UTC ---
It looks like the lines...

  if (!IS_ABSOLUTE_PATH (filename)  filename[0] != '')
add_comp_dir_attribute (die);

in gen_compile_unit_die() of dwarf2out.c need adjusted for darwin to
insure that add_comp_dir_attribute (die) is always called.


[Bug debug/49167] dwarf marker for function return instruction

2012-05-22 Thread fche at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49167

--- Comment #3 from Frank Ch. Eigler fche at redhat dot com 2012-05-22 
14:30:35 UTC ---
test comment


[Bug tree-optimization/53426] [4.8 Regression] ICE:create_variable_info_for at ../../gcc-trunk/gcc/tree-ssa-structalias.c:5581

2012-05-22 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53426

--- Comment #10 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-22 
13:52:49 UTC ---
(In reply to comment #9)
 OK,
 I see the following:
 6882  FOR_EACH_VARIABLE (var)
 6883{
 6884  if (var-alias)
 6885continue;
 6886
 6887  get_vi_for_tree (var-symbol.decl);
 6888}
 
 (gdb) p dump_varpool_node (stderr, var)
 _ZTVN5boost16exception_detail19error_info_injectorISt13runtime_errorEE.local.230/1658
 (_ZTVN5boost16exception_detail19error_info_injectorISt13runtime_errorEE)
 @0x775f1e88
   Type: variable
   Visibility: in_other_partition used_from_other_partition
 prevailing_def_ironly external public visibility_specified visibility:hidden
 virtual artificial
   References: 
   Referring:
 _ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorISt13runtime_errorEEE5cloneEv.local.151/2414
 (addr)_ZNK5boost16exception_detail10clone_implINS0_19error_info_injectorISt13runtime_errorEEE5cloneEv.local.151/2414
 (addr)
   Availability: overwritable
   Varpool flags: initialized finalized
 
 this var won't pass varpool_all_refs_explicit: it is from other partition and
 used from elsewhere.
 
 Partitioning should have put the variables referred by this constructor into a
 boundary and it is not doing it - I will fix that.
 (it gets that right at my internal symbol table tree)
 
 On the other hand, is ipa-pta able to take advantage of fact that the variable
 is readonly? I would propose:
 Index: tree-ssa-structalias.c
 ===
 --- tree-ssa-structalias.c  (revision 187695)
 +++ tree-ssa-structalias.c  (working copy)
 @@ -5583,7 +5583,8 @@ create_variable_info_for (tree decl, con
 
   /* If this is a global variable with an initializer and we are in
  IPA mode generate constraints for it.  */
 - if (DECL_INITIAL (decl))
 + if (DECL_INITIAL (decl)
 +  vnode-analyzed)
 {
   VEC (ce_s, heap) *rhsc = NULL;
   struct constraint_expr lhs, *rhsp;
 
 I.e. to care only about constructors of vars from current partition.
 This function does not check varpool_all_refs_explicit as you suggested in
 previous comment.

Ok, this fixes it.  You explained DECL_INITIAL of a !vnode-analyzed can
never refer to a varpool_all_refs_explicit_p () decl.


[Bug debug/53453] darwin linker expects both AT_name and AT_comp_dir debug notes

2012-05-22 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53453

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-22 
14:39:29 UTC ---
There is no point to emit DW_AT_comp_dir if all filenames in the file/directory
table referenced by DW_AT_stmt_list are absolute.  Seems to be a request to
work around broken vendor tools again.


[Bug debug/53453] darwin linker expects both AT_name and AT_comp_dir debug notes

2012-05-22 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53453

--- Comment #2 from Jack Howarth howarth at nitro dot med.uc.edu 2012-05-22 
13:58:13 UTC ---
(In reply to comment #1)
 It looks like the lines...
 
   if (!IS_ABSOLUTE_PATH (filename)  filename[0] != '')
 add_comp_dir_attribute (die);
 
 in gen_compile_unit_die() of dwarf2out.c need adjusted for darwin to
 insure that add_comp_dir_attribute (die) is always called.

I notice later in dwarf2out_finish() of dwarf2out.c that we have...


 if (!IS_ABSOLUTE_PATH (filename))
add_comp_dir_attribute (comp_unit_die ());
  else if (get_AT (comp_unit_die (), DW_AT_comp_dir) == NULL)
{
  bool p = false;
  htab_traverse (file_table, file_table_relative_p, p);
  if (p)
add_comp_dir_attribute (comp_unit_die ());
}

perhaps gen_compile_unit_die()  needs a similar else statement?


[Bug target/48941] [arm gcc] NEON: Stack pointer operations performed even tho stack is not accessed at all in function.

2012-05-22 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48941

--- Comment #11 from Ramana Radhakrishnan ramana at gcc dot gnu.org 
2012-05-22 14:16:34 UTC ---
 There are still a few vmov's between Vector registers but I suspect that is
 because of the vcombine at the end for which RichardE might have something in
 flight. 

This is probably not true and needs some more investigation.


[Bug c++/53446] Template function incorrectly rejected when convertible argument is provided for a parameter

2012-05-22 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53446

Daniel Krügler daniel.kruegler at googlemail dot com changed:

   What|Removed |Added

 CC||daniel.kruegler at
   ||googlemail dot com

--- Comment #6 from Daniel Krügler daniel.kruegler at googlemail dot com 
2012-05-22 13:57:07 UTC ---
(In reply to comment #5)
 I think this is just a dup of bug 52072.

I agree.


  1   2   3   >