Re: [patch] [4.7] revisit PR middle-end/56848 for 4.7.4

2013-04-19 Thread Richard Biener
On Thu, Apr 18, 2013 at 6:25 PM, Matthias Klose d...@ubuntu.com wrote: revisit PR middle-end/56848 for 4.7.4. as outlined in the bug report, this reapplies the patch backed out for the 4.7.3 release and backports r190733. No regressions in the testsuite on x86_64-linux-gnu compared to the 4.7.3

Re: [patch rfa] Fix PCH test failure when -fdebug-types-section is enabled

2013-04-19 Thread Richard Biener
On Fri, Apr 19, 2013 at 12:05 AM, Cary Coutant ccout...@google.com wrote: If I turn on -fdebug-types-section, I get a failure in the PCH tests: FAIL: g++.dg/pch/system-2.C -O2 -g assembly comparison This appears to be the result of differences in hash table traversal during debug output

Re: [PATCH, PR 10474] Shedule pass_cprop_hardreg before pass_thread_prologue_and_epilogue

2013-04-19 Thread Richard Biener
On Fri, Apr 19, 2013 at 1:08 AM, Martin Jambor mjam...@suse.cz wrote: Hi, On Fri, Apr 19, 2013 at 12:37:58AM +0200, Steven Bosscher wrote: On Fri, Apr 19, 2013 at 12:09 AM, Martin Jambor wrote: I also have not tried scheduling the hard register copy propagation pass twice and measuring the

[PATCH, PR 56988] Honor by_ref in IPA-CP transformation phase

2013-04-19 Thread Martin Jambor
Hi, the following patch fixes PR 56988 by distinguishing between by reference and by value aggregate replacement value. While it is OK to ignore the difference in the last phases of propagation/decision making because any discrepancies have already been weeded out there, the testcase clearly

Re: [PATCH, AArch64] Update definitions of _FP_W_TYPE and _FP_WS_TYPE in libgcc to be based on 'long long'

2013-04-19 Thread Marcus Shawcroft
Looks OK to me. /Marcus On 18 April 2013 22:10, Yufeng Zhang yufeng.zh...@arm.com wrote: Hi, The patch changes _FP_W_TYPE and _FP_WS_TYPE in AArch64 libgcc to be based on 'long long', making them ILP32-friendly. x86_64 has the definitions. OK for the trunk? Thanks, Yufeng libgcc/

[PATCH, ARM] Fix PR56797

2013-04-19 Thread Greta Yorsh
Fix PR56797 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56797 The problem is that peephole optimizer thinks it can generate an ldm, but the pattern for ldm no longer matches, because after r188738 it requires that if one of the destination registers is SP then the base register must be SP, and

Re: [C++11][4.9] Add missing REDUC_PLUS_EXPR case to potential_constant_expression_1.

2013-04-19 Thread James Greenhalgh
Hi, I still think getting rid of TARGET_FOLD_BUILTIN and replacing it with TARGET_FOLD_STMT that only operates on GIMPLE is the way to go. Would that look something like the attached? (The patch isn't polished, but hacks enough together to function). In these patches we add TARGET_FOLD_STMT

Re: [patch, fortran] Really fix PR 56782

2013-04-19 Thread Mikael Morin
Le 17/04/2013 19:12, Thomas Koenig a écrit : OK if accompanied by a ChangeLog entry and my test cases, as well :-) This is what I have just committed. 4.8 will follow in a few days. Mikael Index: testsuite/gfortran.dg/array_constructor_45.f90

Re: [C++11][4.9] Add missing REDUC_PLUS_EXPR case to potential_constant_expression_1.

2013-04-19 Thread Richard Biener
On Fri, Apr 19, 2013 at 11:39 AM, James Greenhalgh james.greenha...@arm.com wrote: Hi, I still think getting rid of TARGET_FOLD_BUILTIN and replacing it with TARGET_FOLD_STMT that only operates on GIMPLE is the way to go. Would that look something like the attached? (The patch isn't

[PATCH] Fix PR57000

2013-04-19 Thread Richard Biener
This fixes PR57000 by updating virtual SSA form if necessary. Tested on x86_64-unknown-linux-gnu, applied. Richard. 2013-04-19 Richard Biener rguent...@suse.de PR tree-optimization/57000 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals. *

[Patch, fortran] PR 56981 Improve unbuffered unformatted performance

2013-04-19 Thread Janne Blomqvist
Hi, the attached patch improves the performance for unformatted and unbuffered files. Currently unbuffered unformatted really means that we don't buffer anything and use the POSIX I/O syscalls directly. With the patch, we use the buffer but flush it at the end of each I/O statement. (For

Re: [PATCH, PR 56718] Middle-end intraprocedural type-based devirtualization

2013-04-19 Thread Richard Biener
On Wed, Apr 17, 2013 at 5:59 PM, Martin Jambor mjam...@suse.cz wrote: Hi, this patch implements type-based devirtualization done intra-procedurally. This is normally done by the front-end except in cases when opportunities for this transformation are created by early-inlining. Because we

Re: [cxx-conversion] RFC - Helper types for building GIMPLE

2013-04-19 Thread Richard Biener
On Tue, 16 Apr 2013, Diego Novillo wrote: Thanks for the feedback, folks. I've removed the builder type and added some overloads to simplify the creation of gimple assignments. I have only added exactly the functions I needed to simplify a bit of gcc/asan.c. I plan to continue adding and

Re: [PATCH, ARM] Fix PR56797

2013-04-19 Thread Richard Earnshaw
On 19/04/13 10:34, Greta Yorsh wrote: Fix PR56797 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56797 The problem is that peephole optimizer thinks it can generate an ldm, but the pattern for ldm no longer matches, because after r188738 it requires that if one of the destination registers is SP

[PATCH, AArch64] Negate with Compare instruction

2013-04-19 Thread Hurugalawadi, Naveen
Hi, Please find attached the patch that implements Negate with Carry instruction for aarch64 target. Please review the same and let me know if there should be any modifications in the patch. Build and tested on aarch64-thunder-elf (using Cavium's internal simulator). No new regressions.

[ada] [patch] gnatlink's order of options interfers with --as-needed

2013-04-19 Thread Matthias Klose
The linux version of Build_Dynamic_Library passes all options and libraries in Options, which end up on the command line before the object files. So it looks like the signature of Build_Dynamic_Library should differentiate between options and libraries. Until it does, use the same approach as

Re: [ada] [patch] gnatlink's order of options interfers with --as-needed

2013-04-19 Thread Arnaud Charlet
Can you clarify what problem you are trying to solve (e.g. by providing a testcase, explaining what you are doing and you would expect)? Arno

Re: [ada] [patch] gnatlink's order of options interfers with --as-needed

2013-04-19 Thread Matthias Klose
Am 19.04.2013 14:14, schrieb Arnaud Charlet: Can you clarify what problem you are trying to solve (e.g. by providing a testcase, explaining what you are doing and you would expect)? from http://bugs.debian.org/680292 Gnatmake calls gcc -shared in a way incompatible with --as-needed. Gprbuild

Re: patch to fix constant math - 4th patch - the wide-int class - patch ping for the next stage 1

2013-04-19 Thread Richard Biener
On Tue, Apr 16, 2013 at 10:07 PM, Kenneth Zadeck zad...@naturalbridge.com wrote: Richard, I made major changes to wide-int along the lines you suggested. Each of the binary operations is now a template. There are 5 possible implementations of those operations, one for each of HWI, unsigned

[PATCH] Vectorizer load permutation TLC

2013-04-19 Thread Richard Biener
The following paves the way for more supported load permutations. I've split it off the patch supporting more permutation as that requires a load of surgery still :/ Bootstrapped and tested on x86_64-unknown-linux-gnu, applied. Richard. 2013-04-19 Richard Biener rguent...@suse.de *

Re: [PATCH, PR 10474] Shedule pass_cprop_hardreg before pass_thread_prologue_and_epilogue

2013-04-19 Thread Vladimir Makarov
On 13-04-19 4:21 AM, Richard Biener wrote: On Fri, Apr 19, 2013 at 1:08 AM, Martin Jambor mjam...@suse.cz wrote: Hi, On Fri, Apr 19, 2013 at 12:37:58AM +0200, Steven Bosscher wrote: On Fri, Apr 19, 2013 at 12:09 AM, Martin Jambor wrote: I also have not tried scheduling the hard register copy

[gomp4] Some progress on #pragma omp simd

2013-04-19 Thread Jakub Jelinek
Hi! I've committed the following patch to gomp4 branch. #pragma omp simd loops now are handled with all its clauses from parsing up to and including omp expansion, so should actually run correctly, though haven't added any runtime testcases yet. #pragma omp for simd is handled only partially,

Re: [PATCH, AArch64] Negate with Compare instruction

2013-04-19 Thread Richard Earnshaw
On 19/04/13 12:41, Hurugalawadi, Naveen wrote: Hi, Please find attached the patch that implements Negate with Carry instruction for aarch64 target. Please review the same and let me know if there should be any modifications in the patch. Build and tested on aarch64-thunder-elf (using Cavium's

[PATCH] Add explicit default constructors where required by the standard

2013-04-19 Thread Evgeniy Stepanov
Hi, according to n3242 8.5.6, If a program calls for the default initialization of an object of a const-qualified type T, T shall be a class type with a user-provided default constructor. This patches fixes 3 places in libstdc++ code where this requirement is violated. Please review. I don't

Re: [Patch, ARM] Enable libsanitizer

2013-04-19 Thread Christophe Lyon
On 18 April 2013 11:30, Christophe Lyon christophe.l...@linaro.org wrote: On 4 April 2013 14:19, Christophe Lyon christophe.l...@linaro.org wrote: ~/src/qemu/qemu-git/arm-linux-user/qemu-arm -cpu cortex-a9 -R 0 -L /home/lyon/src/GCC/builds/gcc-fsf-asan-arm-none-linux-gnueabihf/sysroot

Re: [PATCH] Add explicit default constructors where required by the standard

2013-04-19 Thread Jonathan Wakely
On 19 April 2013 15:42, Evgeniy Stepanov wrote: Hi, according to n3242 8.5.6, If a program calls for the default initialization of an object of a const-qualified type T, T shall be a class type with a user-provided default constructor. This patches fixes 3 places in libstdc++ code where

Re: [PATCH] Add explicit default constructors where required by the standard

2013-04-19 Thread Evgeniy Stepanov
Good point, thanks! Revised patch attached. On Fri, Apr 19, 2013 at 7:00 PM, Jonathan Wakely jwakely@gmail.com wrote: On 19 April 2013 15:42, Evgeniy Stepanov wrote: Hi, according to n3242 8.5.6, If a program calls for the default initialization of an object of a const-qualified type T,

Re: [PATCH, PR 10474] Shedule pass_cprop_hardreg before pass_thread_prologue_and_epilogue

2013-04-19 Thread Jeff Law
On 04/18/2013 05:08 PM, Martin Jambor wrote: Hi, On Fri, Apr 19, 2013 at 12:37:58AM +0200, Steven Bosscher wrote: On Fri, Apr 19, 2013 at 12:09 AM, Martin Jambor wrote: I also have not tried scheduling the hard register copy propagation pass twice and measuring the impact on compile times.

Re: [PATCH, PR 10474] Shedule pass_cprop_hardreg before pass_thread_prologue_and_epilogue

2013-04-19 Thread Jeff Law
On 04/18/2013 04:09 PM, Martin Jambor wrote: I did not because I did not think it would be substantially faster than running the pass as-is twice. I wasn't looking to improve compile-time performance, but from a standpoint of not losing optimizations. If we can show that a second pass does

C++ PATCH for core issue 941

2013-04-19 Thread Jason Merrill
The resolution of core 941 allows non-deleted specializations of deleted function templates. Tested x86_64-pc-linux-gnu, applying to trunk and 4.8. commit d64070bb7f98ecbf0f1bec46f0a5acb018b60ab1 Author: Jason Merrill ja...@redhat.com Date: Tue Apr 16 13:30:34 2013 +0100 DR 941 *

Re: [Patch, ARM] Enable libsanitizer

2013-04-19 Thread Konstantin Serebryany
On Fri, Apr 19, 2013 at 7:59 AM, Christophe Lyon christophe.l...@linaro.org wrote: On 18 April 2013 11:30, Christophe Lyon christophe.l...@linaro.org wrote: On 4 April 2013 14:19, Christophe Lyon christophe.l...@linaro.org wrote: ~/src/qemu/qemu-git/arm-linux-user/qemu-arm -cpu cortex-a9 -R 0

C++ PATCH to implement N3638 changes to return type deduction

2013-04-19 Thread Jason Merrill
There were a few changes requested to my return type deduction paper during review in Bristol; this patch implements those changes. Tested x86_64-pc-linux-gnu, applying to trunk. commit fd1e2aa05a014b59a800e5405fcb62eaef67e6f0 Author: Jason Merrill ja...@redhat.com Date: Mon Apr 15 22:27:33

[patch] Introduce #pragma GCC diagnostic off

2013-04-19 Thread Eric Botcazou
Hi, this patch implements the new #pragma GCC diagnostic off for the C family of compilers as well as for the Ada compiler. In fact the subject is slightly misleading as the main goal of the patch is to wire the diagnostic circuitry of the Ada front-end to that of the middle-end, thus

Re: [C++11][4.9] Add missing REDUC_PLUS_EXPR case to potential_constant_expression_1.

2013-04-19 Thread James Greenhalgh
Hi Richard, Thanks for your feedback. This does feel like a much nicer solution now. Yes, it looks basically ok. I'd probably restrict it to folding target builtins though - similar to what TARGET_FOLD_BUILTIN did. Exactly to not expose all stmts to the backends. That is, move the target

Re: [Patch, Fortran] PR56907 - do not 'pack' arrays passed to C_LOC

2013-04-19 Thread Janus Weil
Hi Tobias, Fortran 2008 supports C_LOC(array); if the argument is not simply contiguous, the current code adds a call to __gfortran_intrinsic_pack. The pack call shouldn't be there. Fortran 2008 demands that the actual argument is contiguous and intrinsic_pack copy creates a copy if the

patch to fix PR 56847

2013-04-19 Thread Vladimir Makarov
The following patch fixes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56847 Reload pass is lucky choosing alternative without offsettable memory in movti_internal pattern as this alternative for some reason has reject value less by one than alternative with offsettable memory.

Re: Fix std::pair std::is_copy_assignable behavior

2013-04-19 Thread François Dumont
On 04/17/2013 10:02 PM, Paolo Carlini wrote: Hi, On 4/17/13 8:43 PM, François Dumont wrote: On 04/17/2013 09:18 PM, Paolo Carlini wrote: On 4/17/13 8:10 PM, François Dumont wrote: Hi Here is an other proposal to fix std::is_copy_assignablestd::pair. Sorry, I'm still missing something

[google][4.7] Generate a label for the split cold function while using -freorder-blocks-and-partition

2013-04-19 Thread Sriraman Tallam
Hi, This patch generates labels for cold function parts that are split when using the option -freorder-blocks-and-partition. The cold label name is generated by suffixing .cold to the assembler name of the hot function. This is useful when getting back traces from gdb when the cold function

Re: patch to fix PR56999

2013-04-19 Thread Steven Bosscher
On Fri, Apr 19, 2013 at 5:58 AM, Vladimir Makarov wrote: The problem was in complicated interactions of coalescing and doing/undoing inheritance and assignment sub-passes through several iterations. One solution would be in modifying coalescing in order to take future actions in undoing

Re: [google][4.7] Generate a label for the split cold function while using -freorder-blocks-and-partition

2013-04-19 Thread Sriraman Tallam
Updated patch attached. Thanks Sri On Fri, Apr 19, 2013 at 1:43 PM, Sriraman Tallam tmsri...@google.com wrote: Hi, This patch generates labels for cold function parts that are split when using the option -freorder-blocks-and-partition. The cold label name is generated by suffixing .cold

Re: [patch] Fix PR middle-end/56474

2013-04-19 Thread Eric Botcazou
Maybe we should detect overflow as if the input and output were signed while computing an unsigned result. As far as I can see int_const_binop_1 does detect overflow as if operations were signed (it passes 'false' as uns to all double-int operations rather than TYPE_UNSIGNED). For example

Re: patch to fix PR56999

2013-04-19 Thread Vladimir Makarov
On 13-04-19 4:55 PM, Steven Bosscher wrote: On Fri, Apr 19, 2013 at 5:58 AM, Vladimir Makarov wrote: The problem was in complicated interactions of coalescing and doing/undoing inheritance and assignment sub-passes through several iterations. One solution would be in modifying coalescing in

Re: [Patch, Fortran] PR56907 - do not 'pack' arrays passed to C_LOC

2013-04-19 Thread Tobias Burnus
Janus Weil: What I don't quite understand is: @@ -6317,8 +6317,13 @@ conv_isocbinding_function (gfc_se *se, gfc_expr *expr) { if (arg-expr-rank == 0) gfc_conv_expr_reference (se, arg-expr); - else + else if (gfc_is_simply_contiguous (arg-expr, false))

Re: RFA: enable LRA for rs6000 [patch for WRF]

2013-04-19 Thread Vladimir Makarov
On 13-04-18 4:44 PM, Vladimir Makarov wrote: Tomorrow I am going to look at SPEC2006 dealII crash for 32-bit mode. LRA crashes on insn (insn 406 575 391 22 (set (reg:TF 35 3) (mem/u/c:TF (lo_sum:SI (reg:SI 7 7 [414]) (symbol_ref/u:SI (*.LC10) [flags 0x82])) [85 S16

Re: Fix std::pair std::is_copy_assignable behavior

2013-04-19 Thread Paolo Carlini
Hi, François Dumont frs.dum...@gmail.com ha scritto: Ok to commit ? No, it's definitely not Ok, we don't want to add std::is_copy_assignable specializations like this. Jon will send you more comments. Thanks, Paolo

[PATCH 1/9] Improve pointer hash function to include all bits

2013-04-19 Thread Andi Kleen
From: Andi Kleen a...@linux.intel.com The hashtab pointer hash function is not very good. It throws most of the bits in the pointer away. This changes pointer_hash to use the mix code from jhash function that mixes all the bits on the pointer and makes them dependent on each other, before doing

[PATCH 3/9] Use murmurhash3 for pointer map hashing

2013-04-19 Thread Andi Kleen
From: Andi Kleen a...@linux.intel.com For a large LTO test case The previous pointer hash change brought the collision rate for the WPA gimple type hash table from 90% to 70. This patch uses the well known murmur3 to improve it further to 64%. gcc/: 2013-04-18 Andi Kleen a...@linux.intel.com

Improve WPA type merging hash performance for LTO

2013-04-19 Thread Andi Kleen
These patches together improve the gimple type merging WPA hash bottleneck that I'm seeing when building the Linux kernel with LTO. Mostly it's micro optimization to the hashing, better hash functions, various tweaks. Individual patches result in 2-4% build time improvements each and somewhat

[PATCH 2/9] Add murmurhash3

2013-04-19 Thread Andi Kleen
From: Andi Kleen a...@linux.intel.com I use Austin Appleby's Public Domain Murmur3 reference code. I don't own that code. Murmur hash is available from http://code.google.com/p/smhasher/wiki/MurmurHash gcc/: 2013-04-18 Andi Kleen a...@linux.intel.com * murmurhash3.h: New file. ---

[PATCH 4/9] Add murmurhash2a

2013-04-19 Thread Andi Kleen
From: Andi Kleen a...@linux.intel.com Used in the next patch. I use Austin Appleby's Public Domain Murmur2A reference code. I don't own that code. Murmur hash is available from http://code.google.com/p/smhasher/wiki/MurmurHash gcc/: 2013-04-18 Andi Kleen a...@linux.intel.com *

[PATCH 6/9] Add --param tunables for the initial size of the type merging hash tables

2013-04-19 Thread Andi Kleen
From: Andi Kleen a...@linux.intel.com WPA can spend a lot of time just resizing the type merging hash tables. This adds experimental --params to size them large initially. On my large LTO build I get a 1.1% improvement in build time from presizing the hash tables to a large enough value. Later

[PATCH 8/9] Print lto report at the right place

2013-04-19 Thread Andi Kleen
From: Andi Kleen a...@linux.intel.com The LTO report is currently printed when the type merging hash tables are already destroyed, which makes them always show up as empty. Print it earlier. Right now it's printed twice. gcc/: 2013-04-19 Andi Kleen a...@linux.intel.com * lto/lto.c

[PATCH 9/9] Fix lto report names

2013-04-19 Thread Andi Kleen
From: Andi Kleen a...@linux.intel.com Some of the hash tables in lto-report are misnamed in the report. Fix this up. gcc/: 2013-04-19 Andi Kleen a...@linux.intel.com * gcc/lto/lto.c (print_lto_report_1): Fix LTO report names. --- gcc/lto/lto.c | 4 ++-- 1 file changed, 2

[PATCH 7/9] Add -flto-report-wpa

2013-04-19 Thread Andi Kleen
From: Andi Kleen a...@linux.intel.com -flto-report is useful, but it prints for every LTRANS pass and is very noisy and the main problem is often in WPA only. Add a new -flto-report-wpa option that is only printed for WPA. gcc/: 2013-04-19 Andi Kleen a...@linux.intel.com *

[PATCH 5/9] Use murmurhash2A for type merging

2013-04-19 Thread Andi Kleen
From: Andi Kleen a...@linux.intel.com The type merging operation in LTO WPA is very expensive and can create multi GB hash tables. Use murmurhash2A for the type merging hash. Improves LTO build performance on a large project by 3.2% This both comes from less collisions and somewhat faster

[PATCH] gcc: arm: linux-eabi: fix handling of armv4 bx fixups when linking

2013-04-19 Thread Mike Frysinger
The bpabi.h header already sets up defines to automatically use the --fix-v4bx flag with the assembler linker as needed, and creates a default assembly linker spec which uses those. Unfortunately, the linux-eabi.h header clobbers the LINK_SPEC define and doesn't include the v4bx define when

[patch, mips] Fix for PR target/56942

2013-04-19 Thread Steve Ellcey
Andrew Bennett found this fix to my MIPS build problem (PR target/56942). He does not have write access so I am submitting it for checkin, is this a simple enough fix for an 'obvious' checkin? I did a build and regression test to verify the fix. Steve Ellcey sell...@imgtec.com 2013-04-19

[PATCH 0/6] Elimination of global state relating to passes

2013-04-19 Thread David Malcolm
I want to eliminate/minimize global state within gcc, since I think doing so is a key part of making gcc more modular. Currently there's a lot of global state associated with passes: * the pass tree itself: a single global tree of passes, with callbacks (gate and execute) * globals within

[PATCH 3/6] Autogenerated part of conversion of passes to instances of C++ classes

2013-04-19 Thread David Malcolm
This patch is 546kb in size, so I've uploaded it to: http://fedorapeople.org/~dmalcolm/gcc/large-patches/57dc196fd5efa2c59fd57ef21974e8a281f800e3-0003-Autogenerated-part-of-conversion-of-passes-to-instan.patch

[PATCH 5/6] Introduce virtual functions in testsuite/gcc.dg/plugin/one_time_plugin.c

2013-04-19 Thread David Malcolm
* testsuite/gcc.dg/plugin/one_time_plugin.c (one_pass_gate): convert to a virtual function: one_pass::gate (one_pass_exec): convert to a virtual function: one_pass::impl_execute --- gcc/ChangeLog | 6 +

[PATCH 6/6] Example of converting global state to per-pass state

2013-04-19 Thread David Malcolm
2013-04-17 David Malcolm dmalc...@redhat.com * testsuite/gcc.dg/plugin/one_time_plugin.c (one_pass_gate): example of converting global state to per-pass state: convert the static int counter within the one_pass::execute hook from having global lifetime to being

[PATCH 2/6] Move the construction of the pass hierarchy into a new passes.def file

2013-04-19 Thread David Malcolm
* passes.def: New file * passes.c (init_optimization_passes): Move the construction of the tree hierarchy into a new passes.def file. --- gcc/ChangeLog | 7 + gcc/passes.c | 377 + gcc/passes.def | 404