Re: [PATCH] Fix pr80044, -static and -pie insanity, and pr81170

2017-08-28 Thread Jeff Law
On 08/28/2017 04:33 PM, Alan Modra wrote: > On Mon, Aug 28, 2017 at 08:27:35AM -0600, Jeff Law wrote: >> So sorry for the horrible delay. What was the final resolution here? I >> saw a lot of back and forth with HJ and yourself. 80044 is >> CLOSED/WONTFIX and 81170 has a patch attached to it,

Improve DOM's ability to derive equivalences when traversing edges

2017-08-28 Thread Jeff Law
This is a two part patchkit to improve DOM's ability to derive constant equivalences that arise as a result of traversing a particular edge in the CFG. Until now we only allowed a single NAME = NAME|CONST equivalence to be associated with an edge in the CFG. Patch #1 generalizes that code so

Re: [AARCH64] Disable pc relative literal load irrespective of TARGET_FIX_ERR_A53_84341

2017-08-28 Thread Kugan Vivekanandarajah
ping^3 Thanks, Kugan On 11 August 2017 at 16:09, Kugan Vivekanandarajah wrote: > Ping^2? > > Thanks, > Kugan > > On 21 July 2017 at 20:12, Kugan Vivekanandarajah > wrote: >> Ping ? >> >> Thanks, >> Kugan >> >> On 27 June

[PATCH], PR target/82015, add PowerPC warning for unpack_vector_int128 with illegal 2nd argument

2017-08-28 Thread Michael Meissner
One of the local programmers tried to use the __builtin_unpack_vector_int128 function, but his second argument was not the constant 0 or 1. The compiler put the 2nd argument into a register, but there wasn't a valid insn for this, and raised an insn not found message. GCC should warn about this

Re: [PATCH 1/3] improve detection of attribute conflicts (PR 81544)

2017-08-28 Thread Martin Sebor
Ping: https://gcc.gnu.org/ml/gcc-patches/2017-08/msg01087.html On 08/24/2017 02:43 PM, Martin Sebor wrote: The bulk of this patch touches what I think is considered the middle-end (attribs.c) so let me include its maintainers, Ian, Jeff, and Richard:

[PING 2] [PATCH 3/4] enhance overflow and truncation detection in strncpy and strncat (PR 81117)

2017-08-28 Thread Martin Sebor
Ping #2: https://gcc.gnu.org/ml/gcc-patches/2017-08/msg00912.html On 08/23/2017 01:46 PM, Martin Sebor wrote: Ping: https://gcc.gnu.org/ml/gcc-patches/2017-08/msg00912.html Jeff, is this version good to commit or are there any other changes you'd like to see? Martin On 08/14/2017 04:40 PM,

Re: [PATCH, rs6000] Fix PR81833 (incorrect code gen for vec_msum)

2017-08-28 Thread Bill Schmidt
On Aug 28, 2017, at 3:56 PM, Bill Schmidt wrote: > > Hi, > > PR81833 identifies a problem with the little-endian vector multiply-sum > instructions. The original implementation is quite poor (and I am allowed > to say that, since it was mine). This patch fixes

Re: [PING #2] [PATCH] enhance -Wrestrict to handle string built-ins (PR 78918)

2017-08-28 Thread Martin Sebor
On 08/24/2017 04:09 PM, Jeff Law wrote: On 08/22/2017 02:45 AM, Richard Biener wrote: On Mon, Aug 21, 2017 at 10:10 PM, Martin Sebor wrote: On 08/09/2017 10:14 AM, Jeff Law wrote: On 08/06/2017 05:08 PM, Martin Sebor wrote: Well, simply because the way as implemented

Re: [PING #2] [PATCH] enhance -Wrestrict to handle string built-ins (PR 78918)

2017-08-28 Thread Martin Sebor
On 08/22/2017 02:45 AM, Richard Biener wrote: On Mon, Aug 21, 2017 at 10:10 PM, Martin Sebor wrote: On 08/09/2017 10:14 AM, Jeff Law wrote: On 08/06/2017 05:08 PM, Martin Sebor wrote: Well, simply because the way as implemented isn't a must-alias query but maybe one

Re: [PATCH] Fix pr80044, -static and -pie insanity, and pr81170

2017-08-28 Thread Alan Modra
On Mon, Aug 28, 2017 at 08:27:35AM -0600, Jeff Law wrote: > So sorry for the horrible delay. What was the final resolution here? I > saw a lot of back and forth with HJ and yourself. 80044 is > CLOSED/WONTFIX and 81170 has a patch attached to it, but is still in the > ASSIGNED state. The patch

[PATCH, rs6000] Stop non-volatile CR usage from killing shrink-wrap

2017-08-28 Thread Pat Haugen
The following patch allows shrink-wrapping to succeed in the presence of non-volatile CR save/restore. The movesi_from_cr define_insn used to list all CRs as used, even though it's only the non-volatile values that we are interested in saving/restoring. This prevented the prolog from being moved

[PATCH, rs6000] Fix PR81833 (incorrect code gen for vec_msum)

2017-08-28 Thread Bill Schmidt
Hi, PR81833 identifies a problem with the little-endian vector multiply-sum instructions. The original implementation is quite poor (and I am allowed to say that, since it was mine). This patch fixes the code properly. The revised code still uses UNSPECs for these ops, which is not strictly

Re: [patch, fortran] Warn about suspicious assignment to contiguous pointers

2017-08-28 Thread Janus Weil
Hi Thomas, >>> I think an unconditional warning is OK >>> in this case because >>> >>> - Assigning to a pointer from an obvious non-contiguous target >>>is not useful at all, that I can see >> >> >> I guess you're talking about a *contiguous* pointer here, > > Correct. > >> and in that >>

[PATCH v3] Fix PR81503 (SLSR invalid fold)

2017-08-28 Thread Bill Schmidt
> On Aug 28, 2017, at 7:37 AM, Richard Biener > wrote: > > Not sure, but would it be fixed in a similar way when writing > ? Thanks, Richard, that works very well. I decided this was a good opportunity to also simplify the control flow a little with early

Rb_tree constructor optimization

2017-08-28 Thread François Dumont
Hi Here is the always equal allocator optimization for associative containers. Tested under Linux x86_64. * include/bits/stl_tree.h (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New. (_Rb_tree(_Rb_tree&&, _Node_allocator&&, std::true_type)): New.

Re: [06/77] Make GET_MODE_WIDER return an opt_mode

2017-08-28 Thread Jeff Law
On 08/28/2017 01:05 PM, Richard Sandiford wrote: > >> As for the name, get_nonvoid? Ugh. Not sure. Open to suggestions. > > I'd rather avoid "nonvoid", since the use of VOIDmode for "no mode" is > really an implementation detail in things like opt_mode . > Other possiblities might be: Yea,

Re: std::forward_list optim for always equal allocator

2017-08-28 Thread François Dumont
Hi Any news for this patch ? It does remove a constructor: -_Fwd_list_impl(const _Node_alloc_type& __a) -: _Node_alloc_type(__a), _M_head() It was already unused before the patch. Do you think it has ever been used and so do I need to restore it ? I

Re: [C++ PATCH] Kill CLASSTYPE_SORTED_FIELDS

2017-08-28 Thread Nathan Sidwell
Some quick tests show that memory use increased by 1.5% Compilation time reduced by 1% to 3% Your comment on IRC about not needing a identifier->decl map, just a decl hash, because the decl already has the identifier is a good one. I recall considering that when converting namespaces, but

Re: [06/77] Make GET_MODE_WIDER return an opt_mode

2017-08-28 Thread Richard Sandiford
Jeff Law writes: > On 08/11/2017 12:24 PM, Richard Sandiford wrote: >> Jeff Law writes: >>> On 07/13/2017 02:40 AM, Richard Sandiford wrote: GET_MODE_WIDER previously returned VOIDmode if no wider mode existed. That would cause problems with stricter

Re: [Patch, Fortran] PR 81770: [5/6/7 Regression] Bogus warning: Pointer in pointer assignment might outlive the pointer target

2017-08-28 Thread Janus Weil
2017-08-28 10:31 GMT+02:00 Thomas Koenig : > Hi Janus, > >> the attached patch fixes a bogus warning. The purpose of the warning >> is to detect cases where a pointer lives longer than its target. If >> the target itself is (1) a pointer or (2) a component of a DT pointer,

[PATCH], Fix PR 81959 (power9 IEEE 128-bit float convert from 32-bit memory)

2017-08-28 Thread Michael Meissner
When I added the optimization for loading 32-bit values directly into the vector registers from memory to convert to IEEE 128-bit floating point, I forgot to make sure the address did not have PRE_INCREMENT, etc. addressing. I checked the compiler on a little endian power8 system. Is it ok to

Re: [PATCH] Fix PR81503 (SLSR invalid fold)

2017-08-28 Thread Bill Schmidt
On Aug 28, 2017, at 1:40 PM, Bill Schmidt wrote: > >> >> On Aug 28, 2017, at 12:57 PM, Bill Schmidt >> wrote: >> >> On Aug 28, 2017, at 7:37 AM, Richard Biener >> wrote: >>> >>> On Thu, Aug 3, 2017 at

Re: [PATCH] Fix PR81503 (SLSR invalid fold)

2017-08-28 Thread Bill Schmidt
> On Aug 28, 2017, at 12:57 PM, Bill Schmidt > wrote: > > On Aug 28, 2017, at 7:37 AM, Richard Biener > wrote: >> >> On Thu, Aug 3, 2017 at 9:34 PM, Bill Schmidt >> wrote: >>> Hi, >>> >>> Here's v2 of

Re: Fix inconsistent section flags

2017-08-28 Thread Joerg Sonnenberger
On Mon, Aug 28, 2017 at 11:42:53AM -0600, Jeff Law wrote: > On 07/17/2017 08:35 AM, Joerg Sonnenberger wrote: > > Hello, > > attached patch fixes inconsistent handling of section flags when using > > the section attribute, i.e.: > > > > __attribute__((section("writable1"))) int foo1; > >

[PATCH] Fix bug in simplify_ternary_operation

2017-08-28 Thread Tom de Vries
Hi, I think I found a bug in r17465: ... * cse.c (simplify_ternary_operation): Handle more IF_THEN_ELSE simplifications. diff --git a/gcc/cse.c b/gcc/cse.c index e001597..3c27387 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -4713,6 +4713,17 @@ simplify_ternary_operation (code, mode,

Re: [PATCH][compare-elim] Merge zero-comparisons with normal ops

2017-08-28 Thread Jeff Law
On 08/10/2017 03:14 PM, Michael Collison wrote: > Hi all, > > One issue that we keep encountering on aarch64 is GCC not making good use of > the flag-setting arithmetic instructions > like ADDS, SUBS, ANDS etc. that perform an arithmetic operation and compare > the result against zero. > They

Re: [Patch][aarch64] Use IFUNCs to enable LSE instructions in libatomic on aarch64

2017-08-28 Thread Steve Ellcey
On Fri, 2017-08-25 at 15:37 +0100, Szabolcs Nagy wrote: > the use of ifunc in gcc target libraries was a mistake > in my opinion, there are several known bugs in the ifunc > design and uclibc/musl/bionic don't plan to support it. > but at this point i dont have a better proposal for doing >

Re: [06/77] Make GET_MODE_WIDER return an opt_mode

2017-08-28 Thread Jeff Law
On 08/11/2017 12:24 PM, Richard Sandiford wrote: > Jeff Law writes: >> On 07/13/2017 02:40 AM, Richard Sandiford wrote: >>> GET_MODE_WIDER previously returned VOIDmode if no wider mode existed. >>> That would cause problems with stricter mode classes, since VOIDmode >>> isn't for

Re: [PATCH] Fix PR81503 (SLSR invalid fold)

2017-08-28 Thread Bill Schmidt
On Aug 28, 2017, at 7:37 AM, Richard Biener wrote: > > On Thu, Aug 3, 2017 at 9:34 PM, Bill Schmidt > wrote: >> Hi, >> >> Here's v2 of the patch with Jakub's suggestions incorporated. Bootstrapped >> and tested on powerpc64le-linux-gnu

Re: Fix inconsistent section flags

2017-08-28 Thread Jeff Law
On 07/17/2017 08:35 AM, Joerg Sonnenberger wrote: > Hello, > attached patch fixes inconsistent handling of section flags when using > the section attribute, i.e.: > > __attribute__((section("writable1"))) int foo1; > __attribute__((section("readonly1"))) const int foo1c; >

Re: [PATCH] Add -static-pie to GCC driver to create static PIE

2017-08-28 Thread H.J. Lu
On Mon, Aug 28, 2017 at 9:10 AM, Joseph Myers wrote: > On Tue, 8 Aug 2017, H.J. Lu wrote: > >> This patch adds -static-pie to GCC driver to create static PIE. A static >> position independent executable (PIE) is similar to static executable, >> but can be loaded at any

Re: [C++ PATCH] Kill CLASSTYPE_SORTED_FIELDS

2017-08-28 Thread Michael Matz
Hi, On Mon, 28 Aug 2017, Nathan Sidwell wrote: > This patch replaces the sorted field vector with a hash map. Lookup for > non-function members of a complete class is now O(1), not O(log(n)). > We still do linear lookup when the class is incomplete. Fixing that is > still on the todo list.

Re: [PATCH] Fix PR81921

2017-08-28 Thread Joseph Myers
On Mon, 28 Aug 2017, Joseph Myers wrote: > On Sat, 26 Aug 2017, Richard Biener wrote: > > > On August 26, 2017 12:51:57 AM GMT+02:00, Joseph Myers > > wrote: > > >I'm seeing a build failure for s390x-linux-gnu that looks like it could > > >be > > >related to this

[C++ PATCH] Kill CLASSTYPE_SORTED_FIELDS

2017-08-28 Thread Nathan Sidwell
This patch replaces the sorted field vector with a hash map. Lookup for non-function members of a complete class is now O(1), not O(log(n)). We still do linear lookup when the class is incomplete. Fixing that is still on the todo list. This permits moving a bunch of sorted_field_vec

Re: [PATCH] Fix PR81921

2017-08-28 Thread Joseph Myers
On Sat, 26 Aug 2017, Richard Biener wrote: > On August 26, 2017 12:51:57 AM GMT+02:00, Joseph Myers > wrote: > >I'm seeing a build failure for s390x-linux-gnu that looks like it could > >be > >related to this change (build was OK at r251332, failed at r251358). > >

Re: [PATCH] Add -static-pie to GCC driver to create static PIE

2017-08-28 Thread Joseph Myers
On Tue, 8 Aug 2017, H.J. Lu wrote: > This patch adds -static-pie to GCC driver to create static PIE. A static > position independent executable (PIE) is similar to static executable, > but can be loaded at any address without a dynamic linker. All linker > input files must be compiled with

Re: [PATCH][RFC] Patch candidate for other/39851

2017-08-28 Thread Joseph Myers
On Tue, 8 Aug 2017, Martin Liška wrote: > Hi. > > As mentioned in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39851#c0 we need > to call targetm.target_option.override () in order to properly report which > ISA options are enabled for a -march/-mtune. Currently, opts.c uses just > #include

Re: [testsuite, i386] Require -static support in gcc.dg/pie-static-[12].c (PR testsuite/81793)

2017-08-28 Thread Iain Sandoe
Hi Rainer, > On 28 Aug 2017, at 16:33, Rainer Orth wrote: > > Hi Mike, > >> On Aug 12, 2017, at 9:03 AM, Rainer Orth >> wrote: >>> >>> The new gcc.dg/pie-static-[12].c testcases FAIL on several systems: >>> >>> * Solaris 11.4

Re: [testsuite, i386] Require -static support in gcc.dg/pie-static-[12].c (PR testsuite/81793)

2017-08-28 Thread Rainer Orth
Hi Mike, > On Aug 12, 2017, at 9:03 AM, Rainer Orth > wrote: >> >> The new gcc.dg/pie-static-[12].c testcases FAIL on several systems: >> >> * Solaris 11.4 has PIE support, but lacks static libc, libm >> >> * Linux without the static libc, libm installed >> >>

Re: [PATCH] C/C++: add fix-it hints for various missing symbols

2017-08-28 Thread Jeff Law
On 07/03/2017 12:37 PM, David Malcolm wrote: > This patch improves our C/C++ frontends' handling of missing > symbols, by making c_parser_require and cp_parser_require use > "better" locations for the diagnostic, and insert fix-it hints, > under certain circumstances (see the comments in the patch

[C++ PATCH] Move field_vec creation

2017-08-28 Thread Nathan Sidwell
this patch moves the FIELD_VEC creation routines from class.c to name-lookup.c It's slightly more than a simple move as I include the following renaming: insert_into_classtype_sorted_fields -> set_class_bindings insert_late_enum_def_into_classtype_sorted_fields -> insert_late_enum_def_bindings

Re: [PATCH] Fix pr80044, -static and -pie insanity, and pr81170

2017-08-28 Thread Jeff Law
On 06/22/2017 09:28 AM, Alan Modra wrote: > PR80044 notes that -static and -pie together behave differently when > gcc is configured with --enable-default-pie as compared to configuring > without (or --disable-default-pie). This patch removes that > difference. In both cases you now will have

[PATCH] small gcc.c cleanup

2017-08-28 Thread Nathan Sidwell
I committed this update to my post of https://gcc.gnu.org/ml/gcc-patches/2017-08/msg01011.html, deciding it now sufficiently obvious :) nathan -- Nathan Sidwell 2017-08-28 Nathan Sidwell * gcc.c (execute): Fold SIGPIPE handling into switch statement. Adjust internal

Re: [patch, fortran] Warn about suspicious assignment to contiguous pointers

2017-08-28 Thread Thomas Koenig
Hi Janus, I think an unconditional warning is OK in this case because - Assigning to a pointer from an obvious non-contiguous target is not useful at all, that I can see I guess you're talking about a *contiguous* pointer here, Correct. and in that case I would argue that, beyond

[PATCH] ira-costs: avoid missing base registers in record_address_regs

2017-08-28 Thread Alexander Monakov
Hello, The code in record_address_regs shown in the following patch assumes that if a given target cannot have two registers in a memory address, then the sole register, if present, must be the leftmost operand in the PLUS chain. I think this is not true if the target uses unspecs to signify

Re: [PATCH] Add libgcc support for cache clearing on ARM VxWorks

2017-08-28 Thread Olivier Hainque
Hi Richard, I discussed with the original author, have looked into the ARM cache matters in greater detail and certainly agree with your general concerns. There are pieces related to the insn cache clearing in the code, but I can see how architecture specific everything is here, indeed not

Re: [WIP] Possible Bug in vect_bb_slp_scalar_cost?

2017-08-28 Thread Richard Biener
On Mon, Aug 28, 2017 at 10:57 AM, Dominik Inführ wrote: > Hi, > > As discussed on IRC: This patches fixes the calculation of the scalar costs > of SLP vectorization. I’ve added a test case and the auto_vec allocation is > now reused for all children of a

Re: Improve ECF_NOTHROW flags for direct internal functions

2017-08-28 Thread Richard Biener
On Mon, Aug 28, 2017 at 10:16 AM, Richard Sandiford wrote: > Richard Biener writes: >> On Thu, Aug 17, 2017 at 1:06 PM, Richard Sandiford >> wrote >>> Richard Biener writes:

Re: [PATCH] Fix PR81503 (SLSR invalid fold)

2017-08-28 Thread Richard Biener
On Thu, Aug 3, 2017 at 9:34 PM, Bill Schmidt wrote: > Hi, > > Here's v2 of the patch with Jakub's suggestions incorporated. Bootstrapped > and tested on powerpc64le-linux-gnu with no regressions. Is this ok for > trunk? > > Eventually this should be backported to

Re: [RFC] [PATCH] Introduce configure flag --with-stage1-cflags.

2017-08-28 Thread Richard Biener
On Fri, Aug 25, 2017 at 9:51 PM, Jeff Law wrote: > On 07/31/2017 01:47 AM, Martin Liška wrote: >> I would like to ping this. Input from other people will be appreciated ;) > I think the thing to keep in mind here is that IIUC this only affects > things when we've configured using

Re: Statement Frontier Notes, Location Views, and Inlined Entry Point Markers

2017-08-28 Thread Richard Biener
On Fri, Aug 25, 2017 at 4:26 PM, Alexandre Oliva wrote: > On Aug 23, 2017, Richard Biener wrote: > if they are not a problem up until here why care now? > >>> IIRC we do have a limit for VTA notes too, but there's a C++ testcase >>>

[PING][PATCH 2/3] retire mem_signal_fence pattern

2017-08-28 Thread Alexander Monakov
Ping (for this and patch 3/3 in the thread). On Wed, 2 Aug 2017, Alexander Monakov wrote: > Similar to mem_thread_fence issue from the patch 1/3, RTL representation of > __atomic_signal_fence must be a compiler barrier. We have just one backend > offering this pattern, and it does not place a

[PATCH] Improve on PR81968

2017-08-28 Thread Richard Biener
The following avoids invalid flag combinations on removed sections and fixes a word-size bug I noticed when doing so. LTO bootstrap / testing in progress on x86_64-unknown-linux-gnu. Richard. 2017-08-28 Richard Biener PR lto/81968 * simple-object-elf.c

[PATCH] Fix PR81993

2017-08-28 Thread Richard Biener
I am testing the following to cure -gsplit-dwarf with early type pruning. It looks like we have zero testsuite coverage for -gsplit-dwarf (or my grep skills are broken). No testcase, g++.dg/[dwarf2/] isn't set up to do link tests. Bootstrap and regtest running on x86_64-unknown-linux-gnu.

[PATCH] Fix PR81977

2017-08-28 Thread Richard Biener
The following fixes a failure to account for lhs_offset (or rather to consistently use the same offset in op0 and off). Bootstrapped and tested on x86_64-unknown-linux-gnu, applied to trunk. Richard. 2017-08-28 Richard Biener PR tree-optimization/81977 *

Turn FUNCTION_ARG_PADDING into a target hook

2017-08-28 Thread Richard Sandiford
This involved renaming the rather general-sounding "enum direction" to "enum pad_direction" to avoid a conflict with the Fortran frontend. Tested on aarch64-linux-gnu, x86_64-linux-gnu and powerpc64le-linux-gnu. Also tested by checking that there were no extra warnings or changes in testsuite

Turn MODES_TIEABLE_P into a target hook

2017-08-28 Thread Richard Sandiford
The lack of function comments in msp430.c and rl78.c is deliberate; the local style there is to define the hook macro immediately before the function as a form of documentation. Tested on aarch64-linux-gnu, x86_64-linux-gnu and powerpc64le-linux-gnu. Also tested by checking that there were no

RE: [RFC, vectorizer] Allow single element vector types for vector reduction operations

2017-08-28 Thread Richard Biener
On Mon, 28 Aug 2017, Jon Beniston wrote: > Hi Richard, > > >- if (nunits < 1) /* Support V1SI. */ > >+ if (nunits < 1 || (nunits == 1 && !reduct_p)) > > return NULL_TREE; > > > >doesn't seem to be against trunk which has > > > > if (nunits <= 1) > >return NULL_TREE; > > > >so what

Re: [WIP] Possible Bug in vect_bb_slp_scalar_cost?

2017-08-28 Thread Dominik Inführ
Hi, As discussed on IRC: This patches fixes the calculation of the scalar costs of SLP vectorization. I’ve added a test case and the auto_vec allocation is now reused for all children of a node. diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/x86_64/costmodel-vect-slp.c

Turn HARD_REGNO_CALL_PART_CLOBBERED into a target hook

2017-08-28 Thread Richard Sandiford
The SVE patches change the size of a machine_mode from a compile-time constant to a runtime invariant. However, target-specific code can continue to treat the modes as constant-sized if the target only has constant-sized modes. The main snag with this approach is that target-independent code

Re: [Patch, Fortran] PR 81770: [5/6/7 Regression] Bogus warning: Pointer in pointer assignment might outlive the pointer target

2017-08-28 Thread Thomas Koenig
Hi Janus, the attached patch fixes a bogus warning. The purpose of the warning is to detect cases where a pointer lives longer than its target. If the target itself is (1) a pointer or (2) a component of a DT pointer, we do not know about the lifetime of the target at compile time and no

RE: [RFC, vectorizer] Allow single element vector types for vector reduction operations

2017-08-28 Thread Jon Beniston
Hi Richard, >- if (nunits < 1) /* Support V1SI. */ >+ if (nunits < 1 || (nunits == 1 && !reduct_p)) > return NULL_TREE; > >doesn't seem to be against trunk which has > > if (nunits <= 1) >return NULL_TREE; > >so what happens if you just change that to > > if (nunits < 1) >return

Add wider_subreg_mode helper functions

2017-08-28 Thread Richard Sandiford
This patch adds helper functions that say which of the two modes involved in a subreg is the larger, preferring the outer mode in the event of a tie. It also converts IRA and reload to track modes instead of byte sizes, since this is slightly more convenient when variable-sized modes are added

Add subreg_memory_offset helper functions

2017-08-28 Thread Richard Sandiford
This patch adds routines for converting a SUBREG_BYTE offset into a memory address offset. The two only differ for paradoxical subregs, where SUBREG_BYTE is always 0 but the memory address offset can be negative. Tested on aarch64-linux-gnu and x86_64-linux-gnu, and by checking there was no

Re: Improve ECF_NOTHROW flags for direct internal functions

2017-08-28 Thread Richard Sandiford
Richard Biener writes: > On Thu, Aug 17, 2017 at 1:06 PM, Richard Sandiford > wrote >> Richard Biener writes: >>> On Thu, Aug 17, 2017 at 11:49 AM, Richard Sandiford >>> wrote:

Re: [RFC, vectorizer] Allow single element vector types for vector reduction operations

2017-08-28 Thread Richard Biener
On Sun, 27 Aug 2017, Jon Beniston wrote: > Hi, > > I have an out-of-tree GCC port and it is struggling supporting > auto-vectorization on some dot product instructions. For example, I have an > instruction that takes three operands which are all 32-bit general > registers. The second and third