[PATCH, i386]: Avoid combining registers from different units in a single alternative.

2011-10-27 Thread Uros Bizjak
Hello! See comment above inline_secondary_memory_needed function in i386.c. 2011-08-27 Uros Bizjak ubiz...@gmail.com PR target/37191 * config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers from different units in a single alternative. Tested on

[PATCH] PR49720, infinite recursion in RTX simplification

2011-10-27 Thread Chung-Lin Tang
Hi, this patch is for a specific case in RTX simplification where infinite recursion ensues, causing the out-of-stack segfault in PR49720. Tracking back the origin of this bug, the exact revision causing this was rev.92429, back in 2004. The clause in

Re: Reload related segfaults

2011-10-27 Thread David Miller
From: David Miller da...@davemloft.net Date: Wed, 26 Oct 2011 23:07:11 -0400 (EDT) From: Alan Modra amo...@gmail.com Date: Thu, 27 Oct 2011 13:29:56 +1030 Some recent patch has exposed a reload bug. I'm seeing I think this might be a side effect or Eric's recent changes, CC:'d. Eric,

[PATCH] Fix dependencies of build/gencheck.o

2011-10-27 Thread Jakub Jelinek
Hi! This morning I've noticed a build failure, USERDEF_LITERAL_CHECK macro wasn't defined. The problem is that the gencheck binary includes an array with all tree names (includes all-tree.def), and depended on all-tree.def (which is a move-if-change file) and $(lang_tree_files), but not on

Re: tree-ssa-strlen vs. zero-length strings

2011-10-27 Thread Jakub Jelinek
On Wed, Oct 26, 2011 at 10:22:21PM -0700, Ian Lance Taylor wrote: I don't think it is possible to trigger this using C because I don't think it is possible to have a zero-length STRING_CST in C. Ugh. I think the following should work, after all it will be tiny more efficient, I chose to use

Re: [PATCH 0/6] More vector permutation work

2011-10-27 Thread Ulrich Weigand
Richard Henderson wrote: On 10/26/2011 07:30 AM, Ulrich Weigand wrote: This fails since for u == 4 and mode == V4SFmode it attempts to expand a V4SFmode shift, which is unsupported. Shouldn't this be using the mode of the selector rather than the mode of the result in any case?

Re: [PATCH][RFC] Re-write LTO option merging

2011-10-27 Thread Richard Guenther
On Wed, 26 Oct 2011, Mike Stump wrote: On Oct 26, 2011, at 6:10 AM, Richard Guenther wrote: This completely rewrites LTO option merging. Any comments? Wondering if It breaks darwin? http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50876 We have:

Re: [PATCH][RFC] Re-write LTO option merging

2011-10-27 Thread Richard Guenther
On Wed, 26 Oct 2011, Richard Guenther wrote: This completely rewrites LTO option merging. At compile (uselessly now at WPA?) time we now stream a COLLECT_GCC_OPTIONS like string as it comes from argv of the compiler binary. Those options are read in by the LTO driver (lto-wrapper), merged

RE: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-27 Thread Jiangning Liu
-Original Message- From: Michael Matz [mailto:m...@suse.de] Sent: Wednesday, October 26, 2011 11:47 PM To: Kai Tietz Cc: Jiangning Liu; Richard Guenther; Kai Tietz; gcc-patches@gcc.gnu.org; Richard Henderson Subject: Re: [patch tree-optimization]: Improve handling of

Re: [PATCH, devirtualization] Detect the new type in type change detection

2011-10-27 Thread Richard Guenther
On Thu, Oct 27, 2011 at 1:22 AM, Martin Jambor mjam...@suse.cz wrote: Hi, I've been asked by Maxim Kuvyrkov to revive the following patch which has not made it to 4.6.  Currently, when type based devirtualization detects a potential type change, it simply gives up on gathering any

Re: [PATCH][RFC] Re-write LTO option merging

2011-10-27 Thread Richard Guenther
On Wed, 26 Oct 2011, Joseph S. Myers wrote: On Wed, 26 Oct 2011, Richard Guenther wrote: Index: trunk/gcc/opts-global.c === *** trunk.orig/gcc/opts-global.c2011-10-26 13:46:24.0 +0200 ---

Re: [patch tree-optimization]: Improve handling of conditional-branches on targets with high branch costs

2011-10-27 Thread Kai Tietz
2011/10/27 Jiangning Liu jiangning@arm.com: -Original Message- From: Michael Matz [mailto:m...@suse.de] Sent: Wednesday, October 26, 2011 11:47 PM To: Kai Tietz Cc: Jiangning Liu; Richard Guenther; Kai Tietz; gcc-patches@gcc.gnu.org; Richard Henderson Subject: Re: [patch

Re: Reload related segfaults

2011-10-27 Thread Eric Botcazou
The crash is in find_valid_class() called from push_reload(), via this code block around line 1184 of reload.c: enum reg_class in_out_class = find_valid_class (outmode, GET_MODE (SUBREG_REG (out)), subreg_regno_offset (REGNO (SUBREG_REG (out)),

Scheduler fix for the new predication code

2011-10-27 Thread Bernd Schmidt
When we try to predicate an insn in the scheduler, we must check whether the condition has been overwritten. The current code for that tries to look for an insn writing the condition register, then checking REG_DEP_TRUE deps. It fails in a situation as follows: [A1] branch A1:A0 = some operation

[v3] Fix libstdc++/50880

2011-10-27 Thread Paolo Carlini
Hi, tested x86_64-linux (with _GLIBCXX_USE_C99_COMPLEX_TR1 manually set to zero for the affected function), committed to mainline. Will go in 4.6.3 too. Thanks, Paolo. /// 2011-10-27 Richard B. Kreckel krec...@ginac.de Paolo Carlini

Re: Go patch committed: Implement new syscall package

2011-10-27 Thread Rainer Orth
Ian, I committed this patch which should fix this problem. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. thanks, but this is not enough: nawk: syntax error at source line 173 context is ([^ ]*)$, cparam) == 0) { nawk: illegal statement at source line 173 nawk:

Re: [C++ Patch / RFC] PR 50870

2011-10-27 Thread Paolo Carlini
Hi, Let me know if you need additional details, or what else. How is the template case failing? Some preliminary notes, maybe you can already make some sense out of this, more later, if you like: Thus we have this testcase: template class V struct impl { template class T static T

Re: [PATCH] Mechanical renaming in ipa-prop.c

2011-10-27 Thread Jan Hubicka
Hi, I've worked with the parameter-has-not-been-modified mechanism in ipa-prop.c after not seeing for quite some time and found the original infos and temporary parm_infos confusing. Thus I at least renamed all the parm_infos (which are deallocated after the analysis ends and which have

GCC 4.7.0 Status Report (2011-10-27), Stage 1 will end Nov 7th

2011-10-27 Thread Richard Guenther
Status == The GCC trunk is still in stage1. Stage1 will last until Nov 7th (including, use your timezone to your advantage) after which we will have been in stage1 for nearth 8 months. In stage3 the trunk will be open for general bugfixing, no new features will be accepted. Now is time to

[PATCH] Fix PR50731

2011-10-27 Thread Richard Guenther
We failed to handle the case of a scalar shift operand in do_binop. Bootstrapped and tested on x86_64-unknown-linux-gnu, applied. Richard. 2010-10-27 Richard Guenther rguent...@suse.de PR middle-end/50731 * tree-vect-generic.c (do_binop): Handle scalar operands. Index:

[PATCH i386] PR47698 no CMOV for volatile mem

2011-10-27 Thread Sergey Ostanevich
Hi! Here's a patch for PR47698, which is about CMOV should not be generated for memory address marked as volatile. Successfully bootstrapped and passed make check on x86_64-unknown-linux-gnu. Is it Ok? regards, Sergos /gcc 2011-10-27 Sergey Ostanevich PR rtl-optimization/47698

c6x.c warning fixes

2011-10-27 Thread Bernd Schmidt
This fixes a few warnings when building c6x.c. Committed. Bernd Index: gcc/ChangeLog === --- gcc/ChangeLog (revision 180564) +++ gcc/ChangeLog (working copy) @@ -1,3 +1,10 @@ +2011-10-24 Bernd Schmidt

Re: [C++ Patch / RFC] PR 50870

2011-10-27 Thread Jason Merrill
Looks like qualified_name_lookup_error (object_type, tmpl, member, input_location); is passing the wrong first argument; the scope argument should be the same as we passed to lookup_qualified_name. Jason

Re: [C++ Patch / RFC] PR 50870

2011-10-27 Thread Paolo Carlini
Hi, Looks like qualified_name_lookup_error (object_type, tmpl, member, input_location); is passing the wrong first argument; the scope argument should be the same as we passed to lookup_qualified_name. Ok, thanks, I'll work

Re: [C++ Patch / RFC] PR 50870

2011-10-27 Thread Jason Merrill
On 10/27/2011 08:57 AM, Paolo Carlini wrote: Ok, thanks, I'll work more on this later today. Then, if we fix that we don't error out at all, right? Because this is a reject valid, AFAIK. In that case, lookup_qualified_name shouldn't be returning error_mark_node. Jason

Re: Reload related segfaults

2011-10-27 Thread Iain Sandoe
On 27 Oct 2011, at 11:33, Eric Botcazou wrote: The crash is in find_valid_class() called from push_reload(), via this code block around line 1184 of reload.c: enum reg_class in_out_class = find_valid_class (outmode, GET_MODE (SUBREG_REG (out)),

Re: [PATCH] Pass through jump functions for addressable (scalar) parameters

2011-10-27 Thread Richard Guenther
On Wed, Oct 26, 2011 at 8:25 PM, Martin Jambor mjam...@suse.cz wrote: Hi, Honza requested that we do attempt to produce pass-through jump functions even when the actual formal parameter that is being passed on is addressable - provided that we can prove it has not changed value, of course.  

Re: [v3] Fix libstdc++/50880

2011-10-27 Thread Gabriel Dos Reis
On Thu, Oct 27, 2011 at 6:02 AM, Paolo Carlini paolo.carl...@oracle.com wrote: Hi, tested x86_64-linux (with _GLIBCXX_USE_C99_COMPLEX_TR1 manually set to zero for the affected function), committed to mainline. Will go in 4.6.3 too. Hmm, why is the test of the form x 0.0, and not testing the

fwprop: fix REG_DEAD notes rendered incorrect

2011-10-27 Thread Alexandre Oliva
fwprop may propagate a SET_SRC that contains the last use of a REG to a later point, but it will leave the REG_DEAD note in place, even though it is no longer correct. I noticed this while investigating PR50826: the initialization of the internal_arg_pointer has a REG_DEAD note for %r29, but even

Re: [v3] Fix libstdc++/50880

2011-10-27 Thread Paolo Carlini
Hi, On Thu, Oct 27, 2011 at 6:02 AM, Paolo Carlini paolo.carl...@oracle.com wrote: Hi, tested x86_64-linux (with _GLIBCXX_USE_C99_COMPLEX_TR1 manually set to zero for the affected function), committed to mainline. Will go in 4.6.3 too. Hmm, why is the test of the form x 0.0, and not

Re: [v3] Fix libstdc++/50880

2011-10-27 Thread Paolo Carlini
Hi again, Hmm, why is the test of the form x 0.0, and not testing the sign of x? Actually, we can as well use the std::abs, no? Paolo

Re: Go patch committed: Update Go library

2011-10-27 Thread Rainer Orth
Ian, This patch updates the Go library to the most recent weekly release. I think the only potential portability issues here are the use of the ipv6_mreq struct. I'm not entirely sure the new exp/terminal package is portable, but it might be. the only issue I've found on Solaris is the use

Re: GCC 4.7.0 Status Report (2011-10-27), Stage 1 will end Nov 7th

2011-10-27 Thread Uros Bizjak
Hello! The GCC trunk is still in stage1. Stage1 will last until Nov 7th (including, use your timezone to your advantage) after which we will have been in stage1 for nearth 8 months. In stage3 the trunk will be open for general bugfixing, no new features will be accepted. There is a patch

Re: [C++ Patch / RFC] PR 50870

2011-10-27 Thread Paolo Carlini
Hi On 10/27/2011 08:57 AM, Paolo Carlini wrote: Ok, thanks, I'll work more on this later today. Then, if we fix that we don't error out at all, right? Because this is a reject valid, AFAIK. In that case, lookup_qualified_name shouldn't be returning error_mark_node. Yes, I suspected that.

Re: fwprop: fix REG_DEAD notes rendered incorrect

2011-10-27 Thread Eric Botcazou
fwprop may propagate a SET_SRC that contains the last use of a REG to a later point, but it will leave the REG_DEAD note in place, even though it is no longer correct. I noticed this while investigating PR50826: the initialization of the internal_arg_pointer has a REG_DEAD note for %r29, but

fix incorrect debug temp added by df-problems

2011-10-27 Thread Alexandre Oliva
pr43165.c -Os -g exercises a bug in df-problems WRT the introduction of debug temps. After pro_and_epilogue, the function was optimized to this: push bp mov bp,sp # debug insn referencing bp pop bp I don't know why we bother to preserve and set up bp, it's not used in nondebug insns (and even

[PATCH] Fix PR50876

2011-10-27 Thread Richard Guenther
This should fix PR50876, failure to properly separate switches and their arguments from the LTO driver. It also corrects one issue with counting arguments (causing us to drop the last switch or switch argument). It also re-writes the code to use an obstack for accumulating argv for the invoked

[PATCH, SMS] Fix marking of SMSed loops as BB_DISABLE_SCHEDULE

2011-10-27 Thread Revital Eres
Hello, The attach patch fixes the current marking of SMS loops to prevent further scheduling as follows: it marks *all* the loop's bbs with BB_DISABLE_SCHEDULE which prevents them from been scheduled later. (with the current implementation if the loop has non empty latch then it will be

Re: [v3] Fix libstdc++/50880

2011-10-27 Thread Gabriel Dos Reis
On Thu, Oct 27, 2011 at 8:19 AM, Paolo Carlini pcarl...@gmail.com wrote: Hi, On Thu, Oct 27, 2011 at 6:02 AM, Paolo Carlini paolo.carl...@oracle.com wrote: Hi, tested x86_64-linux (with _GLIBCXX_USE_C99_COMPLEX_TR1 manually set to zero for the affected function), committed to mainline.

Re: [v3] Fix libstdc++/50880

2011-10-27 Thread Gabriel Dos Reis
On Thu, Oct 27, 2011 at 8:21 AM, Paolo Carlini pcarl...@gmail.com wrote: Hi again, Hmm, why is the test of the form x 0.0, and not testing the sign of x? Actually, we can as well use the std::abs, no? Paolo The point of using sign is so that signed zero is not mischaracterized,

Re: Use of vector instructions in memmov/memset expanding

2011-10-27 Thread Jan Hubicka
Hi, sorry for delay with the review. This is my first pass through the backend part, hopefully someone else will do the middle end bits. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 2c53423..d7c4330 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -561,10

Re: [v3] Fix libstdc++/50880

2011-10-27 Thread Paolo Carlini
Hi, I am surprised by your comment. You do not care and that is why you are eager to commit the patch without checking first with fellow area maintainers? Yes, probably my comment wan't clear enough: my point was that I cannot spend more time on this issue. I'm convinced, I may be wrong,

Re: [v3] Fix libstdc++/50880

2011-10-27 Thread Gabriel Dos Reis
On Thu, Oct 27, 2011 at 10:19 AM, Paolo Carlini pcarl...@gmail.com wrote: Hi, I am surprised by your comment.  You do not care and that is why you are eager to commit the patch without checking first with fellow area maintainers? Yes, probably my comment wan't clear enough: my point was

[PATCH, i386]: FIX PR50875, -O3 and -mavx lead to internal compiler error in find_reloads

2011-10-27 Thread Uros Bizjak
Hello! Apparently, reload does not like matching register alternatives in *avx_unpcklpd256. Attached patch removes this problematic alternative and generates vunpcklpd insn instead, since the later instruction has the same length, latency, uops, etc as vmovddup while giving much more freedom to

Re: fwprop: fix REG_DEAD notes rendered incorrect

2011-10-27 Thread Alexandre Oliva
On Oct 27, 2011, Eric Botcazou ebotca...@adacore.com wrote: fwprop may propagate a SET_SRC that contains the last use of a REG to a later point, but it will leave the REG_DEAD note in place, even though it is no longer correct. I noticed this while investigating PR50826: the initialization

Re: tree-ssa-strlen vs. zero-length strings

2011-10-27 Thread Ian Lance Taylor
Jakub Jelinek ja...@redhat.com writes: On Wed, Oct 26, 2011 at 10:22:21PM -0700, Ian Lance Taylor wrote: I don't think it is possible to trigger this using C because I don't think it is possible to have a zero-length STRING_CST in C. Ugh. I think the following should work, after all it

Re: Go patch committed: Update Go library

2011-10-27 Thread Uros Bizjak
Hello! This patch updates the Go library to the most recent weekly release. I think the only potential portability issues here are the use of the ipv6_mreq struct. I'm not entirely sure the new exp/terminal package is portable, but it might be. There are still problems with EpollEvent

Re: [PATCH, i386]: FIX PR50875, -O3 and -mavx lead to internal compiler error in find_reloads

2011-10-27 Thread Steve Kargl
On Thu, Oct 27, 2011 at 06:06:09PM +0200, Uros Bizjak wrote: I would kindly ask someone fluent in fortran to construct a compile-time testcase from the PR [1], that will correctly exercise the fix on x86 with -O3 -mavx options and immortalize the testcase in gfortran testsuite. How's the

Re: Go patch committed: Update Go library

2011-10-27 Thread Ian Lance Taylor
Rainer Orth r...@cebitec.uni-bielefeld.de writes: the only issue I've found on Solaris is the use of pthread_yield, which doesn't exist even on Solaris 11. The following patch checks for this, and falls back to thr_yield if available. Thanks--but is sched_yield available? I realized that I

Re: [PATCH, i386]: FIX PR50875, -O3 and -mavx lead to internal compiler error in find_reloads

2011-10-27 Thread Uros Bizjak
On Thu, Oct 27, 2011 at 6:45 PM, Steve Kargl s...@troutmask.apl.washington.edu wrote: On Thu, Oct 27, 2011 at 06:06:09PM +0200, Uros Bizjak wrote: I would kindly ask someone fluent in fortran to construct a compile-time testcase from the PR [1], that will correctly exercise the fix on x86

Re: Go patch committed: Update Go library

2011-10-27 Thread Rainer Orth
Ian Lance Taylor i...@google.com writes: Thanks--but is sched_yield available? I realized that I misread the man page; it looks like sched_yield is more portable than pthread_yield. It is, but before Solaris 11 it only lives in librt. Rainer --

[PATCH] Miscompilation of __attribute__((constructor)) functions.

2011-10-27 Thread Paul Brook
Patch below fixes a miscompilation observed whem building uclibc libpthread on a mips-linux system. The story start with the ipa-split optimization, which turns: void fn() { if (cond) { DO_STUFF; } } into: static void fn_helper() { DO_STUFF; } void fn() { if (cond)

[Patch,AVR]: Support -maccumulate-args option

2011-10-27 Thread Georg-Johann Lay
This is support of a new option -maccumulate-args that implements ACCUMULATE_OUTGOING_ARGS as proposed by Richard. As 4.7 will be released very soon, I'd like to supply the documentation part later and use the remaining stage I time for extension/improvements. The tests ran 4 times with either

RE: [Patch,AVR]: Support -maccumulate-args option

2011-10-27 Thread Weddington, Eric
-Original Message- From: Georg-Johann Lay Sent: Thursday, October 27, 2011 11:26 AM To: gcc-patches@gcc.gnu.org Cc: Richard Henderson; Weddington, Eric; Denis Chertykov Subject: [Patch,AVR]: Support -maccumulate-args option This is support of a new option -maccumulate-args that

[PATCH, C++, Committed] Obvious comment typo fix

2011-10-27 Thread Dodji Seketeli
Hello, I have committed the obvious cleanup below for a typo on a comment, into trunk. gcc/cp/ * cp-tree.h (DECL_DECLARES_TYPE_P): Fix comment. diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index cc12d15..7ff1491 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -3625,7

Re: [Patch,AVR]: Support -maccumulate-args option

2011-10-27 Thread Georg-Johann Lay
Weddington, Eric schrieb: -Original Message- From: Georg-Johann Lay Sent: Thursday, October 27, 2011 11:26 AM To: gcc-patches@gcc.gnu.org Cc: Richard Henderson; Weddington, Eric; Denis Chertykov Subject: [Patch,AVR]: Support -maccumulate-args option This is support of a new option

Re: [C++-11] User defined literals

2011-10-27 Thread Ed Smith-Rowland
On 10/26/2011 03:38 PM, Jason Merrill wrote: On 10/26/2011 02:00 AM, Ed Smith-Rowland wrote: The patch was bootstrapped and regtested on x86_64-linux-gnu. Really? I ran into a warning about the unused suffix parameter to interpret_integer. So I've fixed that error. I also added a couple

Re: Reload related segfaults

2011-10-27 Thread Eric Botcazou
Tentative fix attached, it should restore the old behavior for the cases where everything was working fine before. I'm going to give it some testing. PR rtl-optimization/46603 * reload.c (push_reload): In the out case, restore previous behavior for subregs that don't

[C++ PATCH] PR c++/45114 - Support alias templates

2011-10-27 Thread Dodji Seketeli
Hello, This patch adds support for the alias-declaration feature of the c++11 specification, introduced by the paper N2258[1] and voted into in the standard. It's a derivative work of a preliminary patch attached by Jason Merrill to PR C++/45114[2]. alias-declaration introduces a new syntax for

Re: [PATCH] Pass through jump functions for addressable (scalar) parameters

2011-10-27 Thread Martin Jambor
Hi, On Thu, Oct 27, 2011 at 03:07:10PM +0200, Richard Guenther wrote: On Wed, Oct 26, 2011 at 8:25 PM, Martin Jambor mjam...@suse.cz wrote: Hi, 2011-10-26  Martin Jambor  mjam...@suse.cz        * ipa-prop.c (mark_modified): Moved up in the file.        

[PATCH] Some -masm=intel fixes

2011-10-27 Thread Jakub Jelinek
Hi! While testing other patches also with -masm=intel, I've noticed that several insns output wrong mem sizes. The following patch fixes what I found. %w1/%k1/%q1 will still %xmmN if it is a register and for ATT syntax will print memory as normally, but for -masm=intel it will print WORD

Re: [PATCH] Some -masm=intel fixes

2011-10-27 Thread Uros Bizjak
On Thu, Oct 27, 2011 at 9:14 PM, Jakub Jelinek ja...@redhat.com wrote: While testing other patches also with -masm=intel, I've noticed that several insns output wrong mem sizes.  The following patch fixes what I found.  %w1/%k1/%q1 will still %xmmN if it is a register and for ATT syntax will

Re: [PATCH] Some -masm=intel fixes

2011-10-27 Thread H.J. Lu
On Thu, Oct 27, 2011 at 12:17 PM, Uros Bizjak ubiz...@gmail.com wrote: On Thu, Oct 27, 2011 at 9:14 PM, Jakub Jelinek ja...@redhat.com wrote: While testing other patches also with -masm=intel, I've noticed that several insns output wrong mem sizes.  The following patch fixes what I found.  

Re: [PATCH i386] PR47698 no CMOV for volatile mem

2011-10-27 Thread Uros Bizjak
Hello! Here's a patch for PR47698, which is about CMOV should not be generated for memory address marked as volatile. Successfully bootstrapped and passed make check on x86_64-unknown-linux-gnu. PR rtl-optimization/47698 * config/i386/i386.c (ix86_expand_int_movcc) prevent

[PATCH] Add vec_pack_sfix_trunc_v4df and vec_pack_sfix_v4df

2011-10-27 Thread Jakub Jelinek
Hi! This patch adds vec_pack_sfix_trunc_v4df and vec_pack_sfix_v4df expanders, which allows e.g. f1 in the testcases to be vectorized using 32-byte vectors, even with -mavx. Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2011-10-27 Jakub Jelinek ja...@redhat.com

Re: [C++-11] User defined literals

2011-10-27 Thread Ed Smith-Rowland
On 10/26/2011 03:38 PM, Jason Merrill wrote: On 10/26/2011 02:00 AM, Ed Smith-Rowland wrote: The patch was bootstrapped and regtested on x86_64-linux-gnu. Really? I ran into a warning about the unused suffix parameter to interpret_integer. So I've fixed that error. I also added a couple of

Re: [PATCH] Add vec_pack_sfix_trunc_v4df and vec_pack_sfix_v4df

2011-10-27 Thread Richard Henderson
On 10/27/2011 12:31 PM, Jakub Jelinek wrote: * config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2, vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders. (*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns. * gcc.target/i386/sse2-cvt-1.c: New test.

[PATCH] Don't ICE on long long shifts in vectorizable_shift

2011-10-27 Thread Jakub Jelinek
Hi! With the patch I'm going to post momentarily which adds vlshrv{4,2}di and vashlv{4,2}di patterns for -mavx2 vectorizable_shift ICEs, because the frontends for long_long_var1 long_long_var2 emit long_long_var1 (int) long_long_var2 and vectorizable_shift isn't prepared to handle type

Re: [C++-11] User defined literals

2011-10-27 Thread Jason Merrill
On 10/27/2011 03:32 PM, Ed Smith-Rowland wrote: + if (TREE_CODE (TREE_TYPE (decl)) != LANG_TYPE) +argtypes = TYPE_ARG_TYPES (TREE_TYPE (decl)); If you have multiple overloaded operator _foo, you need to iterate over them looking for the one (or ones, in the case of numeric literals) you

[PATCH] Cleanup AVX2 vector/vector shifts

2011-10-27 Thread Jakub Jelinek
Hi! This patch cleans up the vector/vector shifts, there is no need to write them with lots of vec_selects/vec_concats etc. Additionally, it hooks them up into the standard vlshrmode3, vashlmode3 and vashrmode3 expanders so that the vectorizer can use them. The V16QImode and V8HImode expanders

Re: [PATCH, devirtualization] Detect the new type in type change detection

2011-10-27 Thread Martin Jambor
Hi, On Thu, Oct 27, 2011 at 11:06:02AM +0200, Richard Guenther wrote: On Thu, Oct 27, 2011 at 1:22 AM, Martin Jambor mjam...@suse.cz wrote: Hi, I've been asked by Maxim Kuvyrkov to revive the following patch which has not made it to 4.6.  Currently, when type based devirtualization

Re: [PATCH] Cleanup AVX2 vector/vector shifts

2011-10-27 Thread Uros Bizjak
On Thu, Oct 27, 2011 at 9:50 PM, Jakub Jelinek ja...@redhat.com wrote: Hi! This patch cleans up the vector/vector shifts, there is no need to write them with lots of vec_selects/vec_concats etc. Additionally, it hooks them up into the standard vlshrmode3, vashlmode3 and vashrmode3 expanders

Re: [C++ PATCH] PR c++/45114 - Support alias templates

2011-10-27 Thread Gabriel Dos Reis
On Thu, Oct 27, 2011 at 2:10 PM, Dodji Seketeli do...@redhat.com wrote: Hello, This patch adds support for the alias-declaration feature of the c++11 specification, introduced by the paper N2258[1] and voted into in the standard.  It's a derivative work of a preliminary patch attached by

Re: [C++ PATCH] PR c++/45114 - Support alias templates

2011-10-27 Thread Jason Merrill
On 10/27/2011 03:10 PM, Dodji Seketeli wrote: +/* Setter for the TYPE_DECL_ALIAS_P proprety above. */ +#define SET_TYPE_DECL_ALIAS_P(NODE, VAL) \ + (DECL_LANG_FLAG_6 (TYPE_DECL_CHECK (NODE)) = (VAL)) This seems unnecessary. +#define TYPE_DECL_NAMES_ALIAS_TEMPLATE_P(NODE)

Re: [PATCH] Add capability to run several iterations of early optimizations

2011-10-27 Thread Matt
Then you'd have to analyze the compile-time impact of the IPA splitting on its own when not iterating. ?Then you should look at what actually was the optimizations that were performed that lead to the improvement (I can see some indirect inlining happening, but everything else would be a bug in

[trans-mem] fixup OBJ_TYPE_REF removable correctly

2011-10-27 Thread Aldy Hernandez
Ho hum, more patches on our way to mergeability. This seems to be more fallout from the last merge. There's an apparent discrepancy between what we think is valid gimple in ipa_tm_insert_gettmclone_call() and what verify_gimple_call() believes is true. This, along with other patches I have

Re: [trans-mem] fix problems with same body aliases

2011-10-27 Thread Richard Henderson
On 10/26/2011 02:15 PM, Aldy Hernandez wrote: * trans-mem.c (ipa_tm_execute): Do not include aliases in tm_callees. (callback_mark_needed): Set analyzed bit. Ok. r~

[PATCH, rs6000] Update Power7 scheduling

2011-10-27 Thread Pat Haugen
The following patch fixes some issues with the Power7 scheduling description. The patch is neutral on cpu2006 (was actually hoping to see some improvements, but it's still the right thing to do since it more accurately describes the hardware). Bootstrap/regtest on powerpc64-linux with no new

Re: [PATCH] PR49720, infinite recursion in RTX simplification

2011-10-27 Thread Eric Botcazou
2011-10-27 Chung-Lin Tang clt...@codesourcery.com PR rtl-optimization/49720 * simplify-rtx.c (simplify_relational_operation_1): Detect infinite recursion condition in (eq/ne (plus x cst1) cst2) simplifies to (eq/ne x (cst2 - cst1)) case. testsuite/ *

[trans-mem] Fix tm_region association of blocks with the over label.

2011-10-27 Thread Torvald Riegel
This patch fixes the detection of transactions regions for transactions that have __transaction_cancel statements. The block that has the over label to which an aborted transaction jumps does not belong to this transaction, but to the enclosing region. The included testcase would fail with prior

Re: [PATCH] Add capability to run several iterations of early optimizations

2011-10-27 Thread Maxim Kuvyrkov
Richard, Just as Matt posted his findings about the effect of iterating early optimizations, I've got the new patch ready. This patch is essentially a complete rewrite and addresses the comments you made. On 18/10/2011, at 9:56 PM, Richard Guenther wrote: If we'd want to iterate early

Re: [C++ Patch / RFC] PR 50870

2011-10-27 Thread Paolo Carlini
Hi again, On 10/27/2011 08:57 AM, Paolo Carlini wrote: Ok, thanks, I'll work more on this later today. Then, if we fix that we don't error out at all, right? Because this is a reject valid, AFAIK. In that case, lookup_qualified_name shouldn't be returning error_mark_node. A little more

[PATCH] PR fortran/50573 -- Fix checking of dshift{lr} arguments

2011-10-27 Thread Steve Kargl
The attached patch tightens the checking of the arguments of the dshiftl and dshiftr argument. It also does a kind type conversion when either I or J is a BOZ to the kind type of the non-BOZ I or J. OK for trunk? 2011-10-27 Steven G. Kargl ka...@gcc.gnu.org PR fortran/50573

[Patch, fortran] [01/66] inline sum and product: Prepare gfc_trans_preloop_setup

2011-10-27 Thread Mikael Morin
2011-10-19 Mikael Morin mik...@gcc.gnu.org * trans-array.c (gfc_trans_preloop_setup): Move array reference initialisation earlier. Factor subsequent array references. diff --git a/trans-array.c b/trans-array.c index 3472804..4b21476 100644 --- a/trans-array.c +++ b/trans-array.c

[Patch, fortran] [01..06/66] inline sum and product: Prepare gfc_trans_preloop_setup

2011-10-27 Thread Mikael Morin
This is a 6 steps program to update gfc_trans_preloop_setup. gfc_trans_preloop_setup appeared completely rewritten. These step by step patches show that it is not the case. Combined patch attached here. OK? diff --git a/trans-array.c b/trans-array.c index

[Patch, fortran] [04/66] inline sum and product: Prepare gfc_trans_preloop_setup

2011-10-27 Thread Mikael Morin
2011-10-19 Mikael Morin mik...@gcc.gnu.org * trans-array.c (gfc_trans_preloop_setup): Remove redundant assertion. Special case outermost loop. diff --git a/trans-array.c b/trans-array.c index e3134f5..f5e30ae 100644 --- a/trans-array.c +++ b/trans-array.c @@ -2867,7 +2867,10 @@

[Patch, fortran] [05/66] inline sum and product: Prepare gfc_trans_preloop_setup

2011-10-27 Thread Mikael Morin
This is for consistency. As dim == dimen-1 means we are in the outermost loop, we should check against the loop dimension, not the array dimension. An assertion is added to check that it is in fact the same. OK? 2011-10-19 Mikael Morin mik...@gcc.gnu.org * trans-array.c

[Patch, fortran] [06/66] inline sum and product: Prepare gfc_trans_preloop_setup

2011-10-27 Thread Mikael Morin
2011-10-19 Mikael Morin mik...@gcc.gnu.org * trans-array.c (gfc_trans_preloop_setup): Move common code... (add_array_offset): ...into that new function. diff --git a/trans-array.c b/trans-array.c index 476978e..f615e4e 100644 --- a/trans-array.c +++ b/trans-array.c @@ -2830,6

[Patch, fortran] [08/66] inline sum and product: Preliminary cleanups: Remove redundant condition.

2011-10-27 Thread Mikael Morin
As the first line of context shows, if the first condition is false, the second is false too. Thus, the first condition is useless. OK? 2011-10-19 Mikael Morin mik...@gcc.gnu.org * trans-array.c (get_array_ref_dim): Remove redundant condition. diff --git a/trans-array.c b/trans-array.c

[Patch, fortran] [09/66] inline sum and product: Preliminary cleanups: Assertify condition.

2011-10-27 Thread Mikael Morin
2011-10-19 Mikael Morin mik...@gcc.gnu.org * trans-array.c (gfc_trans_preloop_setup): Assertify one condition. diff --git a/trans-array.c b/trans-array.c index 5500ec4..8359af2 100644 --- a/trans-array.c +++ b/trans-array.c @@ -2885,8 +2885,7 @@ gfc_trans_preloop_setup (gfc_loopinfo *

[Patch, fortran] [10/66] inline sum and product: Preliminary cleanups: Use array's instead of loop's dimensions.

2011-10-27 Thread Mikael Morin
2011-10-19 Mikael Morin mik...@gcc.gnu.org * trans-array.c (gfc_conv_ss_startstride): Access array bounds along array dimensions instead of loop dimensions. diff --git a/trans-array.c b/trans-array.c index 8359af2..f4d8a85 100644 --- a/trans-array.c +++ b/trans-array.c @@

[Patch, fortran] [07/66] inline sum and product: Preliminary cleanups: Useless coarray code removal.

2011-10-27 Thread Mikael Morin
This is a followup to my recent coarray/scalarizer changes, especially that one cleaning-up gfc_walk_variable_expr/gfc_walk_array_ref: http://gcc.gnu.org/ml/fortran/2011-09/msg00072.html Scalar coarrays are not handled as AR_ELEMENT in the scalarizer. Thus, no need to handle coarrays here. OK?

[Patch, fortran] [11/66] inline sum and product: Preliminary cleanups: Skip temporary case.

2011-10-27 Thread Mikael Morin
We can't use temporaries to guess loop dimensions, as temporaries' bounds are calculated from loop dimensions. In the union: union { struct { ... } scalar; struct { ... } temp; struct gfc_ss_info info } data;

[Patch, fortran] [12/66] inline sum and product: Preliminary cleanups: Stop loop before end marker.

2011-10-27 Thread Mikael Morin
We should not be writing to gfc_ss_terminator. It is working without this patch because gfc_ss_terminator's next pointer is NULL, so the loop stops just after it, and because we are writing zero to gfc_ss_terminator, but it is already all zeros anyway. OK? 2011-10-19 Mikael Morin

[Patch, fortran] [13..19/66] inline sum and product: Interfaces changes

2011-10-27 Thread Mikael Morin
This is another preliminary change, to update function interfaces requiring it, so that afterwards structures can be changed internally without impacting function interfaces. The main reason for these changes is that gfc_ss_info's dim and dimen fields are to be moved to struct gfc_ss. Thus

[Patch, fortran] [14/66] inline sum and product: Interfaces changes: gfc_trans_array_bound_check, gfc_conv_array_index_offset

2011-10-27 Thread Mikael Morin
The next patch is going to need array expression (available through gf_ss) instead of just the array descriptor in gfc_trans_array_bound_check. This makes the gfc_ss struct available as argument. This requires an update of gfc_conv_array_index_offset too. Both functions are static, they lose

[Patch, fortran] [15/66] inline sum and product: Interfaces changes: obtain name more simply

2011-10-27 Thread Mikael Morin
This is a follow-up to the previous patch. It symplifies name obtention so that later we can change structs with less pain. :-) OK? 2011-10-19 Mikael Morin mik...@gcc.gnu.org * trans-array.c (gfc_trans_array_bound_check): Use ss argument to get name. diff --git a/trans-array.c

[Patch, fortran] [16/66] inline sum and product: Interfaces changes: gfc_trans_create_temp_array

2011-10-27 Thread Mikael Morin
gfc_trans_create_temp_array uses dimensions heavily, and dimensions are to be moved from gfc_ss_info to gfc_ss. To have them still available in gfc_trans_create_temp_array, the gfc_ss_info argument should be a gfc_ss. OK? 2011-10-19 Mikael Morin mik...@gcc.gnu.org * trans-array.h

[Patch, fortran] [17/66] inline sum and product: Interfaces changes: gfc_set_vector_loop_bounds

2011-10-27 Thread Mikael Morin
Same as previous patch, gfc_set_vector_loop_bounds uses dimensions, and thus needs a gfc_ss struct as argument. gfc_ prefix removed along the way. OK? 2011-10-19 Mikael Morin mik...@gcc.gnu.org * trans-array.c (gfc_set_vector_loop_bounds, set_vector_loop_bounds): Rename the

[Patch, fortran] [18/66] inline sum and product: Interfaces changes: get_array_ref_dim

2011-10-27 Thread Mikael Morin
Same as previous patch, get_array_ref_dim uses dimensions and thus needs a gfc_ss struct as argument. OK? 2011-10-19 Mikael Morin mik...@gcc.gnu.org * trans-array.c (get_array_ref_dim): Change argument type and name. Obtain previous argument from the new argument in the body.

  1   2   >