Re: [RFA] More type narrowing in match.pd V2

2015-05-02 Thread Bernhard Reutner-Fischer
On May 2, 2015 2:36:02 AM GMT+02:00, Jeff Law wrote: >Here's an updated patch to add more type narrowing to match.pd. > >Changes since the last version: > >Slight refactoring of the condition by using types_match as suggested >by >Richi. I also applied the new types_match to 2 other patterns in

[PATCH 13/13] make emit_partition_copy return a rtx_insn *

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders gcc/ChangeLog: 2015-05-02 Trevor Saunders * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *. (insert_partition_copy_on_edge): Adjust. (insert_rtx_to_part_on_edge): Likewise. (insert_part_to_rtx_on_edge): Likewise. --- gcc/Chang

[PATCH 10/13] make fp_setter_insn take a rtx_insn *

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders gcc/ChangeLog: 2015-05-02 Trevor Saunders * cselib.c (fp_setter_insn): Take a rtx_insn *. * cselib.h (fp_setter_insn): Adjust. --- gcc/ChangeLog | 5 + gcc/cselib.c | 2 +- gcc/cselib.h | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) dif

[PATCH 12/13] make set_return_jump_label take an rtx_insn *

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders gcc/ChangeLog: 2015-05-02 Trevor Saunders * function.c (set_return_jump_label): Change type of argument to rtx_insn *. * function.h (set_return_jump_label): Adjust. --- gcc/ChangeLog | 6 ++ gcc/function.c | 2 +- gcc/function.h | 2 +- 3 f

[PATCH 11/13] type reg_equiv_init as rtx_insn_list

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders gcc/ChangeLog: 2015-05-02 Trevor Saunders * reload.h (struct reg_equivs_t): Change type of init to rtx_insn *. * ira.c (fix_reg_equiv_init): Adjust. * reload1.c (eliminate_regs_1): Likewise. (init_eliminable_invariants): Likewise.

[PATCH 09/13] make validate_replace_src_group take a rtx_insn *

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders gcc/ChangeLog: 2015-05-02 Trevor Saunders * recog.c (struct validate_replace_src_data): Change type of insn field to rtx_insn *. (validate_replace_src_group): Change type of argument to rtx_insn *. * recog.h (validate_replace_src_group):

[PATCH 08/13] make several functions in the scheduler take rtx_insn *

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders gcc/ChangeLog: 2015-05-02 Trevor Saunders * haifa-sched.c: Change the type of some variables to rtx_insn *. * sched-deps.c: Likewise. * sched-int.h: Likewise. * sched-rgn.c: Likewise. * sel-sched.c: Likewise. --- gcc/ChangeLog

[PATCH 05/13] kill_autoinc_value can take a rtx_insn *

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders gcc/ChangeLog: 2015-05-02 Trevor Saunders * regcprop.c (kill_autoinc_value): Change type of argument to rtx_insn *. --- gcc/ChangeLog | 5 + gcc/regcprop.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/Ch

[PATCH 04/13] recog_data::insn can be a rtx_insn *

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders gcc/ChangeLog: 2015-05-02 Trevor Saunders * genrecog.c (print_subroutine): Adjust. * recog.c (get_bool_attr_mask_uncached): Likewise. * recog.h (struct recog_data_d): Change the type of insn to rtx_insn *. --- gcc/ChangeLog | 7 +++

[PATCH 06/13] make some functions in lra-constraints.c take rtx_insn *

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders gcc/ChangeLog: 2015-05-02 Trevor Saunders * lra-constraints.c: Change type of some arguments to rtx_insn *. --- gcc/ChangeLog | 4 gcc/lra-constraints.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/Ch

[PATCH 07/13] make some functions in config/ take a rtx_insn *

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders gcc/ChangeLog: 2015-05-02 Trevor Saunders to rtx_insn *. * config/i386/i386.c: Change the type of some arguments to rtx_insn *. * config/arm/arm.c: Likewise. --- gcc/ChangeLog | 7 +++ gcc/config/arm/arm.c | 2 +- gcc/co

[PATCH 02/13] df_set_note can take a rtx_insn *

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders gcc/ChangeLog: 2015-05-02 Trevor Saunders * df-problems.c (df_set_note): Change type of argument to rtx_insn *. --- gcc/ChangeLog | 5 + gcc/df-problems.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/

[PATCH 03/13] add_cfi_insn can be a rtx_insn *

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders gcc/ChangeLog: 2015-05-02 Trevor Saunders * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *. --- gcc/ChangeLog | 4 gcc/dwarf2cfi.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5428a05..0

[PATCH 01/13] change local vars to rtx_insn *

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders gcc/ChangeLog: 2015-05-02 Trevor Saunders * builtins.c (expand_builtin_trap): Change type of local variable to rtx_insn *. * config/arc/arc.md: Likewise. * config/arm/arm.c (arm_barrier_cost): Likewise. * config/avr/avr.c (avr_reo

[PATCH 00/13] further rtx_insn *ification

2015-05-02 Thread tbsaunde+gcc
From: Trevor Saunders Hi, This set of patches changes rtx to rtx_insn * in many plaes where its fairly trivial to do so. each was bootstrapped + regtested on x86_64-linux-gnu, and the series was run through config-list.mk. I believe this all falls under Jeff's preapproval from last year for th

[C++17] Implement N3928 - Extending static_assert

2015-05-02 Thread Ed Smith-Rowland
This extends' static assert to not require a message string. I elected to make this work also for C++11 and C++14 and warn only with -pedantic. I think many people just write static_assert(thing, ""); . I took the path of building an empty string in the parser in this case. I wasn't sure if s

Re: [PATCH/libiberty] fix build of gdb/binutils with clang.

2015-05-02 Thread Ian Lance Taylor
On Fri, May 1, 2015 at 4:45 PM, Yunlian Jiang wrote: > The test case does not have #define _GNU_SOURCE, so it says > error: ‘asprintf’ undeclared (first use in this function) OK, then my next question is: why does the test case (I assume you mean the test case for whether to set HAVE_DECL_ASPRINT

[patch] libstdc++/56117 make std::async launch new threads by default

2015-05-02 Thread Jonathan Wakely
One last patch before I head to Lenexa, this fixes the long standing not-a-bug that our default launch policy is launch::deferred. This way std::async with no explicit policy or with any policy that contains launch::async will run in a new thread. Apparently libc++ does the same and they aren't

Re: [patch] Fix std::experimental::any for small, non-trivial objects

2015-05-02 Thread Jonathan Wakely
On 02/05/15 19:51 +0200, Daniel Krügler wrote: 2015-05-02 19:33 GMT+02:00 Jonathan Wakely : Looking at it now, I think the _Internal alias template should also check that alignof(_Tp) <= alignof(void*) so that it can safely be stored in the _Storage. Otherwise a type with sizeof(T) <= sizeof(vo

Re: [patch] std::experimental::ostream_joiner

2015-05-02 Thread Jonathan Wakely
On 02/05/15 19:34 +0200, Daniel Krügler wrote: 2015-05-02 19:14 GMT+02:00 Jonathan Wakely : The last piece of the Library Fundamentals 2 TS (until next week when all of v1 gets voted into v2, when it will include the v1 stuff we're missing). Tested powerpc64le-linux, committed to trunk. Do yo

Re: [patch] Fix std::experimental::any for small, non-trivial objects

2015-05-02 Thread Daniel Krügler
2015-05-02 19:33 GMT+02:00 Jonathan Wakely : > Looking at it now, I think the _Internal alias template should also > check that alignof(_Tp) <= alignof(void*) so that it can safely be > stored in the _Storage. > > Otherwise a type with sizeof(T) <= sizeof(void*) but > alignof(T) > alignof(void*) wo

Re: [patch] std::experimental::ostream_joiner

2015-05-02 Thread Daniel Krügler
2015-05-02 19:14 GMT+02:00 Jonathan Wakely : > The last piece of the Library Fundamentals 2 TS (until next week when > all of v1 gets voted into v2, when it will include the v1 stuff we're > missing). > > Tested powerpc64le-linux, committed to trunk. Do you really want to copy the ugliness of the

Re: [patch] Fix std::experimental::any for small, non-trivial objects

2015-05-02 Thread Jonathan Wakely
On 02/05/15 19:05 +0200, Daniel Krügler wrote: Not related to the patch, but is the second template argument of any::_Storage::_M_buffer really correct: std::aligned_storage::type _M_buffer; I would have expected to see this to be an alignment value. Yes, that looks like a typo. We could rem

Re: [patch] std::experimental::gcd and std::experimental::lcd

2015-05-02 Thread Jonathan Wakely
On 02/05/15 19:07 +0200, Marc Glisse wrote: On Sat, 2 May 2015, Jonathan Wakely wrote: On 02/05/15 18:27 +0200, Marc Glisse wrote: On Sat, 2 May 2015, Jonathan Wakely wrote: These where simple to implement (almost too simple ... I probably got something wrong!) I didn't remember that std::

[patch] std::experimental::ostream_joiner

2015-05-02 Thread Jonathan Wakely
The last piece of the Library Fundamentals 2 TS (until next week when all of v1 gets voted into v2, when it will include the v1 stuff we're missing). Tested powerpc64le-linux, committed to trunk. commit d4a0512671d1a727905afe8efb2798fa630e19b5 Author: Jonathan Wakely Date: Sat May 2 17:19:16 2

Re: [patch] std::experimental::gcd and std::experimental::lcd

2015-05-02 Thread Marc Glisse
On Sat, 2 May 2015, Jonathan Wakely wrote: std::abs seems to work fine for unsigned, the overload in for integral types just uses __builtin_fabs. http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#2192 That overload should die. -- Marc Glisse

Re: [patch] std::experimental::gcd and std::experimental::lcd

2015-05-02 Thread Marc Glisse
On Sat, 2 May 2015, Jonathan Wakely wrote: On 02/05/15 18:27 +0200, Marc Glisse wrote: On Sat, 2 May 2015, Jonathan Wakely wrote: These where simple to implement (almost too simple ... I probably got something wrong!) I didn't remember that std::abs works for unsigned. It will need more wor

Re: [patch] Fix std::experimental::any for small, non-trivial objects

2015-05-02 Thread Daniel Krügler
2015-05-02 15:03 GMT+02:00 Jonathan Wakely : > Here's a much smaller patch for the gcc5 branch, which just avoids the > small-object optimisation for non-trivially-copyable types. This > pessimises some types, but is safe. > > (Given that this stuff is all "experimental" anyway, maybe we could > ju

Re: [patch] std::experimental::gcd and std::experimental::lcd

2015-05-02 Thread Jonathan Wakely
On 02/05/15 18:27 +0200, Marc Glisse wrote: On Sat, 2 May 2015, Jonathan Wakely wrote: These where simple to implement (almost too simple ... I probably got something wrong!) I didn't remember that std::abs works for unsigned. It will need more work for performance, but that can certainly be

[PATCH, committed] Remove 'no-' in '-fno-fixed-form'

2015-05-02 Thread Steve Kargl
I've committed the following patch to the gfortran manual as gfortran rejects the negative form for -ffixed-form. Index: ChangeLog === --- ChangeLog (revision 222724) +++ ChangeLog (working copy) @@ -1,3 +1,8 @@ +2015-05-02 Steve

Re: [patch] std::experimental::gcd and std::experimental::lcd

2015-05-02 Thread Marc Glisse
On Sat, 2 May 2015, Jonathan Wakely wrote: These where simple to implement (almost too simple ... I probably got something wrong!) I didn't remember that std::abs works for unsigned. It will need more work for performance, but that can certainly be done later (I didn't look at the code beyon

[patch] std::experimental::gcd and std::experimental::lcd

2015-05-02 Thread Jonathan Wakely
These where simple to implement (almost too simple ... I probably got something wrong!) Tested powerpc64le-linux, committed to trunk. (Apart from using common_type_t, which is easy to change, these functions meet the simpler rules for C++11 constexpr, so moving them out of would probably allow

Re: [PATCH] fixup libobjc usage of PCC_BITFIELD_TYPE_MATTERS

2015-05-02 Thread Jakub Jelinek
On Sat, May 02, 2015 at 09:08:21AM -0400, Trevor Saunders wrote: > > > +AC_TRY_COMPILE( > > > + [struct foo1 { char x; char :0; char y; }; > > > +struct foo2 { char x; int :0; char y; }; > > > +int foo1test[ sizeof (struct foo1) == 2 ? 1 : -1 ]; > > > +int foo2test[ sizeof (struct foo2) ==

Re: [PATCH] fixup libobjc usage of PCC_BITFIELD_TYPE_MATTERS

2015-05-02 Thread Trevor Saunders
On Sat, May 02, 2015 at 10:03:13AM +0200, Jakub Jelinek wrote: > On Fri, May 01, 2015 at 11:30:53PM -0400, tbsaunde+...@tbsaunde.org wrote: > > +AC_TRY_COMPILE( > > + [struct foo1 { char x; char :0; char y; }; > > +struct foo2 { char x; int :0; char y; }; > > +int foo1test[ sizeof (struct

Re: [patch] Fix std::experimental::any for small, non-trivial objects

2015-05-02 Thread Jonathan Wakely
On 02/05/15 13:39 +0100, Jonathan Wakely wrote: My initial implementation of experimental::any was too dumb, it assumed you could just swap the bytes of _Storage, and return it from functions like any POD type, but if the _Storage object contains a non-trivially-copyable object internally (not on

Re: [libstdc++ PATCH] Implement observer_ptr

2015-05-02 Thread Jonathan Wakely
On 02/05/15 08:49 -0400, Ed Smith-Rowland wrote: OK. Thanks. I do remember an SD-6 discussion about how annoying the define-the-macro-in-all-relevant-headers was. I didn't know there was a resolution. I need to reeducate myself. Meanwhile I'll rollback my patch. Reverted in 222722. I'll as

Re: [libstdc++ PATCH] Implement observer_ptr

2015-05-02 Thread Ed Smith-Rowland
On 05/02/2015 05:42 AM, Jonathan Wakely wrote: On 02/05/15 10:40 +0100, Jonathan Wakely wrote: On 01/05/15 22:02 -0400, Ed Smith-Rowland wrote: On 05/01/2015 05:01 PM, Jonathan Wakely wrote: On 01/05/15 16:37 +0300, Ville Voutilainen wrote: Tested on Linux-x64. Implement observer_ptr. Tha

[patch] Fix std::experimental::any for small, non-trivial objects

2015-05-02 Thread Jonathan Wakely
My initial implementation of experimental::any was too dumb, it assumed you could just swap the bytes of _Storage, and return it from functions like any POD type, but if the _Storage object contains a non-trivially-copyable object internally (not on the heap) then it's wrong to treat it as a POD.

Re: [RFC][PATCH][X86_64] Eliminate PLT stubs for specified external functions via -fno-plt=

2015-05-02 Thread Andi Kleen
On Fri, May 01, 2015 at 11:05:58AM -0700, Sriraman Tallam wrote: > On Fri, May 1, 2015 at 9:26 AM, Xinliang David Li wrote: > > yes -- it is good to turn this on by default in LTO mode without > > requiring user to specify the option. > > Yes, with LTO, we would exactly know what the "truly exter

[patch] Define non-inline destructor for filesystem_error

2015-05-02 Thread Jonathan Wakely
This fixes a linker warning on darwin, and helps compilation time and object size on all targets by defining the key function in the library, so the vtable and RTTI are only emitted once. Tested x86_64-linux and powerpc-aix. commit 8e3b9a3452172033918b80bc69d940538690bfcb Author: Jonathan Wakely

Re: [debug-early] revert removal of deferred_asm_names

2015-05-02 Thread Richard Biener
On Fri, May 1, 2015 at 1:28 AM, Aldy Hernandez wrote: > Hello gentlemen. > > Both of you suggested I revert my removal of deferred_asm_names from > dwarf2out, since it may cause mangling of DECLs that may ultimately not be > needed. > > A little background... > > This all started with a regression

[patch] libstdc++/65978 LWG 2275 and 2301, constexpr forward_as_tuple and tie

2015-05-02 Thread Jonathan Wakely
Two easy DRs to implement. We even had the tests half written. Tested x86_64-linux and powerpc64l2-linux, committed to trunk. I'll probably backport this in a week or two. commit c1a6989fbdad9870cdd2240d5fda58054d0ba5ae Author: Jonathan Wakely Date: Sat May 2 11:29:17 2015 +0100 PR lib

Re: [Patch, Fortran] Simplify lbound

2015-05-02 Thread H.J. Lu
On Mon, Apr 27, 2015 at 11:45 AM, Thomas Koenig wrote: > Am 25.04.2015 um 20:12 schrieb Mikael Morin: > >> I've double-checked in the standard, and it seems it is not possible to >> simplify after all: >> >> If ARRAY is a whole array and either ARRAY is an assumed-size >> array of rank

Re: [rs6000] Fix compare debug failure on AIX

2015-05-02 Thread Eric Botcazou
> Why should GCC unnecessarily create stack frames to avoid > compare-debug testcase failures? I'm not sure I understand the question... compare-debug failures are failures (-g is not supposed to change the generated code and this XCOFF-specific bug was reported to us) so they need to be fixed.

Re: [patch] Implement ISO/IEC TS 18822 C++ File system TS

2015-05-02 Thread Jonathan Wakely
Another portability fix, to avoid using &stat::st_atime because st_atime might be a macro, and &stat::st_atim.tv_sec is not valid. Also POSIX doesn't actually require any particular structure for timespec, so set the fields explicitly instead of using braces. Tested powerpc64le-linux and powerpc

Re: [libstdc++ PATCH] Implement observer_ptr

2015-05-02 Thread Jonathan Wakely
On 02/05/15 10:40 +0100, Jonathan Wakely wrote: On 01/05/15 22:02 -0400, Ed Smith-Rowland wrote: On 05/01/2015 05:01 PM, Jonathan Wakely wrote: On 01/05/15 16:37 +0300, Ville Voutilainen wrote: Tested on Linux-x64. Implement observer_ptr. Thanks! Committed with some minor formatting change

Re: [libstdc++ PATCH] Implement observer_ptr

2015-05-02 Thread Jonathan Wakely
On 01/05/15 22:02 -0400, Ed Smith-Rowland wrote: On 05/01/2015 05:01 PM, Jonathan Wakely wrote: On 01/05/15 16:37 +0300, Ville Voutilainen wrote: Tested on Linux-x64. Implement observer_ptr. Thanks! Committed with some minor formatting changes. I've also committed this to add feature-test

[PATCH] Fix eipa_sra AAPCS issue (PR target/65956)

2015-05-02 Thread Jakub Jelinek
Hi! This is an attempt to fix the following testcase (reduced from gsoap) similarly how you've fixed another issue with r221795 other AAPCS regressions introduced with r221348 change. This patch passed bootstrap/regtest on {x86_64,i686,armv7hl,aarch64,powerpc64{,le},s390{,x}}-linux. Though, it st

Re: [PATCH] fixup libobjc usage of PCC_BITFIELD_TYPE_MATTERS

2015-05-02 Thread Jakub Jelinek
On Fri, May 01, 2015 at 11:30:53PM -0400, tbsaunde+...@tbsaunde.org wrote: > +AC_TRY_COMPILE( > + [struct foo1 { char x; char :0; char y; }; > +struct foo2 { char x; int :0; char y; }; > +int foo1test[ sizeof (struct foo1) == 2 ? 1 : -1 ]; > +int foo2test[ sizeof (struct foo2) == 5 ? 1 : -