Re: [PATCH] Fix PR82396: qsort comparator non-negative on sorted output

2017-10-23 Thread Jeff Law
On 10/16/2017 04:56 AM, Wilco Dijkstra wrote: > This patch cleans up autopref scheduling. > > The code is greatly simplified.  Sort accesses on the offset first, and > only if the offsets are the same fall back to other comparisons in > rank_for_schedule.  This doesn't at all restore the original

Re: Make more use of df_read_modify_subreg_p

2017-10-23 Thread Jeff Law
On 10/13/2017 10:08 AM, Richard Sandiford wrote: > Jeff Law writes: >> On 08/24/2017 12:25 PM, Richard Sandiford wrote: >>> Segher Boessenkool writes: On Wed, Aug 23, 2017 at 11:49:03AM +0100, Richard Sandiford wrote: > This patch uses

[RFA][PATCH] Convert sprintf warning code to use a dominator walk

2017-10-23 Thread Jeff Law
Martin, I'd like your thoughts on this patch. One of the things I'm working on is changes that would allow passes that use dominator walks to trivially perform context sensitive range analysis as a part of their dominator walk. As I outlined earlier this would allow us to easily fix the false

Re: [PATCH, rs6000] Add Power 9 support for vec_first builtins

2017-10-23 Thread Segher Boessenkool
Hi Carl, On Thu, Oct 19, 2017 at 04:31:13PM -0700, Carl Love wrote: > * config/rs6000/rs6000-builtin.def (VFIRSTMATCHINDEX, > VFIRSTMATCHOREOSINDEX, VFIRSTMISMATCHINDEX, VFIRSTMISMATCHOREOSINDEX): > Add BU_P9V_AV_2 expansions for the builtins. Those names are a bit unwieldy ;-)

Re: [Patch] Edit contrib/ files to download gfortran prerequisites

2017-10-23 Thread Damian Rouson
  On October 21, 2017 at 11:17:49 AM, Bernhard Reutner-Fischer (rep.dot@gmail.com(mailto:rep.dot@gmail.com)) wrote: > > + die "Invoking wget and curl in the 'download_prerequisites' script failed." > > I suggest "Neither wget nor curl found, cannot download tarballs.” Thanks for

Re: [PATCH] i386: Don't generate ENDBR if function is only called directly

2017-10-23 Thread H.J. Lu
On Mon, Oct 23, 2017 at 3:19 PM, Tsimbalist, Igor V wrote: > You are right. The functions in the tests should be changed to static scope > to trigger the check in the patch. After that I expect there should be no > endbr generated at all for the static functions and

RE: [PATCH] i386: Don't generate ENDBR if function is only called directly

2017-10-23 Thread Tsimbalist, Igor V
You are right. The functions in the tests should be changed to static scope to trigger the check in the patch. After that I expect there should be no endbr generated at all for the static functions and that's is wrong. Igor > -Original Message- > From: H.J. Lu

Re: Make tests failing with version namespace UNSUPPORTED

2017-10-23 Thread Jonathan Wakely
On 23/10/17 22:07 +0200, François Dumont wrote: Hi     I completed execution of all tests and added the dg-require-normal-namespace to a few more files.     I also eventually prefer to keep dg-require-normal-mode and dg-require-normal-namespace seperated, the first for alternative modes,

Re: [PATCH] i386: Don't generate ENDBR if function is only called directly

2017-10-23 Thread H.J. Lu
On Mon, Oct 23, 2017 at 3:01 PM, Tsimbalist, Igor V wrote: > Existing tests cet-label.c cet-switch-2.c cet-sjlj-1.c cet-sjlj-3.c should > catch this. There are no regressions with my patch. Did I miss something? > Igor > > >> -Original Message- >> From:

Re: [Patch] Edit contrib/ files to download gfortran prerequisites

2017-10-23 Thread Damian Rouson
On October 23, 2017 at 3:54:22 AM, Richard Biener (richard.guent...@gmail.com) wrote: On Sat, Oct 21, 2017 at 2:26 AM, Damian Rouson  wrote:  >  > Hi Richard,  >  > Attached is a revised patch that makes the downloading of Fortran > prerequisites optional via a

RE: [PATCH] i386: Don't generate ENDBR if function is only called directly

2017-10-23 Thread Tsimbalist, Igor V
Existing tests cet-label.c cet-switch-2.c cet-sjlj-1.c cet-sjlj-3.c should catch this. Igor > -Original Message- > From: H.J. Lu [mailto:hjl.to...@gmail.com] > Sent: Monday, October 23, 2017 11:50 PM > To: Tsimbalist, Igor V > Cc: Uros Bizjak

[PATCH] Fix #line __LINE__ handling and added conformance tests.

2017-10-23 Thread Max Woodbury
>From 62ab7123e73563b43f1833842a419aa66eca7ce2 Mon Sep 17 00:00:00 2001 From: Max T Woodbury Date: Mon, 23 Oct 2017 16:58:49 -0400 Copyright 2017 Max TenEyck Woodbury, Durham North Carolina all rights assigned to the Free Software Foundation, Inc., 23 Oct 2017 The

Re: [PATCH] i386: Don't generate ENDBR if function is only called directly

2017-10-23 Thread H.J. Lu
On Mon, Oct 23, 2017 at 2:44 PM, Tsimbalist, Igor V wrote: > The change will skip a whole function from endbr processing by > rest_of_insert_endbranch, > which inserts endbr not only at the beginning of the function but inside the > function's > body also. For

RE: [PATCH] i386: Don't generate ENDBR if function is only called directly

2017-10-23 Thread Tsimbalist, Igor V
The change will skip a whole function from endbr processing by rest_of_insert_endbranch, which inserts endbr not only at the beginning of the function but inside the function's body also. For example, tests with setjmp should fail. I would suggest to insert the check in rest_of_insert_endbranch

Re: [C++ Patch] PR 80449 ("[7/8 Regression] ICE reporting failed partial class template specialization class template argument deduction")

2017-10-23 Thread Jason Merrill
OK. On Mon, Oct 23, 2017 at 4:36 PM, Paolo Carlini wrote: > Hi, > > this issue is by and large a duplicate of C++/79790, which I already fixed. > There is a minor remaining nit: for the testcase, after the correct: > > error: cannot deduce template arguments of ‘C’,

Re: [PATCH, rs6000] 1/2 Add x86 SSE2 <emmintrin,h> intrinsics to GCC PPC64LE target

2017-10-23 Thread Segher Boessenkool
Hi! On Tue, Oct 17, 2017 at 01:24:45PM -0500, Steven Munroe wrote: > Some inline assembler is required. There a several cases where we need > to generate Data Cache Block instruction. There are no existing builtin > for flush and touch for store transient. Would builtins for those help? Would

[C++ Patch] PR 80449 ("[7/8 Regression] ICE reporting failed partial class template specialization class template argument deduction")

2017-10-23 Thread Paolo Carlini
Hi, this issue is by and large a duplicate of C++/79790, which I already fixed. There is a minor remaining nit: for the testcase, after the correct:     error: cannot deduce template arguments of ‘C’, as it has no viable deduction guides we also emit the meaningless:     error: too many

Re: [PATCH] Add INCLUDE_UNIQUE_PTR and use it (PR bootstrap/82610)

2017-10-23 Thread Richard Biener
On October 23, 2017 8:15:20 PM GMT+02:00, David Malcolm wrote: >On Mon, 2017-10-23 at 16:40 +0100, Pedro Alves wrote: >> On 10/23/2017 04:17 PM, Jonathan Wakely wrote: >> > On 23/10/17 17:07 +0200, Michael Matz wrote: >> > > Hi, >> > > >> > > On Mon, 23 Oct 2017, Richard

Re: Make tests failing with version namespace UNSUPPORTED

2017-10-23 Thread François Dumont
Hi     I completed execution of all tests and added the dg-require-normal-namespace to a few more files.     I also eventually prefer to keep dg-require-normal-mode and dg-require-normal-namespace seperated, the first for alternative modes, the latter for versioned namespace.     With

Re: [PATCH] Add INCLUDE_UNIQUE_PTR and use it (PR bootstrap/82610)

2017-10-23 Thread David Malcolm
On Mon, 2017-10-23 at 21:43 +0200, Gerald Pfeifer wrote: > On Mon, 23 Oct 2017, David Malcolm wrote: > > Here's a different patch, which instead moves the include of our > > "unique-ptr.h" to system.h (conditionalized on INCLUDE_UNIQUE_PTR), > > after the decl of "free" and before the redefinition

Re: [PATCH] Add INCLUDE_UNIQUE_PTR and use it (PR bootstrap/82610)

2017-10-23 Thread Gerald Pfeifer
On Mon, 23 Oct 2017, David Malcolm wrote: > Here's a different patch, which instead moves the include of our > "unique-ptr.h" to system.h (conditionalized on INCLUDE_UNIQUE_PTR), > after the decl of "free" and before the redefinition of "abort". Thanks for your persistance in tackling this,

Re: [PATCH] i386: Don't generate ENDBR if function is only called directly

2017-10-23 Thread Uros Bizjak
On Sun, Oct 22, 2017 at 4:13 PM, H.J. Lu wrote: > There is no need to insert ENDBR instruction if function is only called > directly. > > OK for trunk if there is no regressions? Patch needs to be OK'd by Igor first. Uros. > H.J. > > gcc/ > > PR target/82659 >

Re: [PATCH] Fix wrong-debug with i?86/x86_64 _GLOBAL_OFFSET_TABLE_ (PR debug/82630)

2017-10-23 Thread Uros Bizjak
On Mon, Oct 23, 2017 at 10:04 AM, Richard Biener wrote: > On Mon, 23 Oct 2017, Jakub Jelinek wrote: > >> On Mon, Oct 23, 2017 at 09:48:50AM +0200, Richard Biener wrote: >> > > --- gcc/targhooks.c.jj2017-10-13 19:02:08.0 +0200 >> > > +++ gcc/targhooks.c

Re: Make istreambuf_iterator::_M_sbuf immutable and add debug checks

2017-10-23 Thread François Dumont
Hi     I completed execution of all tests and found one test impacted by this patch.     It is a good example of the impact of the patch. Users won't be able to build a istreambuf_iterator at a point where the underlying streambuf is at end-of-stream and then put some data in the

C++ PATCH for c++/77369, wrong noexcept handling with template type arguments

2017-10-23 Thread Jason Merrill
In C++14 and below, the exception-specification is not part of a function type, so we need to drop it from template arguments; otherwise, all uses of a particular template instantiation get the exception specification that the first use happened to have. This patch regresses the -Wnoexcept-type

Re: [PATCH, i386]: Fix PR 82628, wrong code at -Os on x86_64-linux-gnu in the 32-bit mode

2017-10-23 Thread Uros Bizjak
On Mon, Oct 23, 2017 at 1:27 PM, Uros Bizjak wrote: > On Mon, Oct 23, 2017 at 1:07 PM, Jakub Jelinek wrote: >> On Mon, Oct 23, 2017 at 12:27:15PM +0200, Uros Bizjak wrote: >>> On Mon, Oct 23, 2017 at 12:09 PM, Jakub Jelinek wrote: >>> > On

Re: [PATCH] Add INCLUDE_UNIQUE_PTR and use it (PR bootstrap/82610)

2017-10-23 Thread Pedro Alves
On 10/23/2017 07:15 PM, David Malcolm wrote: > OK for trunk? FAOD, FWIW, LGTM. Thanks, Pedro Alves

[PATCH] Add INCLUDE_UNIQUE_PTR and use it (PR bootstrap/82610)

2017-10-23 Thread David Malcolm
On Mon, 2017-10-23 at 16:40 +0100, Pedro Alves wrote: > On 10/23/2017 04:17 PM, Jonathan Wakely wrote: > > On 23/10/17 17:07 +0200, Michael Matz wrote: > > > Hi, > > > > > > On Mon, 23 Oct 2017, Richard Biener wrote: > > > > > > > I guess so. But we have to make gdb happy as well. It really > >

Re: Don't query the frontend for unsupported types

2017-10-23 Thread Richard Sandiford
Ping. Richard Sandiford writes: > Richard Biener writes: >> On Fri, Sep 22, 2017 at 6:42 PM, Richard Sandiford >> wrote: >>> Richard Biener writes: On Thu, Sep 21, 2017 at

Re: [libstdc++, patch] Fix build on APFS file system

2017-10-23 Thread Jonathan Wakely
On 23/10/17 19:48 +0200, FX wrote: The patch seems like a rough bandaid to hide the real bug. Better to identify the real bug. If there is a missing dependency, then I'd like to think that adding the right dependency should resolve the issue. So far, apart from a suggestion from Marc, I

Re: [AArch64] Tweak aarch64_classify_address interface

2017-10-23 Thread Richard Sandiford
Ping. Richard Sandiford writes: > Richard Sandiford writes: >> James Greenhalgh writes: >>> On Tue, Aug 22, 2017 at 10:23:47AM +0100, Richard Sandiford wrote: Previously aarch64_classify_address used an

Re: [PATCH] rl78 subdi3 improvement

2017-10-23 Thread DJ Delorie
Committed. Thanks! Note: your diff program isn't producing valid diffs... * it's dropping leading tabs * it's not putting a space after file names in the headers I have to manually fix these to apply the patch; if you could fix it on your end that would be appreciated :-)

Re: [libstdc++, patch] Fix build on APFS file system

2017-10-23 Thread FX
> The patch seems like a rough bandaid to hide the real bug. Better to > identify the real bug. If there is a missing dependency, then I'd like to > think that adding the right dependency should resolve the issue. So far, apart from a suggestion from Marc, I haven’t received any help or

[107/nnn] poly_int: GET_MODE_SIZE

2017-10-23 Thread Richard Sandiford
This patch changes GET_MODE_SIZE from unsigned short to poly_uint16. The non-mechanical parts were handled by previous patches. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood

Re: [libstdc++, patch] Fix build on APFS file system

2017-10-23 Thread Mike Stump
On Oct 18, 2017, at 7:51 AM, FX wrote: > > Parallel builds of libstdc++ on APFS filesystem (with 1 ns granularity) on > macOS 10.13 often fail (failure rate for “make -j2” to “make -j8” is about > 60% from my own builds and results reported by others): >

[106/nnn] poly_int: GET_MODE_BITSIZE

2017-10-23 Thread Richard Sandiford
This patch changes GET_MODE_BITSIZE from an unsigned short to a poly_uint16. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * machmode.h (mode_to_bits): Return a

[104/nnn] poly_int: GET_MODE_PRECISION

2017-10-23 Thread Richard Sandiford
This patch changes GET_MODE_PRECISION from an unsigned short to a poly_uint16. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * machmode.h (mode_precision): Change

[105/nnn] poly_int: expand_assignment

2017-10-23 Thread Richard Sandiford
This patch makes the CONCAT handing in expand_assignment cope with polynomial mode sizes. The mode of the CONCAT must be complex, so we can base the tests on the sizes of the real and imaginary components. 2017-10-23 Richard Sandiford Alan Hayward

[103/nnn] poly_int: TYPE_VECTOR_SUBPARTS

2017-10-23 Thread Richard Sandiford
This patch changes TYPE_VECTOR_SUBPARTS to a poly_uint64. The value is encoded in the 10-bit precision field and was previously always stored as a simple log2 value. The challenge was to use this 10 bits to encode the number of elements in variable-length vectors, so that we didn't need to

[102/nnn] poly_int: vect_permute_load/store_chain

2017-10-23 Thread Richard Sandiford
The GET_MODE_NUNITS patch made vect_grouped_store_supported and vect_grouped_load_supported check for a constant number of elements, so vect_permute_store_chain and vect_permute_load_chain can assert for that. This patch adds commentary to that effect; the actual asserts will be added by a later,

[101/nnn] poly_int: GET_MODE_NUNITS

2017-10-23 Thread Richard Sandiford
This patch changes GET_MODE_NUNITS from unsigned char to poly_uint16, although it remains a macro when compiling target code with NUM_POLY_INT_COEFFS == 1. If the number of units isn't known at compile time, we use: (const:M (vec_duplicate:M X)) to represent a vector in which every element is

[100/nnn] poly_int: memrefs_conflict_p

2017-10-23 Thread Richard Sandiford
The xsize and ysize arguments to memrefs_conflict_p are encode such that: - 0 means the size is unknown - >0 means the size is known - <0 means that the negative of the size is a worst-case size after alignment In other words, the sign effectively encodes a boolean; it isn't meant to be taken

[099/nnn] poly_int: struct_value_size

2017-10-23 Thread Richard Sandiford
This patch makes calls.c treat struct_value_size (one of the operands to a call pattern) as polynomial. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * calls.c

[098/nnn] poly_int: load_register_parameters

2017-10-23 Thread Richard Sandiford
This patch makes load_register_parameters cope with polynomial sizes. The requirement here is that any register parameters with non-constant sizes must either have a specific mode (e.g. a variable-length vector mode) or must be represented with a PARALLEL. This is in practice already a

[097/nnn] poly_int: alter_reg

2017-10-23 Thread Richard Sandiford
This patch makes alter_reg cope with polynomial mode sizes. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * reload1.c (spill_stack_slot_width): Change element type

[096/nnn] poly_int: reloading complex subregs

2017-10-23 Thread Richard Sandiford
This patch splits out a condition that is common to both push_reload and reload_inner_reg_of_subreg. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * reload.c

[095/nnn] poly_int: process_alt_operands

2017-10-23 Thread Richard Sandiford
This patch makes process_alt_operands check that the mode sizes are ordered, so that match_reload can validly treat them as subregs of one another. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood

[094/nnn] poly_int: expand_ifn_atomic_compare_exchange_into_call

2017-10-23 Thread Richard Sandiford
This patch makes the mode size assumptions in expand_ifn_atomic_compare_exchange_into_call a bit more explicit, so that a later patch can add a to_constant () call. 2017-10-23 Richard Sandiford Alan Hayward David

[093/nnn] poly_int: adjust_mems

2017-10-23 Thread Richard Sandiford
This patch makes the var-tracking.c handling of autoinc addresses cope with polynomial mode sizes. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * var-tracking.c

[092/nnn] poly_int: PUSH_ROUNDING

2017-10-23 Thread Richard Sandiford
PUSH_ROUNDING is difficult to convert to a hook since there is still a lot of conditional code based on it. It isn't clear that a direct conversion with checks for null hooks is the right thing to do. Rather than untangle that, this patch converts all implementations that do something to

[091/nnn] poly_int: emit_single_push_insn_1

2017-10-23 Thread Richard Sandiford
This patch makes emit_single_push_insn_1 cope with polynomial mode sizes. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * expr.c (emit_single_push_insn_1): Treat

[090/nnn] poly_int: set_inc_state

2017-10-23 Thread Richard Sandiford
This trivial patch makes auto-inc-dec.c:set_inc_state take a poly_int64. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * auto-inc-dec.c (set_inc_state): Take the

[089/nnn] poly_int: expand_expr_real_1

2017-10-23 Thread Richard Sandiford
This patch makes the VIEW_CONVERT_EXPR handling in expand_expr_real_1 cope with polynomial type and mode sizes. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ *

[088/nnn] poly_int: expand_expr_real_2

2017-10-23 Thread Richard Sandiford
This patch makes expand_expr_real_2 cope with polynomial mode sizes when handling conversions involving a union type. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/

[087/nnn] poly_int: subreg_get_info

2017-10-23 Thread Richard Sandiford
This patch makes subreg_get_info handle polynomial sizes. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * rtlanal.c (subreg_get_info): Handle polynomial mode sizes.

[086/nnn] poly_int: REGMODE_NATURAL_SIZE

2017-10-23 Thread Richard Sandiford
This patch makes target-independent code that uses REGMODE_NATURAL_SIZE treat it as a poly_int rather than a constant. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/

[085/nnn] poly_int: expand_vector_ubsan_overflow

2017-10-23 Thread Richard Sandiford
This patch makes expand_vector_ubsan_overflow cope with a polynomial number of elements. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * internal-fn.c

[084/nnn] poly_int: folding BIT_FIELD_REFs on vectors

2017-10-23 Thread Richard Sandiford
This patch makes the: (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2) folder cope with polynomial numbers of elements. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ *

[083/nnn] poly_int: fold_indirect_ref_1

2017-10-23 Thread Richard Sandiford
This patch makes fold_indirect_ref_1 handle polynomial offsets in a POINTER_PLUS_EXPR. The specific reason for doing this now is to handle: (tree_to_uhwi (part_width) / BITS_PER_UNIT * TYPE_VECTOR_SUBPARTS (op00type)); when TYPE_VECTOR_SUBPARTS becomes a

[082/nnn] poly_int: omp-simd-clone.c

2017-10-23 Thread Richard Sandiford
This patch adds a wrapper around TYPE_VECTOR_SUBPARTS for omp-simd-clone.c. Supporting SIMD clones for variable-length vectors is post GCC8 work. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood

[081/nnn] poly_int: brig vector elements

2017-10-23 Thread Richard Sandiford
This patch adds a brig-specific wrapper around TYPE_VECTOR_SUBPARTS, since presumably it will never need to support variable vector lengths. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood

[080/nnn] poly_int: tree-vect-generic.c

2017-10-23 Thread Richard Sandiford
This patch makes tree-vect-generic.c cope with variable-length vectors. Decomposition is only supported for constant-length vectors, since we should never generate unsupported variable-length operations. 2017-10-23 Richard Sandiford Alan Hayward

[079/nnn] poly_int: vect_no_alias_p

2017-10-23 Thread Richard Sandiford
This patch replaces the two-state vect_no_alias_p with a three-state vect_compile_time_alias that handles polynomial segment lengths. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood

[078/nnn] poly_int: two-operation SLP

2017-10-23 Thread Richard Sandiford
This patch makes two-operation SLP handle but reject variable-length vectors. Adding support for this is a post-GCC8 thing. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/

[077/nnn] poly_int: vect_get_constant_vectors

2017-10-23 Thread Richard Sandiford
For now, vect_get_constant_vectors can only cope with constant-length vectors, although a patch after the main SVE submission relaxes this. This patch adds an appropriate guard for variable-length vectors. The TYPE_VECTOR_SUBPARTS use in vect_get_constant_vectors will then have a to_constant call

[076/nnn] poly_int: vectorizable_conversion

2017-10-23 Thread Richard Sandiford
This patch makes vectorizable_conversion cope with variable-length vectors. We already require the number of elements in one vector to be a multiple of the number of elements in the other vector, so the patch uses that to choose between widening and narrowing. 2017-10-23 Richard Sandiford

[073/nnn] poly_int: vectorizable_load/store

2017-10-23 Thread Richard Sandiford
This patch makes vectorizable_load and vectorizable_store cope with variable-length vectors. The reverse and permute cases will be excluded by the code that checks the permutation mask (although a patch after the main SVE submission adds support for the reversed case). Here we also need to

[075/nnn] poly_int: vectorizable_simd_clone_call

2017-10-23 Thread Richard Sandiford
This patch makes vectorizable_simd_clone_call cope with variable-length vectors. For now we don't support SIMD clones for variable-length vectors; this will be post GCC 8 material. 2017-10-23 Richard Sandiford Alan Hayward

[074/nnn] poly_int: vectorizable_call

2017-10-23 Thread Richard Sandiford
This patch makes vectorizable_call handle variable-length vectors. The only substantial change is to use build_index_vector for IFN_GOMP_SIMD_LANE; this makes no functional difference for fixed-length vectors. 2017-10-23 Richard Sandiford Alan Hayward

[072/nnn] poly_int: vectorizable_live_operation

2017-10-23 Thread Richard Sandiford
This patch makes vectorizable_live_operation cope with variable-length vectors. For now we just handle cases in which we can tell at compile time which vector contains the final result. 2017-10-23 Richard Sandiford Alan Hayward

[071/nnn] poly_int: vectorizable_induction

2017-10-23 Thread Richard Sandiford
This patch makes vectorizable_induction cope with variable-length vectors. For now we punt on SLP inductions, but patchees after the main SVE submission add support for those too. 2017-10-23 Richard Sandiford Alan Hayward

[070/nnn] poly_int: vectorizable_reduction

2017-10-23 Thread Richard Sandiford
This patch makes vectorizable_reduction cope with variable-length vectors. We can handle the simple case of an inner loop reduction for which the target has native support for the epilogue operation. For now we punt on other cases, but patches after the main SVE submission allow SLP and double

[069/nnn] poly_int: vector_alignment_reachable_p

2017-10-23 Thread Richard Sandiford
This patch makes vector_alignment_reachable_p cope with variable-length vectors. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * tree-vect-data-refs.c

[068/nnn] poly_int: current_vector_size and TARGET_AUTOVECTORIZE_VECTOR_SIZES

2017-10-23 Thread Richard Sandiford
This patch changes the type of current_vector_size to poly_uint64. It also changes TARGET_AUTOVECTORIZE_VECTOR_SIZES so that it fills in a vector of possible sizes (as poly_uint64s) instead of returning a bitmask. The documentation claimed that the hook didn't need to include the default vector

[067/nnn] poly_int: get_mask_mode

2017-10-23 Thread Richard Sandiford
This patch makes TARGET_GET_MASK_MODE take polynomial nunits and vector_size arguments. The gcc_assert in default_get_mask_mode is now handled by the exact_div call in vector_element_size. 2017-10-23 Richard Sandiford Alan Hayward

[066/nnn] poly_int: omp_max_vf

2017-10-23 Thread Richard Sandiford
This patch makes omp_max_vf return a polynomial vectorization factor. We then need to be able to stash a polynomial value in OMP_CLAUSE_SAFELEN_EXPR too: /* If max_vf is non-zero, then we can use only a vectorization factor up to the max_vf we chose. So stick it into the safelen clause.

[065/nnn] poly_int: vect_nunits_for_cost

2017-10-23 Thread Richard Sandiford
This patch adds a function for getting the number of elements in a vector for cost purposes, which is always constant. It makes it possible for a later patch to change GET_MODE_NUNITS and TYPE_VECTOR_SUBPARTS to a poly_int. 2017-10-23 Richard Sandiford

[064/nnn] poly_int: SLP max_units

2017-10-23 Thread Richard Sandiford
This match makes tree-vect-slp.c track the maximum number of vector units as a poly_uint64 rather than an unsigned int. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/

[062/nnn] poly_int: prune_runtime_alias_test_list

2017-10-23 Thread Richard Sandiford
This patch makes prune_runtime_alias_test_list take the iteration factor as a poly_int and tracks polynomial offsets internally as well. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood

[063/nnn] poly_int: vectoriser vf and uf

2017-10-23 Thread Richard Sandiford
This patch changes the type of the vectorisation factor and SLP unrolling factor to poly_uint64. This in turn required some knock-on changes in signedness elsewhere. Cost decisions are generally based on estimated_poly_value, which for VF is wrapped up as vect_vf_for_cost. The patch doesn't on

[061/nnn] poly_int: compute_data_ref_alignment

2017-10-23 Thread Richard Sandiford
This patch makes vect_compute_data_ref_alignment treat DR_INIT as a poly_int and handles cases in which the calculated misalignment might not be constant. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood

[059/nnn] poly_int: tree-ssa-loop-ivopts.c:iv_use

2017-10-23 Thread Richard Sandiford
This patch makes ivopts handle polynomial address offsets when recording potential IV uses. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * tree-ssa-loop-ivopts.c

[060/nnn] poly_int: loop versioning threshold

2017-10-23 Thread Richard Sandiford
This patch splits the loop versioning threshold out from the cost model threshold so that the former can become a poly_uint64. We still use a single test to enforce both limits where possible. 2017-10-23 Richard Sandiford Alan Hayward

[058/nnn] poly_int: get_binfo_at_offset

2017-10-23 Thread Richard Sandiford
This patch changes the offset parameter to get_binfo_at_offset from HOST_WIDE_INT to poly_int64. This function probably doesn't need to handle polynomial offsets in practice, but it's easy to do and avoids forcing the caller to check first. 2017-10-23 Richard Sandiford

[057/nnn] poly_int: build_ref_for_offset

2017-10-23 Thread Richard Sandiford
This patch changes the offset parameter to build_ref_for_offset from HOST_WIDE_INT to poly_int64. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * ipa-prop.h

[056/nnn] poly_int: MEM_REF offsets

2017-10-23 Thread Richard Sandiford
This patch allows MEM_REF offsets to be polynomial, with mem_ref_offset now returning a poly_offset_int instead of an offset_int. The non-mechanical changes to callers of mem_ref_offset were handled by previous patches. 2017-10-23 Richard Sandiford

[055/nnn] poly_int: find_bswap_or_nop_load

2017-10-23 Thread Richard Sandiford
This patch handles polynomial offsets in find_bswap_or_nop_load, which could be useful for constant-sized data at a variable offset. It is needed for a later patch to compile. 2017-10-23 Richard Sandiford Alan Hayward

[054/nnn] poly_int: adjust_ptr_info_misalignment

2017-10-23 Thread Richard Sandiford
This patch makes adjust_ptr_info_misalignment take the adjustment as a poly_uint64 rather than an unsigned int. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ *

[053/nnn] poly_int: decode_addr_const

2017-10-23 Thread Richard Sandiford
This patch makes the varasm-local addr_const track polynomial offsets. I'm not sure how useful this is, but it was easier to convert than not. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood

[052/nnn] poly_int: bit_field_size/offset

2017-10-23 Thread Richard Sandiford
verify_expr ensured that the size and offset in gimple BIT_FIELD_REFs satisfied tree_fits_uhwi_p. This patch extends that so that they can be poly_uint64s, and adds helper routines for accessing them when the verify_expr requirements apply. 2017-10-23 Richard Sandiford

[051/nnn] poly_int: emit_group_load/store

2017-10-23 Thread Richard Sandiford
This patch changes the sizes passed to emit_group_load and emit_group_store from int to poly_int64. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * expr.h

[050/nnn] poly_int: reload<->ira interface

2017-10-23 Thread Richard Sandiford
This patch uses poly_int64 for: - ira_reuse_stack_slot - ira_mark_new_stack_slot - ira_spilled_reg_stack_slot::width all of which are part of the IRA/reload interface. 2017-10-23 Richard Sandiford Alan Hayward

[049/nnn] poly_int: emit_inc

2017-10-23 Thread Richard Sandiford
This patch changes the LRA emit_inc routine so that it takes a poly_int64 rather than an int. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * lra-constraints.c

[048/nnn] poly_int: cfgexpand stack variables

2017-10-23 Thread Richard Sandiford
This patch changes the type of stack_var::size from HOST_WIDE_INT to poly_uint64. The difference in signedness is because the field was set by: v->size = tree_to_uhwi (size); 2017-10-23 Richard Sandiford Alan Hayward

[047/nnn] poly_int: argument sizes

2017-10-23 Thread Richard Sandiford
This patch changes various bits of state related to argument sizes so that they have type poly_int64 rather than HOST_WIDE_INT. This includes: - incoming_args::pops_args and incoming_args::size - rtl_data::outgoing_args_size - pending_stack_adjust - stack_pointer_delta -

[046/nnn] poly_int: instantiate_virtual_regs

2017-10-23 Thread Richard Sandiford
This patch makes the instantiate virtual regs pass track offsets as poly_ints. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * function.c (in_arg_offset,

[045/nnn] poly_int: REG_ARGS_SIZE

2017-10-23 Thread Richard Sandiford
This patch adds new utility functions for manipulating REG_ARGS_SIZE notes and allows the notes to carry polynomial as well as constant sizes. The code was inconsistent about whether INT_MIN or HOST_WIDE_INT_MIN should be used to represent an unknown size. The patch uses HOST_WIDE_INT_MIN

[043/nnn] poly_int: frame allocations

2017-10-23 Thread Richard Sandiford
This patch converts the frame allocation code (mostly in function.c) to use poly_int64 rather than HOST_WIDE_INT for frame offsets and sizes. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood

[044/nnn] poly_int: push_block/emit_push_insn

2017-10-23 Thread Richard Sandiford
This patch changes the "extra" parameters to push_block and emit_push_insn from int to poly_int64. 2017-10-23 Richard Sandiford Alan Hayward David Sherwood gcc/ * expr.h

[042/nnn] poly_int: reload1.c

2017-10-23 Thread Richard Sandiford
This patch makes a few small poly_int64 changes to reload1.c, mostly related to eliminations. Again, there's no real expectation that reload will be used for targets that have polynomial-sized modes, but it seemed easier to convert it anyway. 2017-10-23 Richard Sandiford

  1   2   3   >