- 29 Jun, 2017 13 commits
-
-
* call.c (name_as_c_string): Move CONST_CAST to return. (build_new_method_call_1): Remove unneeded bracing. * class.c (include_empty_classes): Unbreak line. * constraint.cc (tsubst_check_constraint): Add space. * cp-tree.h (lang_decl_ns): Add comment. (PTRMEM_CST_MEMBER): Break line. * decl.c (grokfndecl): Add blank lines. Unbreak some others. (grokdeclarator): Remove lines, move declaration to first use. * decl2.c (decl_needed_p): Fix indentation. (c_parse_final_cleanups): Remove blank line. * method.c (implicitly_declare_fn): Move declaration to first use. * search.c (current_scope): Add blank lines. From-SVN: r249786
Nathan Sidwell committed -
tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add reduction chains to LOOP_VINFO_REDUCTIONS. 2017-06-29 Richard Biener <rguenther@suse.de> * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add reduction chains to LOOP_VINFO_REDUCTIONS. * tree-vect-slp.c (vect_analyze_slp): Continue looking for SLP reductions after processing reduction chains. * gcc.dg/vect/slp-reduc-8.c: New testcase. From-SVN: r249785
Richard Biener committed -
gcc/ * builtins.c (fold_builtin_FUNCTION): Use lang_hooks.decl_printable_name. gcc/cp/ * g++.dg/cpp1y/builtin_FUNCTION.C: New. From-SVN: r249784
Nathan Sidwell committed -
gcc/ PR middle-end/81194 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements with only one label. * stmt.c (expand_case): Assert NCASES is greater than one. gcc/testsuite/ PR middle-end/81194 * g++.dg/pr81194.C: New test. From-SVN: r249783
Peter Bergner committed -
The testcase in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80565 is passing now. Check in the testcase and resolve it as fixed. PR ipa/80565 * gcc.dg/torture/pr80565.c: New file. From-SVN: r249782
H.J. Lu committed -
2017-06-29 Richard Biener <rguenther@suse.de> * tree-cfg.c (group_case_labels_stmt): Return whether we changed anything. (group_case_labels): Likewise. (find_taken_edge): Push sanity checking on val to workers... (find_taken_edge_cond_expr): ... here (find_taken_edge_switch_expr): ... and here, handle cases with just a default label. * tree-cfg.h (group_case_labels_stmt): Adjust prototype. (group_case_labels): Likewise. * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When group_case_labels does anything cleanup the CFG again. From-SVN: r249780
Richard Biener committed -
PR tree-optimization/81196 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop exit condition comparing two IVs. gcc/testsuite * gcc.dg/vect/pr81196.c: New. From-SVN: r249778
Bin Cheng committed -
My patch yesterday accidentally missed a hunk that added the update to the tail entry of the autogenerated data structure produced by parsecpu.awk. This causes native bootstraps to fail. This patch adds back the missing hunk. 2017-06-29 Richard Earnshaw <rearnsha@arm.com> * config/arm/parsecpu.awk (gen_comm_data): Add initializer for profile to the dummy entry at the end of the list of architectures. * config/arm/arm-cpu-cdata.h: Regenerated. From-SVN: r249777
Richard Earnshaw committed -
Fix date on prevfious ChangeLog entry. From-SVN: r249775
Michael Collison committed -
re PR target/70119 (AArch64 should take advantage of implicit truncation of variable shift amount without defining SHIFT_COUNT_TRUNCATED) 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> Michael Collison <michael.collison@arm.com> PR target/70119 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1): New pattern. (*aarch64_reg_<mode>3_neg_mask2): New pattern. (*aarch64_reg_<mode>3_minus_mask): New pattern. (*aarch64_<optab>_reg_di3_mask2): New pattern. * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost of shift when the shift amount is masked with constant equal to the size of the mode. * config/aarch64/predicates.md (subreg_lowpart_operator): New predicate. 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> Michael Collison <michael.collison@arm.com> PR target/70119 * gcc.target/aarch64/var_shift_mask_1.c: New test. Co-Authored-By: Michael Collison <michael.collison@arm.com> From-SVN: r249774
Kyrylo Tkachov committed -
2017-06-29 Martin Liska <mliska@suse.cz> * config/i386/i386.opt: Change range from [1,5] to [0,5]. From-SVN: r249773
Martin Liska committed -
re PR ipa/80565 (ICE at -O2 and -O3 in 32-bit mode (not 64-bit) on x86_64-linux-gnu (in edge_badness, at ipa-inline.c:1028)) 2017-06-29 Yury Gribov <tetra2005@gmail.com> PR bootstrap/80565 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization code. * ipa-inline.h (edge_growth_cache_entry::edge_growth_cache_entry): New function. (reset_edge_growth_cache): Update to use constructor. From-SVN: r249771
Yury Gribov committed -
From-SVN: r249769
GCC Administrator committed
-
- 28 Jun, 2017 27 commits
-
-
We unnecessarily align data to 8 byte alignments even when -Os is specified. This brings the logic in the AArch64 backend more in line with the ARM backend and helps gain some image size in a few places. Caught by an internal report on the size of rodata sections being high with aarch64 gcc. * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New. (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT. (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT. Bootstrapped and regression tested on aarch64-none-linux-gnu with no regressions. From-SVN: r249764
Ramana Radhakrishnan committed -
* decl.c (build_typename_type): No longer static. * tree.c (strip_typedefs): Use it instead of make_typename_type. From-SVN: r249760
Jason Merrill committed -
(_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics. testsuite/ChangeLog: * gcc.target/i386/avx512vl-vpermd-1.c (_mm256_permutexvar_epi32): Test new intrinsic. * gcc.target/i386/avx512vl-vpermq-imm-1.c (_mm256_permutex_epi64): Ditto. * gcc.target/i386/avx512vl-vpermq-var-1.c (_mm256_permutexvar_epi64): Ditto. * gcc.target/i386/avx512f-vpermd-2.c: Do not check for AVX512F_LEN. * gcc.target/i386/avx512f-vpermq-imm-2.c: Ditto. * gcc.target/i386/avx512f-vpermq-var-2.c: Ditto. From-SVN: r249759
Sebastian Peryt committed -
* pt.c (maybe_instantiate_noexcept): Check for recursion. From-SVN: r249757
Jason Merrill committed -
* pt.c (convert_template_argument): Keep the TYPE_PACK_EXPANSION. From-SVN: r249756
Jason Merrill committed -
* pt.c (unify_pack_expansion): Use PACK_EXPANSION_EXTRA_ARGS. From-SVN: r249755
Jason Merrill committed -
* parser.c (cp_parser_class_head): Handle ::template. From-SVN: r249754
Jason Merrill committed -
* pt.c (resolve_typename_type): Fix TEMPLATE_ID_EXPR handling. From-SVN: r249753
Jason Merrill committed -
* parser.c (cp_parser_template_name): Handle dependent object type. (cp_parser_nested_name_specifier_opt): Make template_keyword_p a parameter. (cp_parser_id_expression): Pass it. (cp_parser_diagnose_invalid_type_name): Handle TEMPLATE_ID_EXPR. From-SVN: r249752
Jason Merrill committed -
* parser.c (cp_parser_template_id): Use the range location on the TEMPLATE_ID_EXPR. From-SVN: r249751
Jason Merrill committed -
* parser.c (cp_parser_lookup_name): Disqualify function templates after lookup. From-SVN: r249750
Jason Merrill committed -
Current multiarch directory name is always *-linux-gnu* on linux, this patch configures different names for uclibc and musl targets. 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com> * config.gcc (*-linux-musl*): Add t-musl tmake_file. (*-linux-uclibc*): Add t-uclibc tmake_file. * config/t-musl: New. * config/t-uclibc: New. From-SVN: r249745
Szabolcs Nagy committed -
Conditions checked for ARM targets in vector-related effective targets are inconsistent: * sometimes arm*-*-* is checked * sometimes Neon is checked * sometimes arm_neon_ok and sometimes arm_neon is used for neon check * sometimes check_effective_target_* is used, sometimes * is-effective-target This patch consolidate all of these check into using is-effective-target arm_neon and when little endian was checked, the check is kept. 2017-06-28 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/testsuite/ * lib/target-supports.exp (check_effective_target_vect_int): Replace current ARM check by ARM NEON's availability check. (check_effective_target_vect_intfloat_cvt): Likewise. (check_effective_target_vect_uintfloat_cvt): Likewise. (check_effective_target_vect_floatint_cvt): Likewise. (check_effective_target_vect_floatuint_cvt): Likewise. (check_effective_target_vect_shift): Likewise. (check_effective_target_whole_vector_shift): Likewise. (check_effective_target_vect_bswap): Likewise. (check_effective_target_vect_shift_char): Likewise. (check_effective_target_vect_long): Likewise. (check_effective_target_vect_float): Likewise. (check_effective_target_vect_perm): Likewise. (check_effective_target_vect_perm_byte): Likewise. (check_effective_target_vect_perm_short): Likewise. (check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_sum_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi): Likewise. (check_effective_target_vect_widen_mult_hi_to_si): Likewise. (check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise. (check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise. (check_effective_target_vect_widen_shift): Likewise. (check_effective_target_vect_extract_even_odd): Likewise. (check_effective_target_vect_interleave): Likewise. (check_effective_target_vect_multiple_sizes): Likewise. (check_effective_target_vect64): Likewise. (check_effective_target_vect_max_reduc): Likewise. From-SVN: r249744
Thomas Preud'homme committed -
ACLE explicitly states that when targetting the common subset of ARMv7-A, ARMv7-R and ARMv7-M, the __ARM_ARCH_PROFILE macro should not be set. We currently set it to 'M' which is clearly erroneous. The logic for creating this is very convoluted and also somewhat fragile, so I've taken the opportunity to use the new CPU and architecture definition infrastructure to record the profile for each architecture explicitly rather than try to reconstruct it from other data. I think this results in a much more robust solution. 2017-06-28 Richard Earnshaw <rearnsha@arm.com> * config/arm/parsecpu.awk (profile): Parse new keyword in an arch context. (gen_comm_data): Emit architectural setting of arch_prof. * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the profile. (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise. (armv8-m.base, armv8-m.main): Likewise. * arm-protos.h (arm_build_target): Add profile field. (arch_option): Likewise. * config/arm/arm.c (arm_configure_build_target): Copy the profile to the active target. * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use arm_active_target.profile. From-SVN: r249743
Richard Earnshaw committed -
2017-06-28 Richard Biener <rguenther@suse.de> PR middle-end/81227 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not TYPE_OVERFLOW_WRAPS. * match.pd (negate_expr_p): Likewise. * tree-ssa-reassoc.c (optimize_range_tests_diff): Use fold_build2, not fold_binary. * gcc.dg/pr81227.c: New testcase. From-SVN: r249742
Richard Biener committed -
This patch fixes a failure in gcc.target/aarch64/reload-valid-spoff.c triggered by https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01367.html. In ILP32 all memory accesses must have Pmode as the base address, but aarch64_expand_mov_immediate wasn't emitting a conversion in one case. Besides fixing this add an assert that flags any MEM operands that are not Pmode. gcc/ * config/aarch64/aarch64 (aarch64_expand_mov_immediate): Convert memory address to Pmode. (aarch64_print_operand): Assert MEM operands are always Pmode. From-SVN: r249741
Wilco Dijkstra committed -
The aarch_forward_to_shift_is_not_shifted_reg bypass always returns true on AArch64 shifted instructions. This causes the bypass to activate in too many cases, resulting in slower execution on Cortex-A53 like reported in PR79665. This patch uses the arm_no_early_alu_shift_dep condition instead which improves the example in PR79665 by ~7%. Given it is no longer used, remove aarch_forward_to_shift_is_not_shifted_reg. Also remove an unnecessary REG_P check. gcc/ PR target/79665 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep): Remove redundant if. (aarch_forward_to_shift_is_not_shifted_reg): Remove. * config/arm/aarch-common-protos.h (aarch_forward_to_shift_is_not_shifted_re): Remove. * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass. From-SVN: r249740
Wilco Dijkstra committed -
[gcc] 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> PR ipa/81238 * multiple_target.c (create_dispatcher_calls): Set the default clone to be static, not public. [gcc/testsuite] 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/81193 * lib/target-supports.exp (check_ppc_cpu_supports_hw_available): New test to make sure __builtin_cpu_supports works on power7 and newer. From-SVN: r249737
Michael Meissner committed -
2017-06-28 Richard Biener <rguenther@suse.de> * tree-vect-loop.c (vectorizable_reduction): Move special cond reduction IV var creation ... (vect_create_epilog_for_reduction): ... here. Remove induction_index parameter. Use STMT_VINFO_VECTYPE. * tree-vect-slp.c (vect_get_constant_vectors): Properly reset constant_p. From-SVN: r249736
Richard Biener committed -
2017-06-28 Martin Liska <mliska@suse.cz> PR ipa/81128 * ipa-visibility.c (non_local_p): Handle visibility. 2017-06-28 Martin Liska <mliska@suse.cz> PR ipa/81128 * c-attribs.c (handle_alias_ifunc_attribute): Append ifunc alias to a function declaration. 2017-06-28 Martin Liska <mliska@suse.cz> PR ipa/81128 * gcc.target/i386/pr81128.c: New test. From-SVN: r249735
Martin Liska committed -
2017-06-28 Martin Liska <mliska@suse.cz> PR driver/79659 * common.opt: Add IntegerRange to various options. * opt-functions.awk (integer_range_info): New function. * optc-gen.awk: Add integer_range_info to cl_options struct. * opts-common.c (decode_cmdline_option): Handle CL_ERR_INT_RANGE_ARG. (cmdline_handle_error): Likewise. * opts.c (print_filtered_help): Show valid interval in when --help is provided. * opts.h (struct cl_option): Add range_min and range_max fields. * config/i386/i386.opt: Add IntegerRange for -mbranch-cost. 2017-06-28 Martin Liska <mliska@suse.cz> PR driver/79659 * c.opt: Add IntegerRange to various options. 2017-06-28 Martin Liska <mliska@suse.cz> PR driver/79659 * g++.dg/opt/pr79659.C: New test. From-SVN: r249734
Martin Liska committed -
2017-06-28 Christophe Lyon <christophe.lyon@linaro.org> * gcc.dg/tree-ssa/copy-sign-1.c: Add c99_runtime effective target and options. * gcc.dg/tree-ssa/mult-abs-2.c: Likewise. From-SVN: r249733
Christophe Lyon committed -
2017-06-28 Marc Glisse <marc.glisse@inria.fr> gcc/ * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^. (x * C EQ/NE y * C): New transformation. gcc/testsuite/ * gcc.dg/tree-ssa/addadd.c: Remove test duplicated in addadd-2.c. * gcc.dg/tree-ssa/mulcmp-1.c: New file. From-SVN: r249732
Marc Glisse committed -
Current glibc no longer gives the ucontext_t type the tag struct ucontext, to conform with POSIX namespace rules. This requires various linux-unwind.h files in libgcc, that were previously using struct ucontext, to be fixed to use ucontext_t instead. This is similar to the removal of the struct siginfo tag from siginfo_t some years ago. This patch changes those files to use ucontext_t instead. As the standard name that should be unconditionally safe, so this is not restricted to architectures supported by glibc, or conditioned on the glibc version. Tested compilation together with current glibc with glibc's build-many-glibcs.py. * config/aarch64/linux-unwind.h (aarch64_fallback_frame_state), config/alpha/linux-unwind.h (alpha_fallback_frame_state), config/bfin/linux-unwind.h (bfin_fallback_frame_state), config/i386/linux-unwind.h (x86_64_fallback_frame_state, x86_fallback_frame_state), config/m68k/linux-unwind.h (struct uw_ucontext), config/nios2/linux-unwind.h (struct nios2_ucontext), config/pa/linux-unwind.h (pa32_fallback_frame_state), config/riscv/linux-unwind.h (riscv_fallback_frame_state), config/sh/linux-unwind.h (sh_fallback_frame_state), config/tilepro/linux-unwind.h (tile_fallback_frame_state), config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Use ucontext_t instead of struct ucontext. From-SVN: r249731
Joseph Myers committed -
2017-06-28 Christophe Lyon <christophe.lyon@linaro.org> gcc/ * genmultilib (combination_space): Accept '+' in option names. From-SVN: r249730
Christophe Lyon committed -
* gcc.target/i386/cmov7.c (sgn): Renamed to ... (foo): ... this. Change constants such that it isn't matched as __builtin_copysign, yet tests the combiner the same. From-SVN: r249729
Jakub Jelinek committed -
2017-06-28 Martin Liska <mliska@suse.cz> PR sanitizer/81224 * asan.c (instrument_derefs): Bail out inner references that are hard register variables. 2017-06-28 Martin Liska <mliska@suse.cz> PR sanitizer/81224 * gcc.dg/asan/pr81224.c: New test. From-SVN: r249728
Martin Liska committed
-