- 05 Jan, 2018 8 commits
-
-
PR target/83604 * config/i386/sse.md (VI248_VLBW): Rename to ... (VI248_AVX512VL): ... this. Don't guard V32HI with TARGET_AVX512BW. (vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>, vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz, vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask, vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): Use VI248_AVX512VL mode iterator instead of VI248_VLBW. * gcc.target/i386/pr83604.c: New test. From-SVN: r256280
Jakub Jelinek committed -
* ipa-fnsummary.c (record_modified_bb_info): Add OP. (record_modified): Skip clobbers; add debug output. (param_change_prob): Use sreal frequencies. From-SVN: r256279
Jan Hubicka committed -
r241959 included code to stop the vectoriser increasing the alignment of a "user-aligned" variable. This wasn't the main purpose of the patch, but was done for consistency with pass_increase_alignment, and was needed to make the testcase work. The documentation for the aligned attribute says: This attribute specifies a minimum alignment for the variable or structure field, measured in bytes. so I think it's reasonable for the vectoriser to increase the alignment further, if that helps us to vectorise code. It's also useful if the "user" alignment actually came from an earlier pass rather than the source code. A possible counterexample came up when this was discussed on the lists. Users who are trying to collate things from several translation units into a single section can use: __attribute__((section ("whatever"), aligned(N))) and would not want extra padding. It turns out that the supported way of doing that is to add a "used" attribute, which works even when no "aligned" attribute is given. 2018-01-05 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't punt for user-aligned variables. gcc/testsuite/ * gcc.dg/vect/vect-align-4.c: New test. * gcc.dg/vect/vect-nb-iter-ub-2.c (cc): Remove alignment attribute and redefine as a structure with an unaligned member "b". (foo): Update accordingly. From-SVN: r256277
Richard Sandiford committed -
2018-01-05 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-chrec.c (chrec_contains_symbols): Return true for POLY_INT_CST. From-SVN: r256276
Richard Sandiford committed -
This patch add support for the missing transformation of (x | y) == x -> (y & ~x) == 0. The transformation for (x & y) == x case already exists in simplify-rtx.c since 2014 as of r218503 and this patch only adds a couple of extra patterns for the IOR case. This benefits targets that have the BICS instruction to generate better code. For targets that do not have the BICS instructions, it still results in no worse code generation and gives out 2 instructions. ChangeLog Entries: *** gcc/ChangeLog *** 2018-01-05 Sudakshina Das <sudi.das@arm.com> PR target/82439 * simplify-rtx.c (simplify_relational_operation_1): Add simplifications of (x|y) == x for BICS pattern. *** gcc/testsuite/ChangeLog *** 2018-01-05 Sudakshina Das <sudi.das@arm.com> PR target/82439 * gcc.target/aarch64/bics_5.c: New test. * gcc.target/arm/bics_5.c: Likewise. From-SVN: r256275
Sudakshina Das committed -
PR tree-optimization/83605 * gimple-ssa-strength-reduction.c: Include tree-eh.h. (find_candidates_dom_walker::before_dom_children): Ignore stmts that can throw. * gcc.dg/pr83605.c: New test. From-SVN: r256274
Jakub Jelinek committed -
gcc/ * config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration. * config/epiphany/rtems.h: New file. libgcc/ * config.host (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration. From-SVN: r256273
Sebastian Huber committed -
From-SVN: r256272
GCC Administrator committed
-
- 04 Jan, 2018 25 commits
-
-
PR libstdc++/83626 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove redundant call to ec.clear(). (remove_all(const path&, error_code&))): Do not return an error for non-existent paths. * src/filesystem/std-ops.cc: Likewise. * testsuite/27_io/filesystem/operations/remove.cc: New test. * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected results for non-existent paths. * testsuite/experimental/filesystem/operations/remove.cc: New test. * testsuite/experimental/filesystem/operations/remove_all.cc: Fix expected results for non-existent paths. From-SVN: r256269
Jonathan Wakely committed -
PR target/83554 * config/i386/i386.md (*<rotate_insn>hi3_1 splitter): Use QIreg_operand instead of register_operand predicate. * config/i386/i386.c (ix86_rop_should_change_byte_p, set_rop_modrm_reg_bits, ix86_mitigate_rop): Use -mmitigate-rop in comments instead of -fmitigate[-_]rop. * gcc.target/i386/pr83554.c: New test. Co-Authored-By: Uros Bizjak <ubizjak@gmail.com> From-SVN: r256268
Jakub Jelinek committed -
PR bootstrap/81926 * cgraphunit.c (symbol_table::compile): Switch to text_section before calling assembly_start debug hook. * run-rtl-passes.c (run_rtl_passes): Likewise. Include output.h. From-SVN: r256267
Rainer Orth committed -
PR ipa/82352 * g++.dg/ipa/pr82352.C (size_t): Define to __SIZE_TYPE__ instead of long unsigned int. From-SVN: r256266
Jakub Jelinek committed -
2018-01-04 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83683 PR fortran/45689 * check.c (gfc_check_eoshift): Check for string length and for conformance of boundary. * intrinsic.c (add_functions): Add gfc_simplify_eoshift. * intrinsic.h: Add prototype for gfc_simplify_eoshift. * simplify.c (gfc_simplify_eoshift): New function. 2018-01-04 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83683 PR fortran/45689 * gfortran.dg/eoshift_8.f90: New test. * gfortran.dg/simplify_eoshift_1.f90: New test. From-SVN: r256265
Thomas Koenig committed -
Following on from: * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert for VR_RANGE only; don't allow VR_ANTI_RANGE. (extract_range_from_binary_expr_1): Don't call extract_range_from_multiplicative_op_1 if !range_int_cst_p. there was a later call to extract_range_from_multiplicative_op_1 too, that used a negative test for a symbolic (!is_gimple_min_invariant) range rather than a positive test for an integer range. 2017-11-04 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-vrp.c (extract_range_from_binary_expr_1): Check range_int_cst_p rather than !symbolic_range_p before calling extract_range_from_multiplicative_op_1. From-SVN: r256262
Richard Sandiford committed -
* tree-ssa-math-opts.c (execute_cse_reciprocals_1): Remove redundant test in assertion. From-SVN: r256260
Jeff Law committed -
2018-01-04 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * doc/rtl.texi: Document machine_mode wrapper classes. From-SVN: r256259
Richard Sandiford committed -
The first BIT_FIELD_REF folding pattern assumed without checking that operands satisfy tree_fits_uhwi_p. The second pattern does check this: /* On constants we can use native encode/interpret to constant fold (nearly) all BIT_FIELD_REFs. */ if (CONSTANT_CLASS_P (arg0) && can_native_interpret_type_p (type) && BITS_PER_UNIT == 8 && tree_fits_uhwi_p (op1) && tree_fits_uhwi_p (op2)) so this patch adds the checks to the first pattern too. This is needed for POLY_INT_CST bit positions. 2018-01-04 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * fold-const.c (fold_ternary_loc): Check tree_fits_uhwi_p before using tree_to_uhwi. From-SVN: r256258
Richard Sandiford committed -
tree-ssa-forwprop.c was asserting that a VEC_PERM_EXPR fold on three VECTOR_CSTs would always succeed, but it's possible for it to fail with variable-length vectors. 2017-12-22 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-ssa-forwprop.c (is_combined_permutation_identity): Allow the VEC_PERM_EXPR fold to fail. From-SVN: r256257
Richard Sandiford committed -
re PR debug/83585 (Assembler messages: Error: can't resolve `.text' {.text section} - `.LCOLDB0' {.text.unlikely section}) PR debug/83585 * bb-reorder.c (insert_section_boundary_note): Set has_bb_partition to switched_sections. * gcc.dg/pr83585.c: New test. From-SVN: r256256
Jakub Jelinek committed -
https://gcc.gnu.org/ml/gcc-patches/2018-01/msg00218.html PR c++/83667 * g++.dg/ipa/pr83667.C: Fix regex, require alias. From-SVN: r256254
Nathan Sidwell committed -
2018-01-04 Richard Sandiford <richard.sandiford@linaro.org> gcc/ PR target/83680 * config/arm/arm.c (arm_vectorize_vec_perm_const): Fix inverted test for d.testing. From-SVN: r256251
Richard Sandiford committed -
PR target/83387 * config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not allow arguments in FP registers if TARGET_HARD_FLOAT is false. From-SVN: r256250
Peter Bergner committed -
* include/bits/fs_ops.h (exists(const path&, error_code&))): Only check status_known once. * include/experimental/bits/fs_ops.h: Likewise. From-SVN: r256243
Jonathan Wakely committed -
PR debug/83666 * cfgexpand.c (expand_dbeug_expr) <case BIT_FIELD_REF>: Punt if mode is BLKmode and bitpos not zero or mode change is needed. * gcc.dg/pr83666.c: New test. From-SVN: r256232
Jakub Jelinek committed -
PR libstdc++/83607 * include/std/functional (__is_byte_like): New trait. (__is_std_equal_to): Remove. (__boyer_moore_base_t): Use __is_byte_like instead of __is_std_equal_to. * include/experimental/functional (__is_std_equal_to): Remove. (__boyer_moore_base_t): Use __is_byte_like instead of __is_std_equal_to. * testsuite/20_util/function_objects/83607.cc: New test. From-SVN: r256231
Jonathan Wakely committed -
From-SVN: r256230
Eric Botcazou committed -
I'd missed a TARGET_VIS2 condition when replacing vec_perm_const_optab with TARGET_VECTORIZE_VEC_PERM_CONST in r256093. 2018-01-04 Richard Sandiford <richard.sandiford@linaro.org> gcc/ PR target/83675 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Require TARGET_VIS2. From-SVN: r256229
Richard Sandiford committed -
PR target/83628 * config/alpha/alpha.md (*sadd<modesuffix>): Use ASHIFT instead of MULT rtx. Update all corresponding splitters. (*saddl_se): Ditto. (*ssub<modesuffix>): Ditto. (*ssubl_se): Ditto. (*cmp_sadd_di): Update split patterns. (*cmp_sadd_si): Ditto. (*cmp_sadd_sidi): Ditto. (*cmp_ssub_di): Ditto. (*cmp_ssub_si): Ditto. (*cmp_ssub_sidi): Ditto. * config/alpha/predicates.md (const23_operand): New predicate. * config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]: Look for ASHIFT, not MULT inner operand. (alpha_split_conditional_move): Update for *sadd<modesuffix> change. testsuite/ChangeLog: PR target/83628 * gcc.target/alpha/pr83628-1.c: New test. * gcc.target/alpha/pr83628-2.c: Ditto. From-SVN: r256228
Uros Bizjak committed -
2018-01-04 Martin Liska <mliska@suse.cz> PR gcov-profile/83669 * gcov.c (output_intermediate_file): Add version to intermediate gcov file. * doc/gcov.texi: Document new field 'version' in intermediate file format. Fix location of '-k' option of gcov command. From-SVN: r256227
Martin Liska committed -
2018-01-04 Martin Liska <mliska@suse.cz> PR ipa/82352 * ipa-icf.c (sem_function::merge): Do not cross comdat boundary. 2018-01-04 Martin Liska <mliska@suse.cz> PR ipa/82352 * g++.dg/ipa/pr82352.C: New test. From-SVN: r256226
Martin Liska committed -
* gcc.dg/vect-opt-info-1.c: Moved to ... * gcc.dg/vect/nodump-vect-opt-info-1.c: ... here. Only run on vect_int targets, use dg-additional-options instead of dg-options and use relative line numbers instead of absolute. From-SVN: r256225
Jakub Jelinek committed -
From-SVN: r256224
Eric Botcazou committed -
From-SVN: r256222
GCC Administrator committed
-
- 03 Jan, 2018 7 commits
-
-
From-SVN: r256219
Jakub Jelinek committed -
gcc/testsuite/ChangeLog: PR tree-optimization/83655 * gcc.dg/Wrestrict-5.c: New test. * c-c++-common/builtins.c: New test. gcc/ChangeLog: PR tree-optimization/83655 * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Avoid checking calls with invalid arguments. From-SVN: r256218
Martin Sebor committed -
gcc/ChangeLog: PR tree-optimization/83603 * calls.c (maybe_warn_nonstring_arg): Avoid accessing function arguments past the endof the argument list in functions declared without a prototype. * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Avoid checking when arguments are null. gcc/testsuite/ChangeLog: PR tree-optimization/83603 * gcc.dg/Wrestrict-4.c: New test. From-SVN: r256217
Martin Sebor committed -
After the previous patches, it's easier to see that the remaining inlined transform code in vectorizable_mask_load_store is just a cut-down version of the VMAT_CONTIGUOUS handling in vectorizable_load and vectorizable_store. This patch therefore makes those functions handle masked loads and stores instead. This makes it easier to handle more forms of masked load and store without duplicating logic from the unmasked forms. It also helps with support for fully-masked loops. 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-vect-stmts.c (vect_get_store_rhs): New function. (vectorizable_mask_load_store): Delete. (vectorizable_call): Return false for masked loads and stores. (vectorizable_store): Handle IFN_MASK_STORE. Use vect_get_store_rhs instead of gimple_assign_rhs1. (vectorizable_load): Handle IFN_MASK_LOAD. (vect_transform_stmt): Don't set is_store for call_vec_info_type. From-SVN: r256216
Richard Sandiford committed -
vectorizable_mask_load_store and vectorizable_load used the same code to build a gather load call, except that the former also vectorised a mask argument and used it for both the merge and mask inputs. The latter instead used a merge input of zero and a mask input of all-ones. This patch splits it out into a subroutine. 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-vect-stmts.c (vect_build_gather_load_calls): New function, split out from.., (vectorizable_mask_load_store): ...here. (vectorizable_load): ...and here. From-SVN: r256215
Richard Sandiford committed -
This patch splits out the code to build an all-bits-one or all-bits-zero input to a gather load. The catch is that both masks can have floating-point type, in which case they are implicitly treated in the same way as an integer bitmask. 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-vect-stmts.c (vect_build_all_ones_mask) (vect_build_zero_merge_argument): New functions, split out from... (vectorizable_load): ...here. From-SVN: r256214
Richard Sandiford committed -
This patch splits out the rhs checking code that's common to both vectorizable_mask_load_store and vectorizable_store. 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-vect-stmts.c (vect_check_store_rhs): New function, split out from... (vectorizable_mask_load_store): ...here. (vectorizable_store): ...and here. From-SVN: r256213
Richard Sandiford committed
-