Re: [PATCH, alpha]: Remove dead (HOST_BITS_PER_WIDE_INT 64) code

2015-05-08 Thread Richard Henderson
On 05/08/2015 09:43 AM, Uros Bizjak wrote: @@ -1509,8 +1509,7 @@ (and:DI (ashift:DI (match_operand:DI 1 register_operand r) (match_operand:DI 2 mul8_operand I)) (match_operand:DI 3 immediate_operand i)))] - HOST_BITS_PER_WIDE_INT == 64 -

[RFC 0/6] Flags outputs for asms

2015-05-07 Thread Richard Henderson
; asm( : =@cc#C(r)); return r; } \ int j##C(void) { int r; asm( : =@cc#C(r)); if (!r) bar(); } #define DO2(C) DO1(C) DO1(n##C) DO2(a) DO2(b) DO2(c) DO2(e) DO2(g) DO2(l) DO2(o) DO2(p) DO2(s) DO2(z) DO2(ae) DO2(be) DO2(ge) DO2(le) --- Richard Henderson (6): Only resolve_asm_operand_names once

[PATCH 1/6] Only resolve_asm_operand_names once

2015-05-07 Thread Richard Henderson
We do it in the front end already; no need to repeat. --- gcc/cfgexpand.c | 2 -- gcc/stmt.c | 7 --- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 5905ddb..c77a4ac 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -2554,8

[PATCH 6/6] i386: Implement asm flag outputs

2015-05-07 Thread Richard Henderson
All jcc mnemonics implemented as =@ to make it easy for someone reading the manual to figure out what condition is desired. --- gcc/config/i386/constraints.md | 5 ++ gcc/config/i386/i386.c | 132 ++--- 2 files changed, 130 insertions(+), 7

[PATCH 5/6] i386: Add CCPmode

2015-05-07 Thread Richard Henderson
For testing parity coming out of asm flags. --- gcc/config/i386/i386-modes.def | 2 ++ gcc/config/i386/i386.c | 19 +++ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/gcc/config/i386/i386-modes.def b/gcc/config/i386/i386-modes.def index 0b6a1f1..714c138

[PATCH 2/6] Merge expand_asm_operands into expand_asm_stmt

2015-05-07 Thread Richard Henderson
Prepatory to converting from tree chains to vectors. --- gcc/cfgexpand.c | 167 1 file changed, 72 insertions(+), 95 deletions(-) diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index c77a4ac..a5de512 100644 --- a/gcc/cfgexpand.c +++

[PATCH 3/6] Canonicalize asm volatility earlier

2015-05-07 Thread Richard Henderson
If gimple_asm_volatile_p is correct, no point re-checking. This is also done by the C and C++ front ends, but not Ada. So we can't yet trust ASM_VOLATILE_P from the front end. --- gcc/cfgexpand.c | 11 +++ gcc/gimplify.c | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) diff

[PATCH 4/6] Convert to md_asm_adjust

2015-05-07 Thread Richard Henderson
Using proper vectors instead of lists of trees. --- gcc/cfgexpand.c | 614 --- gcc/config/cris/cris.c | 88 +++ gcc/config/i386/i386.c | 24 +- gcc/config/mn10300/mn10300.c | 20 +- gcc/config/rs6000/rs6000.c | 17 +-

Re: [PATCH] Fix size type for cold partition names (hot-cold function partitioning)

2015-04-30 Thread Richard Henderson
On 04/30/2015 09:26 AM, Caroline Tice wrote: 2015-04-30 Caroline Tice cmt...@google.com PR 65929 * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition. (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition. * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document

Re: [debug-early] fix problem with C_TYPE_INCOMPLETE_VARS and TYPE_VFIELD overloading

2015-04-24 Thread Richard Henderson
On 04/24/2015 10:52 AM, Aldy Hernandez wrote: In the debug-early work we call dwarf2out early from rest_of_decl_compilation. Dwarf2out, via gen_struct_or_union_type_die(), will eventually look at TYPE_VFIELD, which is currently being overloaded by the C front-end to keep incomplete

Re: [libstdc++/65033] Give alignment info to libatomic

2015-04-03 Thread Richard Henderson
On 04/03/2015 07:13 AM, Jonathan Wakely wrote: +++ b/libstdc++-v3/include/std/atomic @@ -165,9 +165,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION struct atomic { private: - // Align 1/2/4/8/16-byte types the same as integer types of that size. + // Align 1/2/4/8/16-byte

Re: [libstdc++/65033] Give alignment info to libatomic

2015-03-31 Thread Richard Henderson
On 03/31/2015 06:41 AM, Jonathan Wakely wrote: This is the best I've come up with, does anyone have any better ideas than the #else branch to hardcode alignment of 16-byte types to 16? If there's no 16 byte type, are we convinced this matters? I mean, there isn't a 16-byte atomic instruction

Re: [libstdc++/65033] Give alignment info to libatomic

2015-03-31 Thread Richard Henderson
On 03/31/2015 08:03 AM, Jonathan Wakely wrote: On 31/03/15 07:54 -0700, Richard Henderson wrote: On 03/31/2015 06:41 AM, Jonathan Wakely wrote: This is the best I've come up with, does anyone have any better ideas than the #else branch to hardcode alignment of 16-byte types to 16? If there's

Re: [PATCH] PR target/65248: Copy relocation against protected symbol doesn't work

2015-03-27 Thread Richard Henderson
On 03/06/2015 05:42 AM, H.J. Lu wrote: gcc/ PR target/65248 * output.h (default_binds_local_p_2): New. * varasm.c (default_binds_local_p_2): Renamed to ... (default_binds_local_p_3): This. Don't return true on protected data symbol if protected data may be

Re: [libstdc++/65033] Give alignment info to libatomic

2015-03-25 Thread Richard Henderson
On 03/25/2015 11:49 AM, Jonathan Wakely wrote: On 25/03/15 11:36 -0700, Richard Henderson wrote: On 03/25/2015 09:22 AM, Jonathan Wakely wrote: On 25/03/15 11:39 -0700, Richard Henderson wrote: On 03/25/2015 09:22 AM, Jonathan Wakely wrote: +static_assert( alignof(std::atomictwoints) alignof

Re: [libstdc++/65033] Give alignment info to libatomic

2015-03-25 Thread Richard Henderson
On 03/25/2015 09:22 AM, Jonathan Wakely wrote: private: - _Tp _M_i; + // Align 1/2/4/8/16-byte types the same as integer types of that size. + // This matches the alignment effects of the C11 _Atomic qualifier. + static constexpr int _S_alignment + = sizeof(_Tp)

Re: [libstdc++/65033] Give alignment info to libatomic

2015-03-25 Thread Richard Henderson
On 03/25/2015 09:22 AM, Jonathan Wakely wrote: +static_assert( alignof(std::atomictwoints) alignof(int), + std::atomic not suitably aligned ); This is only true if int64_t has alignment larger than int32_t, which is unfortunately not always the case. r~

Re: [PATCH] Turn RETURN_ADDR_IN_PREVIOUS_FRAME into C expression

2015-03-03 Thread Richard Henderson
On 03/02/2015 10:42 PM, Max Filippov wrote: gcc/ * builtins.c (expand_builtin_return_addr): Add RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove surrounding #ifdef. * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change definition to 1. *

Re: [patch] PR rtl-optimization/65220: avoid integer division in stack alignment

2015-03-02 Thread Richard Henderson
On 03/02/2015 10:55 AM, Aldy Hernandez wrote: Do you actually need the reload completed? Couldn't this be legitimately split before reload (and then parts of it DCE'd as necessary)? Otherwise, the split condition does need as mentioned by Uros. Oh, I forgot -- even if you can exclude

Re: [patch] PR rtl-optimization/65220: avoid integer division in stack alignment

2015-03-02 Thread Richard Henderson
On 03/02/2015 09:55 AM, Richard Henderson wrote: On 02/26/2015 05:46 PM, Aldy Hernandez wrote: +;; Optimize division or modulo by constant power of 2, if the constant +;; materializes only after expansion. +(define_insn_and_split *udivmodmode4_pow2 + [(set (match_operand:SWI48 0

Re: [PATCH, alpha]: Fix PR/47230 [4.6/4.7 Regression] gcc fails to bootstrap on alpha in stage2 with relocation truncated to fit: GPREL16 against ...

2015-03-02 Thread Richard Henderson
On 02/27/2015 05:11 AM, Uros Bizjak wrote: On Wed, Feb 25, 2015 at 8:18 PM, Richard Henderson r...@redhat.com wrote: On 02/25/2015 09:02 AM, Uros Bizjak wrote: The patch was tested on alpha-linux-gnu and alphaev68-linux-gnu for all default languages plus obj-c++ and go. OK for mainline? Ok

Re: [patch] PR rtl-optimization/65220: avoid integer division in stack alignment

2015-03-02 Thread Richard Henderson
On 02/26/2015 05:46 PM, Aldy Hernandez wrote: +;; Optimize division or modulo by constant power of 2, if the constant +;; materializes only after expansion. +(define_insn_and_split *udivmodmode4_pow2 + [(set (match_operand:SWI48 0 register_operand =r) + (udiv:SWI48 (match_operand:SWI48 2

Re: [patch] PR rtl-optimization/65220: avoid integer division in stack alignment

2015-03-02 Thread Richard Henderson
On 03/02/2015 10:25 AM, Aldy Hernandez wrote: On 03/02/2015 09:55 AM, Richard Henderson wrote: On 02/26/2015 05:46 PM, Aldy Hernandez wrote: +;; Optimize division or modulo by constant power of 2, if the constant +;; materializes only after expansion. +(define_insn_and_split

Re: [PATCH, alpha]: Fix PR/47230 [4.6/4.7 Regression] gcc fails to bootstrap on alpha in stage2 with relocation truncated to fit: GPREL16 against ...

2015-02-25 Thread Richard Henderson
On 02/25/2015 09:02 AM, Uros Bizjak wrote: The patch was tested on alpha-linux-gnu and alphaev68-linux-gnu for all default languages plus obj-c++ and go. OK for mainline? Ok. Thanks. r~

Re: [PATCH] PR rtl-optimization/32219: optimizer causees wrong code in pic/hidden/weak symbol checking

2015-02-19 Thread Richard Henderson
On 02/19/2015 01:04 PM, Uros Bizjak wrote: 2015-02-19 Uros Bizjak ubiz...@gmail.com * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols. Ok. Thanks. r~

Re: [PATCH] PR rtl-optimization/32219: optimizer causees wrong code in pic/hidden/weak symbol checking

2015-02-19 Thread Richard Henderson
On 02/19/2015 09:08 AM, Alex Velenko wrote: Your suggestion seem to fix gcc.target/arm/long-calls-1.c, but has to be thoroughly tested. Before you do complete testing, please also delete the TREE_STATIC test. That bit should never be relevant to functions, as it indicates not that it is in the

Re: [PATCH] PR rtl-optimization/32219: optimizer causees wrong code in pic/hidden/weak symbol checking

2015-02-19 Thread Richard Henderson
On 02/18/2015 06:17 AM, Alex Velenko wrote: By changing behaviour of varasm.c:default_binds_local_p, this patch changes behaviour of gcc/config/arm/arm.c:arm_function_in_section_p and through it breaks gcc/config/arm/arm.c:arm_is_long_call_p for weak symbols. As a result, I get regression

Re: [PATCH] PR target/65064: Return false for COMMON symbols

2015-02-18 Thread Richard Henderson
On 02/18/2015 05:18 AM, H.J. Lu wrote: PR target/65064 * config/ia64/predicates.md (sdata_symbolic_operand): Return false for common symbols. Ok. r~

Re: [PATCH] PR rtl-optimization/32219: optimizer causees wrong code in pic/hidden/weak symbol checking

2015-02-16 Thread Richard Henderson
On 02/16/2015 06:01 AM, H.J. Lu wrote: On Mon, Feb 16, 2015 at 5:25 AM, Uros Bizjak ubiz...@gmail.com wrote: Hello! 2015-02-12 H.J. Lu hongjiu...@intel.com Richard Henderson r...@redhat.com PR rtl/32219 * cgraphunit.c (cgraph_node::finalize_function): Set

Re: [committed] Change Q and T constraints to memory constraints

2015-02-16 Thread Richard Henderson
On 02/14/2015 06:50 AM, John David Anglin wrote: Possibly the constant can somehow be forced into the data section where the relocations aren't a problem? Hmm. It looks like we might already do that. See default_select_rtx_section. r~

Re: [committed] Change Q and T constraints to memory constraints

2015-02-13 Thread Richard Henderson
On 02/13/2015 05:22 AM, John David Anglin wrote: + /* Reload sometimes tries to put const data symbolic operands in + readonly memory. The HP SOM linker doesn't allow symbolic data + in readonly memory. */ + if (TARGET_SOM + !function_label_operand (x, VOIDmode) +

Re: [PATCH] Optimize bfi by remove redundant zero_extend

2015-02-13 Thread Richard Henderson
On 02/13/2015 08:26 AM, Renlin Li wrote: + /* Complete overlap. We can remove the source ZERO_EXTEND. */ + if (width == inner_size +(regno FIRST_PSEUDO_REGISTER) +HARD_REGNO_MODE_OK (regno, mode)) + { + rtx reg = gen_rtx_REG (mode, regno); + return

Re: [PATCH] PR rtl-optimization/32219: optimizer causees wrong code in pic/hidden/weak symbol checking

2015-02-12 Thread Richard Henderson
On 02/12/2015 10:58 AM, H.J. Lu wrote: if (DECL_VISIBILITY_SPECIFIED (exp) + (resolved_locally + || !flag_pic Yes, this essentially goes back to your original patch, which I claim still conflates issues. In particular, I believe mentioning flag_pic here is a serious error.

Re: [PATCH] Add testcase for PR sanitizer/65000

2015-02-12 Thread Richard Henderson
On 02/12/2015 01:23 PM, Jakub Jelinek wrote: Ok for trunk? 2015-02-12 Jakub Jelinek ja...@redhat.com PR sanitizer/65000 * g++.dg/ubsan/pr65000.C: New test. Yes, thanks. I was still trying to generate a pure C++ testcase, without -fsanitize. Ah well... r~

Re: RFA: Tweak documentation of fma

2015-02-12 Thread Richard Henderson
On 02/03/2015 06:29 AM, Richard Sandiford wrote: Represents the @code{fma}, @code{fmaf}, and @code{fmal} builtin -functions that do a combined multiply of @var{x} and @var{y} and then -adding to@var{z} without doing an intermediate rounding step. +functions, which compute @samp{@var{x} *

Re: [PATCH] Tweak tm/pr47573.C testcase (PR c++/64884)

2015-02-12 Thread Richard Henderson
On 02/12/2015 01:25 PM, Jakub Jelinek wrote: Hi! This patch tweaks the pr47573.C testcase, so that it is run only on comdat_group target. It is true that comdat_group is stricter than comdat, but we don't have an effective-target for the latter and I'm not sure what exactly to test for.

[libstdc++/65033] Give alignment info to libatomic

2015-02-12 Thread Richard Henderson
When we fixed PR54005, making sure that atomic_is_lock_free returns the same value for all objects of a given type, we probably should have changed the interface so that we would pass size and alignment rather than size and object pointer. Instead, we decided that passing null for the object

Re: [PATCH] PR rtl-optimization/32219: optimizer causees wrong code in pic/hidden/weak symbol checking

2015-02-12 Thread Richard Henderson
On 02/12/2015 03:05 PM, H.J. Lu wrote: @@ -6830,9 +6830,15 @@ default_binds_local_p_2 (const_tree exp, bool shlib, bool weak_dominate) bool resolved_locally = false; if (symtab_node *node = symtab_node::get (exp)) { - /* When not building shared library and weak_dominate is

Re: [PATCH] PR rtl-optimization/32219: optimizer causees wrong code in pic/hidden/weak symbol checking

2015-02-11 Thread Richard Henderson
On 02/10/2015 01:19 PM, Richard Henderson wrote: As an existing issue, I'm not sure why specified visibility is any different from unspecified visibility. As far as I'm aware, the specified bit simply means that the decl doesn't inherit inherit visibility from the class, or from the command

Re: [PATCH] Implement libffi for AARCH64:ILP32

2015-02-10 Thread Richard Henderson
On 02/09/2015 12:40 AM, Andrew Pinski wrote: #ifndef LIBFFI_ASM +#ifdef __ILP32__ +typedef unsigned long long ffi_arg; +typedef signed long long ffi_sarg; +#else You need to set FFI_SIZEOF_ARG too. Otherwise it looks ok. r~

Re: [PATCH] Implement libffi for AARCH64:ILP32

2015-02-10 Thread Richard Henderson
On 02/09/2015 12:51 AM, Andrew Haley wrote: Would it make more sense to use int64_t rather than long long? Probably, but we should do that all over libffi, rather than just this one hunk. r~

Re: [PATCH] Implement libffi for AARCH64:ILP32

2015-02-10 Thread Richard Henderson
On 02/10/2015 11:02 AM, Andrew Pinski wrote: +#define FFI_SIZEOF_JAVA_RAW 4 Since aarch64 doesn't implement the raw java api, this is irrelevant. r~

Re: [PATCH] PR rtl-optimization/32219: optimizer causes wrong code in pic/hidden/weak symbol checking

2015-02-10 Thread Richard Henderson
On 02/07/2015 08:45 AM, H.J. Lu wrote: Here is an updated patch. This is an annoying comment to differentiate 3 different versions, FYI. @@ -6826,11 +6817,18 @@ default_binds_local_p_1 (const_tree exp, int shlib) (TREE_STATIC (exp) || DECL_EXTERNAL (exp))) { varpool_node

Re: C PATCH for PR64856 (initializing range of elements in C99)

2015-02-09 Thread Richard Henderson
On 02/09/2015 11:51 AM, Marek Polacek wrote: We reject the following testcase in C99 mode, because in C99 we always wrap COMPOUND_LITERAL_EXPR in a SAVE_EXPR when initializing a range of elements, even though the expression is required to be constant. As a consequence, we error out with

Re: patch to fix rtl documentation for new floating point comparisons

2015-02-09 Thread Richard Henderson
On 02/09/2015 11:10 AM, Kenneth Zadeck wrote: +@table @code +@findex ltgt +@cindex less than or greater than +@item (ltgt:@var{m} @var{x} @var{y}) +@code{STORE_FLAG_VALUE} if the values represented by @var{x} and +@var{y} are less, or greater, otherwise 0. This is a quiet operation +that

Re: emit-rtl tidy

2015-02-06 Thread Richard Henderson
On 02/05/2015 04:18 PM, Alan Modra wrote: OK when stage1 opens? * function.h (struct emit_status): Delete x_first_insn, x_last_insn and sequence_stack. Add seq. (seq_stack): Delete. * function.c (prepare_function_start): Don't access x_last_insn. * emit-rtl.h

Re: [PATCH x86_64] Optimize access to globals in -fpie -pie builds with copy relocations

2015-02-05 Thread Richard Henderson
On 02/04/2015 03:29 PM, H.J. Lu wrote: +++ b/gcc/varasm.c @@ -6826,11 +6826,17 @@ default_binds_local_p_1 (const_tree exp, int shlib) (TREE_STATIC (exp) || DECL_EXTERNAL (exp))) { varpool_node *vnode = varpool_node::get (exp); - if (vnode (resolution_local_p

Re: [PATCH x86_64] Optimize access to globals in -fpie -pie builds with copy relocations

2015-02-05 Thread Richard Henderson
On 02/05/2015 11:01 AM, H.J. Lu wrote: Can you elaborate why it depends on COPY relocation? There is no COPY relocation on x86-64. Ho hum, we appear to have switched topics mid-thread. I agree that we cannot override a weak symbol in the executable with even a non-weak symbol in a shared

Re: lra incorrectly reloading scratch for a memory barrier?

2015-01-30 Thread Richard Henderson
On 01/30/2015 12:40 PM, Richard Biener wrote: On January 30, 2015 9:18:57 PM CET, Richard Henderson r...@redhat.com wrote: On 01/30/2015 12:12 PM, Mike Stump wrote: On Jan 30, 2015, at 9:52 AM, Jakub Jelinek ja...@redhat.com wrote: On Fri, Jan 30, 2015 at 09:45:26AM -0800, Mike Stump wrote: I

Re: [PATCH] Break too deep TER chains for debug stmts during expansion (PR debug/64817)

2015-01-30 Thread Richard Henderson
On 01/30/2015 09:47 AM, Jakub Jelinek wrote: +hash_maptree, tree *deep_ter_debug_map; Any reason this data can't be static? Otherwise, ok. r~

Re: [PATCH] Change __ARM_NEON__ to __ARM_NEON in libcpp/lex.c

2015-01-30 Thread Richard Henderson
On 01/30/2015 04:52 AM, Szabolcs Nagy wrote: When running natively on AArch64 the preprocessor did not use the AdvSIMD optimized search_line_fast function, because it was ifdefed around by __ARM_NEON__ instead of __ARM_NEON. Yes, sorry I didn't follow up on that from September:

Re: lra incorrectly reloading scratch for a memory barrier?

2015-01-30 Thread Richard Henderson
On 01/30/2015 12:12 PM, Mike Stump wrote: On Jan 30, 2015, at 9:52 AM, Jakub Jelinek ja...@redhat.com wrote: On Fri, Jan 30, 2015 at 09:45:26AM -0800, Mike Stump wrote: I have a port that has: (insn 47 46 48 18 (parallel [ (unspec_volatile:DI [ (const_int 128

Re: [COMMITTED] Merge libffi with upstream

2015-01-29 Thread Richard Henderson
On 01/29/2015 01:10 AM, Iain Sandoe wrote: On 28 Jan 2015, at 18:16, Richard Henderson wrote: On 01/28/2015 10:10 AM, Dominique d'Humières wrote: I can't think of any reason they shouldn't work. Were they not running before, or did something else change? AFAIU the commit, the tests

Re: [PATCH] Fix PR64855

2015-01-29 Thread Richard Henderson
On 01/29/2015 01:53 PM, Jack Howarth wrote: PR libffi/64855 * testsuite/lib/libffi.exp: Don't set targetabis on darwin. Ok. r~

Re: [COMMITTED] Merge libffi with upstream

2015-01-28 Thread Richard Henderson
On 01/28/2015 10:10 AM, Dominique d'Humières wrote: I can't think of any reason they shouldn't work. Were they not running before, or did something else change? AFAIU the commit, the tests were not run on x86_64-*-*, so the tests and the corresponding failures are new. Well, the commit

Re: [COMMITTED] Merge libffi with upstream

2015-01-28 Thread Richard Henderson
On 01/28/2015 06:28 AM, Dominique Dhumieres wrote: This patch worked for me. Ok for mainline now? (r220158) This causes 340 new tests on darwin with -m32, 255 of them failing when executes, see https://gcc.gnu.org/ml/gcc-testresults/2015-01/msg03197.html. Are the tests with

Re: [COMMITTED] Merge libffi with upstream

2015-01-26 Thread Richard Henderson
On 01/26/2015 06:19 AM, Rainer Orth wrote: 2015-01-16 Rainer Orth r...@cebitec.uni-bielefeld.de * testsuite/lib/libffi.exp: Load target-supports.exp. (run-many-tests): Only set targetabis for ia32. Ok. r~

Re: [PATCH] Fix gcc -v (PR driver/64737)

2015-01-23 Thread Richard Henderson
On 01/23/2015 10:22 AM, Jakub Jelinek wrote: 2015-01-23 Jakub Jelinek ja...@redhat.com PR driver/64737 * gcc.c (print_configuration): Don't print a blank line at the end here... (run_attempt): ... but here unstead. Ok. r~

Re: [PATCH] Reenable CSE of non-volatile inline asm (PR rtl-optimization/63637)

2015-01-23 Thread Richard Henderson
On 01/15/2015 12:13 AM, Jakub Jelinek wrote: On Thu, Jan 15, 2015 at 07:46:18AM +0100, Richard Biener wrote: That last line means the compiler is free to delete a non-volatile asm with a memory clobber if that asm is not needed for dataflow. Or that is how I read it; it is trying to indicate

Re: [PATCH] PR 64722: fix corruption of %ebx on 32-bit i386 with libgccjit

2015-01-22 Thread Richard Henderson
On 01/22/2015 09:34 AM, David Malcolm wrote: gcc/ChangeLog: PR 64722 * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the latter may be affected by the former (e.g. on i686). Ok. r~

Re: [PATCH] Don't check for optab for 16bit bswap

2015-01-22 Thread Richard Henderson
On 01/21/2015 11:52 PM, Richard Biener wrote: On January 21, 2015 10:23:56 PM CET, Richard Henderson r...@redhat.com wrote: On 12/29/2014 06:04 AM, Thomas Preud'homme wrote: Since 16bit byteswap can be done via an 8 bit rotation (and it is the canonical form), the check for an optab only

Re: [PATCHv2][libatomic] Avoid misaligned atomic operations

2015-01-21 Thread Richard Henderson
On 01/20/2015 02:10 PM, Andrew Waterman wrote: 2015-01-09 Andrew Waterman water...@cs.berkeley.edu * fop_n.c (libat_fetch_op): Align address to word boundary. (libat_op_fetch): Likewise. Thanks. Applied to 4.8, 4.9, and mainline branches. r~

[COMMITTED] Fix target/64669 -- aarch64 profilebootstrap failure

2015-01-21 Thread Richard Henderson
As discussed in the PR, we're committing a layering violation here. Removing that violation fixes the ICE, which is the most important thing for the moment. Reviewing objdump of the stage3 cc1plus, about 90% of the instances of ccmp instruction are followed by a conditional branch, so combine is

Re: [PATCH] combine: Yet another distribute_notes problem (PR64682)

2015-01-21 Thread Richard Henderson
On 01/21/2015 08:16 AM, Segher Boessenkool wrote: 2015-01-21 Segher Boessenkool seg...@kernel.crashing.org gcc/ PR rtl-optimization/64682 * combine.c (distribute_notes): When moving a death note for a register that is set in the new I2, make sure to put it before

Re: [PATCH] Fix simplify-rtx endless recursion (PR debug/64511)

2015-01-21 Thread Richard Henderson
On 01/21/2015 01:30 PM, Jakub Jelinek wrote: Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2015-01-21 Jakub Jelinek ja...@redhat.com PR debug/64511 * simplify-rtx.c (simplify_relational_operation_1): Don't try to optimize (eq/ne (and

Re: [PATCH] Don't check for optab for 16bit bswap

2015-01-21 Thread Richard Henderson
On 12/29/2014 06:04 AM, Thomas Preud'homme wrote: Since 16bit byteswap can be done via an 8 bit rotation (and it is the canonical form), the check for an optab only serves to prevent the bswap optimization for targets that don't have a 16bit byteswap (but do have a rotation instruction).

Re: [PATCH] Cleanup EH after RTL DSE (PR rtl-optimization/62078)

2015-01-21 Thread Richard Henderson
On 01/21/2015 01:36 PM, Jakub Jelinek wrote: Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2015-01-21 Jakub Jelinek ja...@redhat.com PR rtl-optimization/62078 * dse.c: Include cfgcleanup.h. (rest_of_handle_dse): For -fnon-call-exceptions, if DSE

Re: [PATCH] Fix up dwarf2out ICE (PR debug/64663)

2015-01-20 Thread Richard Henderson
On 01/20/2015 03:30 AM, Jakub Jelinek wrote: 2015-01-20 Jakub Jelinek ja...@redhat.com PR debug/64663 * dwarf2out.c (decl_piece_node): Don't put bitsize into mode if bitsize = 0. (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl, dw_sra_loc_expr):

[COMMITTED] Fix pr libffi/64581

2015-01-20 Thread Richard Henderson
One of the few changes to libffi.exp that we picked up that looked quite logical. But I guess it turns out that we haven't properly configured the c++ compiler in dejagnu for libffi. Easiest thing to do is just revert this hunk. r~ PR libffi/64581 * testsuite/lib/libffi.exp

Re: Use static chain and libffi for Go closures

2015-01-19 Thread Richard Henderson
On 01/19/2015 02:26 AM, Andreas Schwab wrote: Ian Lance Taylor i...@golang.org writes: @@ -83,7 +83,7 @@ #else /* !defined(USE_LIBFFI_CLOSURES) */ void -makeFuncFFI(const struct __go_func_type *ftyp, ffi_go_closure *impl) +makeFuncFFI(const struct __go_func_type *ftyp, void *impl) {

Re: Use static chain and libffi for Go closures

2015-01-19 Thread Richard Henderson
On 01/19/2015 10:11 AM, Uros Bizjak wrote: Attached is a more conservative v2 patch that conditionally enables fixup code when FFI_TARGET_HAS_COMPLEX_TYPE is not defined. Tested on x86_64-linux-gnu {-m32} without regressions. I don't think this version should be required. For x86,

Re: Use static chain and libffi for Go closures

2015-01-17 Thread Richard Henderson
On 01/17/2015 01:52 AM, Andreas Schwab wrote: ../../../libgo/go/reflect/makefunc_ffi_c.c:21:53: error: unknown type name 'ffi_go_closure' void makeFuncFFI(const struct __go_func_type *ftyp, ffi_go_closure *impl) ^

Re: Use static chain and libffi for Go closures

2015-01-17 Thread Richard Henderson
On 01/17/2015 11:07 AM, Andreas Schwab wrote: Richard Henderson r...@redhat.com writes: On 01/17/2015 01:52 AM, Andreas Schwab wrote: ../../../libgo/go/reflect/makefunc_ffi_c.c:21:53: error: unknown type name 'ffi_go_closure' void makeFuncFFI(const struct __go_func_type *ftyp

Re: Use static chain and libffi for Go closures

2015-01-17 Thread Richard Henderson
On 01/17/2015 02:07 PM, Andrew Pinski wrote: On Sat, Jan 17, 2015 at 2:02 PM, Andreas Schwab sch...@linux-m68k.org wrote: Andrew Pinski pins...@gmail.com writes: On Sat, Jan 17, 2015 at 1:26 PM, Richard Henderson r...@redhat.com wrote: On 01/17/2015 11:07 AM, Andreas Schwab wrote: Richard

Re: Fix CC_MODE pessimization in reorg.c

2015-01-16 Thread Richard Henderson
On 01/16/2015 09:47 AM, Eric Botcazou wrote: 2015-01-16 Eric Botcazou ebotca...@adacore.com * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid, implement a more precise life analysis for it during backward scan. Ok. r~

Re: [COMMITTED] Merge libffi with upstream

2015-01-16 Thread Richard Henderson
On 01/15/2015 08:40 AM, Rainer Orth wrote: * on Solaris/SPARC, /bin/as requires .type fn,#function Gas accepts this as well, so let's just use that. * Yet unfixed for Solaris/SPARC /bin/as: as: v8.s, line 128: error: invalid digit in radix 10 as seems to only understand

[libgo] Build fix for sparc-linux

2015-01-16 Thread Richard Henderson
The glibc setcontext modifies %g7, so the SETCONTEXT_CLOBBERS_TLS configure test triggers. My guess is that Solaris doesn't clobber %g7, or Rainer would have noticed this before. Is it worth also checking for __linux__ in the elif test, or just wait until someone notices that they have an

Re: [PATCH, AARCH64] Fix ICE in CCMP (PR64015)

2015-01-15 Thread Richard Henderson
On 12/15/2014 12:41 AM, Zhenqiang Chen wrote: +(define_expand cmpmode + [(set (match_operand 0 cc_register ) +(match_operator:CC 1 aarch64_comparison_operator + [(match_operand:GPI 2 register_operand ) + (match_operand:GPI 3 aarch64_plus_operand )]))] + + +

Re: [COMMITTED] Merge libffi with upstream

2015-01-15 Thread Richard Henderson
On 01/15/2015 08:54 AM, H.J. Lu wrote: On Thu, Jan 15, 2015 at 8:40 AM, Rainer Orth r...@cebitec.uni-bielefeld.de wrote: Richard Henderson r...@redhat.com writes: Upstream libffi has added support for Go closures (using the static chain), and support for complex numbers. Perhaps less

Re: [COMMITTED] Merge libffi with upstream

2015-01-15 Thread Richard Henderson
On 01/15/2015 08:40 AM, Rainer Orth wrote: The patch introduced massive problems on Solaris, both SPARC and x86: * on Solaris/SPARC, /bin/as requires .type fn,#function instead of @function. I've simply commented the affected lines in src/sparc/v[89].S to make progress. *

Re: [COMMITTED] Merge libffi with upstream

2015-01-15 Thread Richard Henderson
On 01/15/2015 02:47 PM, H.J. Lu wrote: On Thu, Jan 15, 2015 at 8:40 AM, Rainer Orth r...@cebitec.uni-bielefeld.de wrote: Richard Henderson r...@redhat.com writes: Upstream libffi has added support for Go closures (using the static chain), and support for complex numbers. Perhaps less

Use static chain and libffi for Go closures

2015-01-15 Thread Richard Henderson
All of this has been posted before. I believe the ABI change is something we should have for gcc 5. Yes, the libffi merge has been causing problems (on targets that don't even support libgo, annoyingly), but missing support for the new libffi interfaces is easier to remedy in a dot release than

Re: [PATCH][AArch64] Improve bit-test-branch pattern to avoid unnecessary register clobber

2015-01-14 Thread Richard Henderson
On 12/15/2014 07:36 AM, Jiong Wang wrote: + char buf[64]; + uint64_t val = ((uint64_t) 1) UINTVAL (operands[1]); + sprintf (buf, tst\t%%w0, %PRId64, val); + output_asm_insn (buf, operands); + return bcond\t%l2; Better to simply modify the operand, as in operands[1] =

Re: [RFC] Tighten memory type assumption in RTL combiner pass.

2015-01-14 Thread Richard Henderson
On 01/14/2015 03:27 AM, Venkataramanan Kumar wrote: next_code = (code == MEM ? MEM : ((code == PLUS || code == MINUS) - SCALAR_INT_MODE_P (mode)) ? MEM + SCALAR_INT_MODE_P (mode) + (in_code == MEM)) ? MEM :

Re: [patch RFA libffi SH] Fix configure error for sh4-unknown-linux-gnu

2015-01-13 Thread Richard Henderson
On 01/12/2015 09:38 PM, Kaz Kojima wrote: 2015-01-13 Kaz Kojima kkoj...@gcc.gnu.org * configure.host: Remove extra brackets for sh. Ok, thanks. r~

Re: libffi is broken for x32

2015-01-13 Thread Richard Henderson
On 01/13/2015 07:35 AM, H.J. Lu wrote: Can I apply it to GCC trunk? Please. r~

Re: libffi is broken for x32

2015-01-12 Thread Richard Henderson
On 01/12/2015 03:46 PM, H.J. Lu wrote: On Mon, Jan 12, 2015 at 2:42 PM, H.J. Lu hjl.to...@gmail.com wrote: This libffi commit: 13e2d7b92557a9511a0414df82bf2df3edc55cba is the first bad commit commit 13e2d7b92557a9511a0414df82bf2df3edc55cba Author: Anthony Green gr...@moxielogic.com Date:

Re: libffi is broken for x32

2015-01-12 Thread Richard Henderson
On 01/12/2015 04:57 PM, H.J. Lu wrote: The problem is my x86_64-*-linux-gnux32 patch https://gcc.gnu.org/ml/gcc-patches/2012-08/msg01083.html was never accepted upstream. Can I apply it to config.guess in GCC? Ah. Hmm. Perhaps the configure.host patch would be better after all. r~

Re: [COMMITTED] Merge libffi with upstream

2015-01-12 Thread Richard Henderson
On 01/12/2015 11:08 AM, Uros Bizjak wrote: Hello! Upstream libffi has added support for Go closures (using the static chain), and support for complex numbers. Perhaps less relevant is new support for arc, microblaze, moxie, nios, and or1k targets. Without additional changes for Go, this

Re: [gofrontend-dev] Re: [PATCH 00/13] Go closures, libffi, and the static chain

2014-12-15 Thread Richard Henderson
On 12/15/2014 03:42 AM, Dominik Vogt wrote: On Fri, Dec 12, 2014 at 10:14:21AM -0800, Richard Henderson wrote: On 12/12/2014 04:06 AM, Dominik Vogt wrote: I'm not sure I've posted the missing patch anywhere yet, so it's attached to this message. At the moment it enables FFI_TYPE_COMPLEX only

Re: [gofrontend-dev] Re: [PATCH 00/13] Go closures, libffi, and the static chain

2014-12-12 Thread Richard Henderson
On 12/12/2014 04:06 AM, Dominik Vogt wrote: I'm not sure I've posted the missing patch anywhere yet, so it's attached to this message. At the moment it enables FFI_TYPE_COMPLEX only for s390[x], but eventually this should be used unconditionally. Thanks for that. I'd been meaning to get

Re: [gofrontend-dev] Re: [PATCH 00/13] Go closures, libffi, and the static chain

2014-12-12 Thread Richard Henderson
On 12/12/2014 05:57 AM, Dominik Vogt wrote: On Thu, Dec 11, 2014 at 07:51:44PM +1030, Alan Modra wrote: I was worried about exactly the same problem on powerpc with r11 being used for the static chain and also destroyed in linkage stubs. It turns out we don't traverse any linkage stubs. See

Re: [PATCH, AARCH64] Fix ICE in CCMP (PR64015)

2014-12-12 Thread Richard Henderson
- tree lhs = gimple_assign_lhs (g); enum machine_mode mode = TYPE_MODE (TREE_TYPE (lhs)); rtx target = gen_reg_rtx (mode); + + start_sequence (); tmp = emit_cstore (target, icode, NE, cc_mode, cc_mode, 0, tmp, const0_rtx, 1,

Re: [PATCH 00/13] Go closures, libffi, and the static chain

2014-12-11 Thread Richard Henderson
On 12/11/2014 01:06 AM, Dominik Vogt wrote: reflect.call ../../../libgo/runtime/go-reflect-call.c:216 reflect.call.N13_reflect.Value GCCDIR/build-go-closure/x86_64-unknown-linux-gnu/libgo/gotest30365/test/value.go:579 reflect.Call.N13_reflect.Value

Re: [gofrontend-dev] Re: [PATCH 00/13] Go closures, libffi, and the static chain

2014-12-11 Thread Richard Henderson
On 12/11/2014 04:25 AM, Dominik Vogt wrote: Update: If I disable the custom s390x code and switch to the implementation just using libffi for reflection calls, the same crash occurs with the testing/quick libgo test case. The called function sees a bogus value written by the synamic linker

Re: Reducing the amount of builtins by merging named patterns

2014-12-10 Thread Richard Henderson
On 12/10/2014 06:08 AM, Blumental Maxim wrote: We have ~30 groups of similar (i.e.having similar sets of attributes) named patterns. These groups together include ~230 template (i.e. having substitution attributes in their names) named patterns in total. So, we can reduce the amount of

Re: [PATCH x86] Enable v64qi permutations.

2014-12-10 Thread Richard Henderson
On 12/04/2014 01:49 AM, Ilya Tocar wrote: + if (!TARGET_AVX512BW || !(d-vmode == V64QImode)) Please don't over-complicate the expression. Use x != y instead of !(x == y). r~

Re: [PATCH, x86] Fix pblendv expand.

2014-12-09 Thread Richard Henderson
On 12/09/2014 07:59 AM, Evgeny Stupachenko wrote: However patch is fixing spec2006 benchmark. Shouldn't that be enough for regression testing? No. Spec is not free. r~

Re: Fix libgomp crash without TLS (PR42616)

2014-12-09 Thread Richard Henderson
On 12/09/2014 06:53 AM, Varvara Rainchik wrote: 2014-12-09 Varvara Rainchik varvara.rainc...@intel.com * config.h.in: Regenerate. * configure: Regenerate. * configure.ac: Add GCC_CHECK_EMUTLS. * libgomp.h: Add check for USE_EMUTLS: this case is

Re: [PATCH 01/10] rs6000: Clobber XER[CA] in all user asm statements

2014-12-09 Thread Richard Henderson
On 12/08/2014 06:25 AM, David Edelsohn wrote: Okay. I don't know of another option that preserves backward compatibility. If RTH looks at this series of patches, he may have a better suggestion. No, this looks like what I'd do. Indeed, I added this hook back when the i386 port gained direct

<    1   2   3   4   5   6   7   8   9   10   >