Re: [PATCH] rs6000: Clean up the cmp* insns

2015-06-16 Thread David Edelsohn
On Tue, Jun 16, 2015 at 5:47 PM, Segher Boessenkool wrote: > No change in behaviour; bootstrapped and tested as usual. Is this okay > for trunk? > > Now the output modifier "%b" is unused; what do we do with that? > Leave it in place in case anything uses it in inline asm? It never > was documen

Re: [RFC] COMDAT Safe Module Level Multi versioning

2015-06-16 Thread Sriraman Tallam
On Tue, May 19, 2015 at 9:11 AM, Xinliang David Li wrote: >> >> Hm. But which options are unsafe? Also wouldn't it be better to simply >> _not_ have unsafe options produce comdats but always make local clones >> for them (thus emit the comdat with "unsafe" flags dropped)? > > Always localize com

Re: Drop TYPE_NEEDS_CONSTRUCTING checks from ipa-pure-const and tree-inline

2015-06-16 Thread Jan Hubicka
> On Mon, 15 Jun 2015, Jan Hubicka wrote: > > > Hi, > > this patch removes last two remaining uses of TYPE_NEEDS_CONSTRUCTING > > in the back-end. I believe those are remainders from the time we did not > > gimplify as much as we do now. Alias analysis machinery already skips > > checks of TYPE_N

gcc-patches@gcc.gnu.org

2015-06-16 Thread Jonathan Wakely
On 16/06/15 22:05 +0100, Jonathan Wakely wrote: This fixes some unsafe uses of operator& in std::list, and also in Debug Mode found running the new test with -D_GLIBCXX_DEBUG. And another related patch, found after rebasing some std::list changes I've been working on. Tested powerpc64le-linux,

[PATCH], Add IEEE 128-bit floating point to PowerPC, patch #2

2015-06-16 Thread Michael Meissner
This is the second of my IEEE 128-bit floating point support. This patch adds new helper macros to the infrastructure, and changes the code in rs6000.c where we are supporting floating point to deal with IEEE 128-bit floating point when the rest of the patches are installed. I have tested these p

Re: Fix verify_type ICE with -fshort-enum

2015-06-16 Thread Jan Hubicka
> >> PR middle-end/66325 > >> * c-decl.c (start_enum): Set TYPE_PACKED consistently among type > >> variants. > >> Index: c-decl.c > >> === > >> --- c-decl.c (revision 224250) > >> +++ c-decl.c (working copy) > >> @@ -79

[PATCH] rs6000: Clean up the cmp* insns

2015-06-16 Thread Segher Boessenkool
No change in behaviour; bootstrapped and tested as usual. Is this okay for trunk? Now the output modifier "%b" is unused; what do we do with that? Leave it in place in case anything uses it in inline asm? It never was documented. We could use some freed modifiers, almost everything is used now

[PATCH] Add CFI entries for ARM Linux idiv0 / ldiv0

2015-06-16 Thread James Lemke
A divide by zero exception was not giving a proper traceback for LINUX ARM_EABI. The attached patch fixes the problem on trunk (and several local branches). Tested on gcc-trunk for arm-none-linux-gnueabi. OK to commit? -- Jim Lemke, GNU Tools Sourcerer Mentor Graphics / CodeSourcery Orillia, O

Re: [patch 2/6] scalar-storage-order merge: C front-end

2015-06-16 Thread Joseph Myers
On Tue, 16 Jun 2015, Eric Botcazou wrote: > +@item unused > +@cindex @code{unused} type attribute > +When attached to a type (including a @code{union} or a @code{struct}), > +this attribute means that variables of that type are meant to appear > +possibly unused. GCC does not produce a warning fo

gcc-patches@gcc.gnu.org

2015-06-16 Thread Jonathan Wakely
This fixes some unsafe uses of operator& in std::list, and also in Debug Mode found running the new test with -D_GLIBCXX_DEBUG. Tested powerpc64le-linux, committed to trunk. commit 588d91ac5190efb29369da9bec60d069fd7891cd Author: Jonathan Wakely Date: Tue Jun 16 19:12:08 2015 +0100 * in

Re: [PATCH, AARCH64] make stdarg functions work with +nofp

2015-06-16 Thread Jim Wilson
On Tue, Jun 16, 2015 at 1:46 AM, James Greenhalgh wrote: > I'm happy for this to be backported. Thanks. Applied. > I think Grub probably wants to change if they want to be safe, from > what I've read it looks like they are hoping to use something like a > standard printf without touching the FP

[PATCH, committed] jit: Add a test for compound assignment

2015-06-16 Thread David Malcolm
Add a testcase of assignment to structs and unions to the libgccjit testsuite. Tested with "make check-jit"; takes jit.sum from 7829 to 7974 passes. Committed to trunk as r224536. gcc/testsuite/ChangeLog: * jit.dg/all-non-failing-tests.h: Add test-compound-assignment.c. * jit.dg/

[PATCH, committed] PR jit/66539: Properly add testcase

2015-06-16 Thread David Malcolm
This hunk was omitted from r224531. Tested with "make check-jit"; takes jit.sum from 7699 to 7829 passes. Committed to trunk as r224535. gcc/testsuite/ChangeLog: PR jit/66539 * jit.dg/all-non-failing-tests.h: Add test-debug-strings.c to "testcases" array. --- gcc/testsui

Re: [C++ Patch] PR 59682

2015-06-16 Thread Jason Merrill
On 06/16/2015 12:13 PM, Paolo Carlini wrote: +error ("expected expression"); I would say "expression-list or type-id", since new (int) is also well-formed. OK with that change. Jason

C++ PATCH for c++/66536 (ICE with brace-initialized temp in initializer)

2015-06-16 Thread Jason Merrill
Here, "array, 0>{}" produces a CONSTRUCTOR that is not part of an aggregate initializer for the eq_arrays variable, so we shouldn't try to treat it as such. Tested x86_64-pc-linux-gnu, applying to trunk. commit d3e127fb66647a1f0d8ddffc981cc0c732563815 Author: Jason Merrill Date: Mon Jun 15 2

C++ PATCH for c++/58063 (wrong-code with virtual base and default argument)

2015-06-16 Thread Jason Merrill
The problem here was that break_out_target_exprs was duplicating a SAVE_EXPR, so we ended up evaluating the inner call twice. Fixed by mapping them as well as TARGET_EXPRs. Tested x86_64-pc-linux-gnu, applying to trunk. commit 7dcc38201366f5c3043e78f7074ba863229b21d3 Author: Jason Merrill Dat

Re: New type-based pool allocator code miscompiled due to aliasing issue?

2015-06-16 Thread Marc Glisse
On Tue, 16 Jun 2015, Martin Liška wrote: On 06/15/2015 07:31 PM, Marc Glisse wrote: On Mon, 15 Jun 2015, Martin Liška wrote: Ah, I overlooked that it's not a placement new, but just static casting. Anyway, if I added: cselib_val () {} to struct cselib_val and changed the cast to placement n

[PATCH, committed] PR jit/66539: Add parentheses as needed to gcc_jit_object_get_debug_string

2015-06-16 Thread David Malcolm
gcc_jit_object_get_debug_string wasn't adding parentheses, leading to misleading dumps for certain compound expressions. This patch adds: rvalue::get_debug_string_parens rvalue::get_precedence methods, mimicing C's precedence rules, using them in the get_debug_string implementation so that we

[patch] libstdc++/65393 move shared_ptrs in thread::_M_make_thread

2015-06-16 Thread Jonathan Wakely
This is a small optimisation to avoid atomic updates to the ref-counts. I have a bigger change in the pipeline for the trunk, but this is an incremental improvement and is safe for gcc-5-branch. Tested powerpc64le-linux, committed to trunk. commit 6cd552bb41661fc48111b7162641d4e8b4c85404 Author:

Re: [PATCH 4.8] PR66306 Fix reload problem with commutative operands

2015-06-16 Thread Ulrich Weigand
Andreas Krebbel wrote: > this fixes a reload problem with match_dup's on commutative operands. > > Bootstrapped and regtested on x86-64, ppc64, and s390x. > > Ok? > > Bye, > > -Andreas- > > 2015-06-11 Andreas Krebbel > > PR rtl-optimization/66306 > * reload.c (find_reloads): S

Re: [patch 0/5] Dependency removal and header adjustments

2015-06-16 Thread Andrew MacLeod
On 06/16/2015 01:20 PM, Joseph Myers wrote: On Tue, 16 Jun 2015, Andrew MacLeod wrote: component... as indicated by an analysis of what is usually needed.Does that seem like a reasonable breakdown? what was the *real* intention of target.h? target.h is what needs to be included to use tar

Re: [patch 0/5] Dependency removal and header adjustments

2015-06-16 Thread Joseph Myers
On Tue, 16 Jun 2015, Andrew MacLeod wrote: > component... as indicated by an analysis of what is usually needed.Does > that seem like a reasonable breakdown? what was the *real* intention of > target.h? target.h is what needs to be included to use target hooks. In particular, it would be de

[patch 5/5] Remove function.h dependency on hard-reg-set.

2015-06-16 Thread Andrew MacLeod
function.h defines struct rtl_data which is used for generating rtl. In particular, it defines an instance 'crtl' which for generating rtl appears analagous to cfun for gimple and trees. That is the only reason function.h requires hard-reg-set.h. I tried a lot of variations.. like moving it i

[patch 3/5] Remove options.h dependency from tree-core.h

2015-06-16 Thread Andrew MacLeod
tree-core.h won't compile without seeing options.h (which is usually brought in by tm.h) because a TARGET_OPTION node contains an instance of struct cl_target_option, defined thru options.h. Its fairly straightforward to change it so the tree node simply contains a pointer to one of these st

[patch 4/5] Remove cgraph.h dependence on hard-reg-set.h

2015-06-16 Thread Andrew MacLeod
cgraph.h requires hard-reg-set.h in order to compile simply because the cgraph_rtl_info structure contains a HARD_REG_SET element. All accesses to this structure are already handled by returning a pointer to the structure within the cgraph_node. By moving the defintion of struct cgraph_rtl_in

[patch 2/5] Remove tree.h compilation dependency for tm.h

2015-06-16 Thread Andrew MacLeod
There are 2 macros defined in tree.h the depend on the definition of NO_DOT_IN_LABEL and NO_DOLLAR_IN_LABEL. These are ANON_AGGRNAME_FORMAT and ANON_AGGRNAME_P. This means that in order to get the correct values for those macros, you have to be sure that tm.h was included before tree.h, an

[patch 1/5] Move input.h and is-a.h to coretypes.h

2015-06-16 Thread Andrew MacLeod
Pretty much everything in the compiler has a need for both is-a.h and input.h, so this patch moves those into coretypes.h (and rtl.h for generators.. :-P still working on a good way around that) is-a.h is required by anything which includes gimple.h, rtl.h or cgraph.h currently, and I expect

[patch 0/5] Dependency removal and header adjustments

2015-06-16 Thread Andrew MacLeod
I took a snapshot of trunk and completely flattened all the header files and tried removing them one by one. Then I looked at the dependencies between the files which prevented removal of certain headers and looked to see what could be simplified. Initially I was looking at removing the need t

Re: [C++/58583] ICE instantiating NSDMIs

2015-06-16 Thread Nathan Sidwell
On 06/16/15 03:47, Andreas Schwab wrote: Nathan Sidwell writes: PR c++/58583 * g++.dg/cpp0x/nsdmi-template14.C: New test. spawn -ignore SIGHUP /usr/local/gcc/gcc-20150616/Build/gcc/testsuite/g++2/../../xg++ -B/usr/local/gcc/gcc-20150616/Build/gcc/testsuite/g++2

RE: [Patch, MIPS] Modify sysroot layout for mips-mti-* and mips-img-*

2015-06-16 Thread Matthew Fortune
Steve Ellcey writes: > As follow-up to this patch, I forgot to include a testsuite patch to two > mips specific tests that fail with the new layout. These tests are > loongson specific and have includes of system headers in them. The way > mips.exp in testsuite/gcc.target/mips works is that for

RE: [Patch, MIPS] Modify sysroot layout for mips-mti-* and mips-img-*

2015-06-16 Thread Steve Ellcey
As follow-up to this patch, I forgot to include a testsuite patch to two mips specific tests that fail with the new layout. These tests are loongson specific and have includes of system headers in them. The way mips.exp in testsuite/gcc.target/mips works is that for runnable tests requiring a sp

[PATCH, i386]: Fix PR 56766, generate ADDSUB insns

2015-06-16 Thread Uros Bizjak
Hello! Attached patch implements missing (vec_select (vec_concat ...)) forms of ADDSUB insn. The core of the problem is with the fact, that we are able to expand DFmode vectors with a shuffle pattern, which is not the case with SFmode vectors (shuffle has certain limitations on x86). SFmode vecto

[C++ Patch] PR 59682

2015-06-16 Thread Paolo Carlini
Hi, fixing this accepts-invalid seems just matter of carefully checking the return value of cp_parser_parenthesized_expression_list (eg, vec_safe_is_empty would not do, because it returns true when the argument is null). Tested x86_64-linux. Thanks, Paolo. / /cp 2015-06-

Re: [Patch, MIPS] Enable fp-contract on MIPS and update -mfused-madd

2015-06-16 Thread Joseph Myers
On Tue, 16 Jun 2015, Maciej W. Rozycki wrote: > On Tue, 16 Jun 2015, Joseph Myers wrote: > > > > Furthermore these checks were deliberately introduced by Richard with > > > his > > > proposal here > > > and agreed upon in the discussio

Re: New type-based pool allocator code miscompiled due to aliasing issue?

2015-06-16 Thread Richard Biener
On June 16, 2015 5:31:57 PM GMT+02:00, "Martin Liška" wrote: >On 06/16/2015 04:02 PM, Richard Biener wrote: >> On Tue, Jun 16, 2015 at 3:38 PM, Martin Liška wrote: >>> On 06/16/2015 03:17 PM, Richard Biener wrote: On Tue, Jun 16, 2015 at 11:26 AM, Martin Liška >wrote: > On 06/15/2015 07

Re: New type-based pool allocator code miscompiled due to aliasing issue?

2015-06-16 Thread Martin Liška
On 06/16/2015 04:02 PM, Richard Biener wrote: > On Tue, Jun 16, 2015 at 3:38 PM, Martin Liška wrote: >> On 06/16/2015 03:17 PM, Richard Biener wrote: >>> On Tue, Jun 16, 2015 at 11:26 AM, Martin Liška wrote: On 06/15/2015 07:31 PM, Marc Glisse wrote: > On Mon, 15 Jun 2015, Martin Liška w

[PATCH, testsuite]: Fix PR 65944, FAIL: g++.dg/lto/pr65276: undefined reference to std2::exception::~exception()

2015-06-16 Thread Uros Bizjak
Hello! Following patch fixes: cp_lto_pr65276_1.o: In function `std2::runtime_error::~runtime_error()':^M pr65276_1.C:(.text._ZN4std213runtime_errorD2Ev[_ZN4std213runtime_errorD5Ev]+0x8): undefined reference to `std2::exception::~exception()'^M cp_lto_pr65276_1.o: In function `std2::runtime_error:

[PING]Re: [PATCH]Use "unsigned int" instead of "int" to hold alignment in emit_local function.

2015-06-16 Thread Renlin Li
Ping~ Thank you! Renlin Li On 04/06/15 12:05, Renlin Li wrote: Hi all, This is a simple patch to change the align variable (used in emit_local()) from type "int" to type "unsigned int". It should be defined as "unsigned int" which is the same data type returned by symtab_node::get (decl)->

Re: C++ PATCH for c++/66387 (error with lambda and constexpr array)

2015-06-16 Thread Jason Merrill
On 06/10/2015 09:01 AM, Jason Merrill wrote: My change to rationalize the *_constant_value functions broke this testcase, because we were no longer replacing the reference to the array with its constant value. Fixed by using maybe_constant_value instead. We need to deal with this properly in t

Re: [PATCH] Yet another simple fix to enhance outer-loop vectorization.

2015-06-16 Thread Yuri Rumyantsev
Thanks a lot Richard for your review. I presented updated patch which is not gated by force_vectorize. I added test on outer-loop in vect_enhance_data_refs_alignment and it returns false for it because we can not improve dr alighment through outer-loop peeling in general. So I assume that only ver

Re: [PATCH, RFC] PR middle-end/55299, contract bitnot through ASR and rotations

2015-06-16 Thread Richard Biener
On Mon, Jun 15, 2015 at 12:14 PM, Mikhail Maltsev wrote: > Hi. > > The attached patch adds new match-and-simplify patterns, which fold > ~((~a) >> b) into (a >> b) for arithmetic shifts (i.e. when A is signed) > and perform similar folds for rotations. It also fixes PR > tree-optimization/54579 (b

[PATCH][ARM] PR/66433: Reduce cost of memory instructions with autoincrement

2015-06-16 Thread Yury Usishchev
Hello! Following patch fixes PR target/66433. As described in PR, cost of memory operation with autoincrement is considered to be greater than same operation without autoincrement. This causes auto-inc-dec pass not to optimize vector memory operations like vld and vst. Bootstrapped and regtested

Re: New type-based pool allocator code miscompiled due to aliasing issue?

2015-06-16 Thread Richard Biener
On Tue, Jun 16, 2015 at 3:38 PM, Martin Liška wrote: > On 06/16/2015 03:17 PM, Richard Biener wrote: >> On Tue, Jun 16, 2015 at 11:26 AM, Martin Liška wrote: >>> On 06/15/2015 07:31 PM, Marc Glisse wrote: On Mon, 15 Jun 2015, Martin Liška wrote: > Ah, I overlooked that it's not a pl

Re: [PATCH, rs6000, testsuite, PR65456] Changes for unaligned vector load/store support on POWER8

2015-06-16 Thread Bill Schmidt
On Tue, 2015-06-16 at 14:37 +0100, Vidya Praveen wrote: > On Mon, Jun 15, 2015 at 08:14:31PM +0100, Bill Schmidt wrote: > > On Fri, 2015-06-12 at 17:36 +0100, Vidya Praveen wrote: > > > On Thu, Apr 30, 2015 at 01:34:18PM +0100, Bill Schmidt wrote: > > > > On Thu, 2015-04-30 at 18:26 +0800, Bin.Chen

Re: Drop TYPE_NEEDS_CONSTRUCTING checks from ipa-pure-const and tree-inline

2015-06-16 Thread Richard Biener
On Mon, 15 Jun 2015, Jan Hubicka wrote: > Hi, > this patch removes last two remaining uses of TYPE_NEEDS_CONSTRUCTING > in the back-end. I believe those are remainders from the time we did not > gimplify as much as we do now. Alias analysis machinery already skips > checks of TYPE_NEEDS_CONSTRUCT

Re: match.pd: Optimize (x & y) ^ (x | y)

2015-06-16 Thread Richard Biener
On Sat, 13 Jun 2015, Marc Glisse wrote: > On Fri, 12 Jun 2015, Marek Polacek wrote: > > > > > > fold-const.c traditionally avoided the combinatorial explosion by > > > > > using > > > > > strip_nops. > > > > > > > > Yeah. We can probably special case conditional conversions in code > > > > gene

Re: New type-based pool allocator code miscompiled due to aliasing issue?

2015-06-16 Thread Martin Liška
On 06/16/2015 03:17 PM, Richard Biener wrote: > On Tue, Jun 16, 2015 at 11:26 AM, Martin Liška wrote: >> On 06/15/2015 07:31 PM, Marc Glisse wrote: >>> On Mon, 15 Jun 2015, Martin Liška wrote: >>> Ah, I overlooked that it's not a placement new, but just static casting. Anyway, if I added

Re: [PATCH, rs6000, testsuite, PR65456] Changes for unaligned vector load/store support on POWER8

2015-06-16 Thread Vidya Praveen
On Mon, Jun 15, 2015 at 08:14:31PM +0100, Bill Schmidt wrote: > On Fri, 2015-06-12 at 17:36 +0100, Vidya Praveen wrote: > > On Thu, Apr 30, 2015 at 01:34:18PM +0100, Bill Schmidt wrote: > > > On Thu, 2015-04-30 at 18:26 +0800, Bin.Cheng wrote: > > > > On Mon, Apr 27, 2015 at 9:26 PM, Bill Schmidt >

Re: match.pd: Three new patterns

2015-06-16 Thread Richard Biener
On Sat, 13 Jun 2015, Marc Glisse wrote: > They look fine to me. > > > +/* (x & y) + (x ^ y) -> x | y */ > > This also works if you replace + with | or ^. > > > +/* (x | y) - (x ^ y) -> x & y */ > > For symmetry, you probably also want: > (x | y) - (x & y) -> x ^ y > > (they both also work with

Re: [PATCH] Enable two UNSIGNED_FLOAT simplifications in simplify_unary_operation_1

2015-06-16 Thread Christophe Lyon
On 20 March 2015 at 18:03, Renlin Li wrote: > Hi all, > > This is a simple patch to enable two simplifications for UNSIGNED_FLOAT > expression. > > For the following rtx patterns, they can be simplified when the integer x > can be > represented in float mode without precision loss: > > float_trunc

[PATCH] Alternate fix for PR66251

2015-06-16 Thread Richard Biener
The following reverts the previous bogus fixes and instead fixes strided store support to properly get at SLP operands. It also fixes a typo and exchanges i == i for i == 0. Bootstrapped on x86_64-unknown-linux-gnu, testing in progress. Richard. 2015-06-16 Richard Biener PR tree-op

Re: [patch 6/6] scalar-storage-order merge: testsuite

2015-06-16 Thread Richard Earnshaw
On 16/06/15 10:52, Eric Botcazou wrote: > This is the testsuite part. > > testsuite/ > * c-c++-common/sso-1.c: New test. > * c-c++-common/sso: New directory. > * gcc.dg/sso-1.c: New test. > * g++.dg/sso-1.C: Likewise. > * gcc.dg/sso: New directory. > * g++.dg/ss

Re: [PATCH][GSoC] Extend shared_ptr to support arrays

2015-06-16 Thread Jonathan Wakely
On 16/06/15 21:15 +0800, Fan You wrote: You will also need to write new tests (under testsuite/experimental/) to check that your new code works as intended. Is there any pattern or rules I should follow when writing testcase, or I can just refer to 20_util/* and add some array specified tests?

Re: [Patch, MIPS] Enable fp-contract on MIPS and update -mfused-madd

2015-06-16 Thread Maciej W. Rozycki
On Tue, 16 Jun 2015, Joseph Myers wrote: > > Furthermore these checks were deliberately introduced by Richard with his > > proposal here > > and agreed upon in the discussion even before IEEE Std 754-2008 has been > > made. Are you sug

Re: [Patch ARM-AArch64/testsuite Neon intrinsics 00/20] Executable tests

2015-06-16 Thread Christophe Lyon
On 16 June 2015 at 12:08, James Greenhalgh wrote: > On Mon, Jun 15, 2015 at 11:11:16PM +0100, Christophe Lyon wrote: >> Ping? >> >> >> On 27 May 2015 at 22:15, Christophe Lyon wrote: >> > This patch series is a follow-up to the tests I already contributed, >> > converted from my original testsuit

Re: New type-based pool allocator code miscompiled due to aliasing issue?

2015-06-16 Thread Richard Biener
On Tue, Jun 16, 2015 at 11:26 AM, Martin Liška wrote: > On 06/15/2015 07:31 PM, Marc Glisse wrote: >> On Mon, 15 Jun 2015, Martin Liška wrote: >> >>> Ah, I overlooked that it's not a placement new, but just static casting. >>> Anyway, if I added: >>> >>> cselib_val () {} >>> >>> to struct cselib_v

Re: [PATCH 1/2] Memory statistics enhancement.

2015-06-16 Thread Martin Liška
On 06/08/2015 05:01 PM, Martin Liška wrote: > On 06/01/2015 06:16 PM, mliska wrote: >> Hi. >> >> Following 2 patches improve memory statistics infrastructure. First one >> ports pool allocator to the new infrastructure. And the second one makes >> column alignment properly. >> >> Both can bootstrap

Re: [PATCH, ARM] PR target/66541

2015-06-16 Thread Ramana Radhakrishnan
On Tue, Jun 16, 2015 at 1:35 PM, Christian Bruel wrote: > Hi, > > This fixes the torture/pr52429.c regression due to arm_set_current_function > that needs to handle DECL_FUNCTION_SPECIFIC_TARGET when set to > target_option_default_node. > > Catch up with x86 and rs6000 backends. > > no regression

Re: [gomp4,bootstrap] Remove unused variable in lower_reduction_clauses

2015-06-16 Thread Tom de Vries
On 16/06/15 12:08, Tom de Vries wrote: Committed this patch to fix bootstrap. And this one. Thanks, - Tom Declare parm unused in make_offloadable_1 2015-06-16 Tom de Vries * varpool.c (make_offloadable_1): Declare decl with ATTRIBUTE_UNUSED. --- gcc/varpool.c | 2 +- 1 file changed, 1

Re: [Aarch64] Add support for ARMv8.1 command line options.

2015-06-16 Thread Marcus Shawcroft
On 4 June 2015 at 10:16, Matthew Wahab wrote: > gcc/ > 2015-06-4 Matthew Wahab > > * config/aarch64/aarch64-arches.def: Add "armv8.1-a". > * config/aarch64/aarch64-options-extensions.def: Update "fP", > "simd" and "crypto". Add "lse", "pan", "lor" and "rdma". >

Re: [Patch, MIPS] Enable fp-contract on MIPS and update -mfused-madd

2015-06-16 Thread Joseph Myers
On Tue, 16 Jun 2015, Maciej W. Rozycki wrote: > This makes me wonder however what the point has been to specify a strict > particular semantics for the copy, negate, abs, copySign operations with > respect to the sign bit of qNaN data where any other operation can then > change the bit in a ra

Re: [Patch, MIPS] Enable fp-contract on MIPS and update -mfused-madd

2015-06-16 Thread Maciej W. Rozycki
On Mon, 15 Jun 2015, Joseph Myers wrote: > > > It is only required (well, recommended) to pass the *payload*. The sign > > > bit is not part of the payload. "For all other operations, this standard > > > does not specify the sign bit of a NaN result, even when there is only > > > one > > > i

Re: [PATCH] Altivec mulv4si3 and mulv8hi3 cleanup

2015-06-16 Thread Bill Schmidt
FWIW, this patch looks good to me. Bill On Mon, 2015-06-15 at 18:15 -0400, David Edelsohn wrote: > POWER8 added a multiply instruction that makes mulv4si more efficient. > And vmladduhm can be used for mulv8hi3. This patch also changes > vmladduhm from a black box UNSPEC to descriptive RTL. > >

[PATCH] Vectorizer TLC

2015-06-16 Thread Richard Biener
The following makes us create less useless statements (as can be seen from the needed change to recip-vec-sqrtf-avx.c where we now fully unroll one of the loops). Bootstrapped and tested on x86_64-unknown-linux-gnu, applied. Richard. 2015-06-16 Richard Biener * tree-vect-stmts.c (ve

Re: [patch 2/6] scalar-storage-order merge: C front-end

2015-06-16 Thread Richard Sandiford
Eric Botcazou writes: > This is the C front-end + C family part. > > * doc/extend.texi (type attributes): Document scalar_storage_order. > * doc/invoke.texi (Warnings): Document -Wno-scalar-storage-order. > c-family/ > * c-common.c (c_common_attributes): Add scalar_storage_order.

Re: [PATCH, stage1] Make parloops gate more strict

2015-06-16 Thread Richard Biener
On Mon, Jun 15, 2015 at 12:38 AM, Tom de Vries wrote: > On 14/06/15 23:49, Bernhard Reutner-Fischer wrote: >> >> On June 14, 2015 10:55:59 AM GMT+02:00, Tom de Vries >> wrote: >>> >>> On 13/03/15 11:36, Richard Biener wrote: On Fri, Mar 13, 2015 at 11:32 AM, Tom de Vries >>> >>> wrote:

Re: [Aarch64] Add support for ARMv8.1 command line options.

2015-06-16 Thread Matthew Wahab
Ping. Updated patch attached. On 04/06/15 10:16, Matthew Wahab wrote: ARMv8.1 is a set of optional architectural extensions to ARMv8. Support, added by other patches, is enabled in binutils for ARMv8.1 and for the individual extensions by using architechure name "armv8.1-a" or by adding the exte

Re: Fix verify_type ICE with -fshort-enum

2015-06-16 Thread Richard Biener
On Fri, Jun 12, 2015 at 10:00 AM, Marek Polacek wrote: > On Thu, Jun 11, 2015 at 11:47:43PM +0200, Jan Hubicka wrote: >> Hi, >> gcc.c-torture/execute/930408-1.c currently ICE on -fshort-enum target(s) >> because >> TYPE_PACKED is not consistently set among type variants. > > I guess that's becaus

Re: [PATCH] Fix PR 66301

2015-06-16 Thread Richard Biener
On Thu, Jun 11, 2015 at 6:34 PM, Martin Jambor wrote: > Hi, > > the following patch is a quick fix for PR 66301. > eliminate_dom_walker::before_dom_children in tree-ssa-pre.c calls > dump_possible_polymorphic_call_targets when dump_enabled_p returns > true, but the function assumes dump_file is no

[Patch Testsuite obvious] gcc.target/arm/pr65647.c should not unconditionally add -mfloat-abi=soft

2015-06-16 Thread James Greenhalgh
Hi, This is another instance in the ARM testsuite of a test unconditionally adding a -mfloat-abi=soft directive, which can conflict with multi-lib. Fixed in the same way as the other recent testsuite patches. This test also wants limiting to run on armv6-m, so check that we are safe to do that.

Re: [PATCH][AArch64] Fix ICEs with +nofp/-mgeneral-regs-only and improve error messages; clarify docs.

2015-06-16 Thread James Greenhalgh
On Thu, Jun 11, 2015 at 12:28:08PM +0100, Alan Lawrence wrote: > Hi, > > This is a follow-up to Jim Wilson's patch fixing ICE's with > -march=armv8-a+nofp, and the discussion here: > https://gcc.gnu.org/ml/gcc-patches/2015-06/msg00177.html > > The first patch improves the error messages to descri

Re: [AArch64] Fix predicate and constraint mismatch in logical atomic operations

2015-06-16 Thread Christophe Lyon
On 16 June 2015 at 10:20, Christophe Lyon wrote: > On 15 June 2015 at 14:16, Christophe Lyon wrote: >> On 8 May 2015 at 12:42, Richard Biener wrote: >>> On Tue, Nov 4, 2014 at 11:44 AM, Marcus Shawcroft >>> wrote: On 25 September 2014 04:45, Michael Collison wrote: > On certain p

Re: [Patch][ARM,testsuite] Fix gcc.target/arm/thumb-ifcvt.c

2015-06-16 Thread Kyrill Tkachov
On 16/06/15 11:09, Christophe Lyon wrote: Hi, Since Kyrill's r224367 (Restrict MAX_CONDITIONAL_EXECUTE when -mrestrict-it is in place), gcc.target/arm/thumb-ifcvt.c fails when testing a compiler configured to generate armv8 code by default (I used --with-cpu=cortex-a57 for instance). This is b

[Patch][ARM,testsuite] Fix gcc.target/arm/thumb-ifcvt.c

2015-06-16 Thread Christophe Lyon
Hi, Since Kyrill's r224367 (Restrict MAX_CONDITIONAL_EXECUTE when -mrestrict-it is in place), gcc.target/arm/thumb-ifcvt.c fails when testing a compiler configured to generate armv8 code by default (I used --with-cpu=cortex-a57 for instance). This is because -mrestrict-it is on by default for arm

Re: [Patch ARM-AArch64/testsuite Neon intrinsics 00/20] Executable tests

2015-06-16 Thread James Greenhalgh
On Mon, Jun 15, 2015 at 11:11:16PM +0100, Christophe Lyon wrote: > Ping? > > > On 27 May 2015 at 22:15, Christophe Lyon wrote: > > This patch series is a follow-up to the tests I already contributed, > > converted from my original testsuite. > > > > This series consists in 20 new patches, which

[gomp4,bootstrap] Remove unused variable in lower_reduction_clauses

2015-06-16 Thread Tom de Vries
Committed this patch to fix bootstrap. Thanks, - Tom Remove unused variable in lower_reduction_clauses 2015-06-16 Tom de Vries * omp-low.c (lower_reduction_clauses): Remove unused variable call. --- gcc/omp-low.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/omp-l

[Patch Vax] zero/sign extend patterns need to be SUBREG aware

2015-06-16 Thread James Greenhalgh
Hi, The testcase in this patch, from libgcc, causes an ICE in the Vax build. The problem is that the sign and zero extend patterns in vax.md do not expect to see SUBREG rtx patterns, but use register_operand as the predicate. Forwprop isn't doing anything wrong or unusual in the testcase, so I t

[patch 5/6] scalar-storage-order merge: rest

2015-06-16 Thread Eric Botcazou
This is the rest of the implementation. * asan.c (instrument_derefs): Adjust call to get_inner_reference. * builtins.c (get_object_alignment_2): Likewise. * cfgexpand.c (expand_debug_expr): Adjust call to get_inner_reference and get_ref_base_and_extent. * db

Re: New type-based pool allocator code miscompiled due to aliasing issue?

2015-06-16 Thread Martin Liška
On 06/15/2015 07:31 PM, Marc Glisse wrote: > On Mon, 15 Jun 2015, Martin Liška wrote: > >> Ah, I overlooked that it's not a placement new, but just static casting. >> Anyway, if I added: >> >> cselib_val () {} >> >> to struct cselib_val and changed the cast to placement new: >> char *ptr = (char

[AArch64 Testsuite obvious] Reinstate torture-init and torture-finalize in advsimd-intrinsics.exp

2015-06-16 Thread James Greenhalgh
Hi, advsimd-intrinsics.exp is polluting set-torture-options without cleaning up after itself. This manifests as a failure in aarch64-none-linux-gnu testing: FAIL: gcc.dg/torture/builtin-cproj-1.c -Og -g (test for excess errors) This test does not expect to be called with -Og and will fail

[patch 4/6] scalar-storage-order merge: bulk

2015-06-16 Thread Eric Botcazou
This is the bulk of the implementation. * calls.c (store_unaligned_arguments_into_pseudos): Adjust calls to extract_bit_field and store_bit_field. (initialize_argument_information): Adjust call to store_expr. (load_register_parameters): Adjust call to extract_bit_fi

[13/13] Update comments in hash-table.h

2015-06-16 Thread Richard Sandiford
This updates the commentary in hash-table.h for the changes in this series and fixes some cases that were already out of date. It also has a couple of trivial formatting fixes. gcc/ * hash-table.h: Update comments. Index: gcc/hash-table.h =

[12/13] Reuse hash_table traits for hash_set

2015-06-16 Thread Richard Sandiford
This is the main patch, to reuse the hash_table traits for hash_set. The idea is to replace the untemplated default_hashset_traits with a templated default_hash_traits, which gives the default traits for a given type. This allows things like hash_set to continue to work. For now I've left default

Re: [ARM Churn] Rename LOGICAL_OP_NON_SC to LOGICAL_OP_NON_SHORT_CIRCUIT

2015-06-16 Thread Kyrill Tkachov
On 16/06/15 10:07, James Greenhalgh wrote: Hi, SC is an acronym used when discussing memory models to mean sequentially consistent, seeing it in the context of tuning structures threw me. This patch just expands the acronym, to save others from this confusion. For me SC is more associated wit

[11/13] Generalise typed_noop_remove

2015-06-16 Thread Richard Sandiford
The traits interface is supposed to support non-pointer element types, so there's no real reason for typed_noop_remove to be specifically for pointers. It should be usable by anything that wants a no-op remove(). gcc/ * hash-traits.h (typed_noop_remove): Don't require a pointer type. Ind

Re: [patch 2/6] scalar-storage-order merge: C front-end

2015-06-16 Thread Andrew Pinski
On Tue, Jun 16, 2015 at 2:06 AM, Ramana Radhakrishnan wrote: > > > On 16/06/15 09:54, Eric Botcazou wrote: >> >> This is the C front-end + C family part. >> >> * doc/extend.texi (type attributes): Document >> scalar_storage_order. >> * doc/invoke.texi (Warnings): Document -Wno-scal

[10/13] Require {mark,id}_{deleted,empty} functions

2015-06-16 Thread Richard Sandiford
After the previous changes, all traits classes provide an implementation of the empty & deleted entry functions, so we can remove the code that provided defaults. gcc/ * hash-table.h (has_is_deleted, is_deleted_helper): Delete. (has_is_empty, is_empty_helper): Delete. (has_

[ARM Churn] Rename LOGICAL_OP_NON_SC to LOGICAL_OP_NON_SHORT_CIRCUIT

2015-06-16 Thread James Greenhalgh
Hi, SC is an acronym used when discussing memory models to mean sequentially consistent, seeing it in the context of tuning structures threw me. This patch just expands the acronym, to save others from this confusion. Built an ARM compiler to ensure I hadn't damaged anything. Happy to drop the p

Re: [patch 2/6] scalar-storage-order merge: C front-end

2015-06-16 Thread Ramana Radhakrishnan
On 16/06/15 09:54, Eric Botcazou wrote: This is the C front-end + C family part. * doc/extend.texi (type attributes): Document scalar_storage_order. * doc/invoke.texi (Warnings): Document -Wno-scalar-storage-order. c-family/ * c-common.c (c_common_attributes): Add scala

Re: [PING^3] [PATCH] [AArch64, NEON] Improve vmulX intrinsics

2015-06-16 Thread James Greenhalgh
On Tue, May 05, 2015 at 02:14:16PM +0100, Jiangjiji wrote: > Hi James, > > Thanks for your comment. > > Seems we need a 'dup' before 'fmul' if we use the GCC vector extension syntax > way. > > Example: > dup v1.2s, v1.s[0] > fmulv0.2s, v1.2s, v0.2s > > And we need anoth

Re: [gomp4] Generate sequential loop for OpenACC loop directive inside kernels

2015-06-16 Thread Tom de Vries
On 16/06/15 10:59, Chung-Lin Tang wrote: This patch adjusts omp-low.c:expand_omp_for_generic() to expand to a "sequential" loop form (without the OMP runtime calls), used for loop directives inside OpenACC kernels constructs. Tom mentions that this allows the kernels parallelization to work whe

[09/13] Make remaining pointer hashes inherit from a generic class

2015-06-16 Thread Richard Sandiford
This patch mops up the remaining pointer traits classes that didn't inherit from any of the standard ones and just did their own thing. gcc/ * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash. Remove redundant typedefs and members. * coverage.c (counts_entry): Inherit

[08/13] Add a ggc_cache_ptr_hash

2015-06-16 Thread Richard Sandiford
Like the previous patch, but for ggc_cache_hasher. gcc/ * hash-traits.h (ggc_cache_hasher): Rename to... (ggc_cache_remove): ...this and remove typedefs. (ggc_cache_ptr_hash): New class. * hash-table.h: Update commentary. * emit-rtl.c (const_int_hasher): Inh

[07/13] Add ggc_ptr_hash

2015-06-16 Thread Richard Sandiford
This patch renames ggc_hasher to ggc_remove and removes the typedefs, to make it provide the same kind of interface as typed_noop_remove and typed_free_remove. It then defines a new class ggc_ptr_hash that inherits from both pointer_hash and ggc_remove. It changes all uses of ggc_hasher to use gg

[gomp4] Generate sequential loop for OpenACC loop directive inside kernels

2015-06-16 Thread Chung-Lin Tang
This patch adjusts omp-low.c:expand_omp_for_generic() to expand to a "sequential" loop form (without the OMP runtime calls), used for loop directives inside OpenACC kernels constructs. Tom mentions that this allows the kernels parallelization to work when '#pragma acc loop' makes the front-ends c

[patch 3/6] scalar-storage-order merge: C++ front-end

2015-06-16 Thread Eric Botcazou
This is the C++ front-end part, probably incomplete but passes the testsuite. cp/ * class.c (finish_struct_1): If structure has reverse scalar storage order, rewrite the type of array fields with scalar component. * semantics.c (reduced_constant_expression_p) : Deal with

[06/13] Add free_ptr_hash

2015-06-16 Thread Richard Sandiford
Similarly to the last patch, this one adds a free_ptr_hash that inherits from both pointer_hash and typed_free_remove. gcc/ * hash-traits.h (free_ptr_hash): New class. * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash rather than typed_free_remove. Remove

[patch 2/6] scalar-storage-order merge: C front-end

2015-06-16 Thread Eric Botcazou
This is the C front-end + C family part. * doc/extend.texi (type attributes): Document scalar_storage_order. * doc/invoke.texi (Warnings): Document -Wno-scalar-storage-order. c-family/ * c-common.c (c_common_attributes): Add scalar_storage_order. (handle_scalar_stor

[05/13] Add nofree_ptr_hash

2015-06-16 Thread Richard Sandiford
This patch stops pointer_hash from inheriting typed_noop_remove and instead creates a new class nofree_ptr_hash that inherits from both. It then updates all uses of typed_noop_remove (which are all pointers) and pointer_hash so that they use this new class instead. gcc/ * hash-table.h: Upd

[04/13] Add {mark,is}_{empty,deleted} to pointer_hash

2015-06-16 Thread Richard Sandiford
This patch just adds the standard pointer handling of empty and deleted entries. As the series goes on, more and more traits classes will inherit these definitions, to the point where we can require the functions to exist. gcc/ * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::ma

  1   2   >