- May 31, 2017
-
-
Martin Liska authored
2017-05-31 Martin Liska <mliska@suse.cz> * configure.ac: Add handling of stage2_werror_flags to action-if-given and to action-if-not-given. * configure: Regenerate. From-SVN: r248737
-
Alexander Monakov authored
* passes.c (emergency_dump_function): New. * tree-pass.h (emergency_dump_function): Declare. * plugin.c (plugins_internal_error_function): Remove. * plugin.h (plugins_internal_error_function): Remove declaration. * toplev.c (internal_error_function): New static function. Use it... (general_init): ...here. From-SVN: r248736
-
Graham Markall authored
Since the combine pass canonicalises shift-add insns using plus and ashift (as opposed to plus and mult which it previously used to do), it no longer creates *add_n or *sub_n insns, as the patterns match plus and mult only. The outcome of this is that some opportunities to generate add{1,2,3} and sub{1,2,3} instructions are missed. This change adds additional *add_n and *sub_n insns that match the plus-ashift pattern. The original *add_n and *sub_n insns are still left in, as they are sometimes generated later on by constant propagation. The idea of adding these insns is modelled on the changes in: https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01882.html which addresses a similar issue for the PA target. For the small test cases that are added, even if the combine pass misses the opportunity to generate addN or subN, constant propagation manages to do so, so the rtl of the combine pass is checked. gcc/ChangeLog: * config/arc/arc.c (arc_print_operand): Handle constant operands. (arc_rtx_costs): Add costs for new patterns. * config/arc/arc.md: Additional *add_n and *sub_n patterns. * config/arc/predicates.md: Add _1_2_3_operand predicate. gcc/testsuite/ChangeLog: * gcc.target/arc/add_n-combine.c: New test. * gcc.target/arc/sub_n-combine.c: New test. From-SVN: r248735
-
Jonathan Wakely authored
PR libstdc++/80893 * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid null pointer dereference when size is zero. * testsuite/23_containers/vector/bool/80893.cc: New. * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase): Add non-explicit constructor from nullptr. (PointerBase::derived() const): Add const-qualified overload. From-SVN: r248734
-
Richard Sandiford authored
This patch just adds a helper function for getting the next strinfo in a chain, since part 2 adds another place where we do that. 2017-05-16 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-ssa-strlen.c (get_next_strinfo): New function. (get_stridx_plus_constant): Use it. (zero_length_string): Likewise. (adjust_related_strinfos): Likewise. (adjust_last_stmt): Likewise. From-SVN: r248732
-
Richard Biener authored
2017-05-31 Richard Biener <rguenther@suse.de> PR target/80880 * config/i386/i386.c (ix86_expand_builtin): Remove assert for arg being an SSA name when expanding IX86_BUILTIN_BNDRET. * gcc.target/i386/pr80880.c: New testcase. From-SVN: r248731
-
Richard Sandiford authored
vect_find_same_alignment_drs uses the ddr dependence distance to tell whether two references have the same alignment. Although that's safe with the current code, there's no particular reason why a dependence distance of 0 should mean that the accesses start on the same byte. E.g. a reference to a full complex value could in principle depend on a reference to the imaginary component. A later patch adds support for this kind of dependence. On the other side, checking modulo vf is pessimistic when the step divided by the element size is a factor of 2. This patch instead looks for cases in which the drs have the same base, offset and step, and for which the difference in their constant initial values is a multiple of the alignment. 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove loop_vinfo argument and use of dependence distance vectors. Check instead whether the two references differ only in their initial value and assume that they have the same alignment if the difference is a multiple of the vector alignment. (vect_analyze_data_refs_alignment): Update call accordingly. gcc/testsuite/ * gcc.dg/vect/vect-103.c: Update wording of dump message. From-SVN: r248730
-
Martin Liska authored
2017-05-31 Martin Liska <mliska@suse.cz> PR target/79155 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h. From-SVN: r248729
-
Bin Cheng authored
(create_intersect_range_checks): Move from ... * tree-data-ref.c (create_intersect_range_checks_index) (create_intersect_range_checks): ... to here. (create_runtime_alias_checks): New function factored from ... * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ... here. Call above function. * tree-data-ref.h (create_runtime_alias_checks): New function. From-SVN: r248726
-
Bin Cheng authored
tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal segment length for dr_b and compute it in wide_int. * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal segment length for dr_b and compute it in wide_int. gcc/testsuite * gcc.dg/vect/pr80815-3.c: New test. From-SVN: r248725
-
Prakhar Bahuguna authored
2017-05-31 Prakhar Bahuguna <prakhar.bahuguna@arm.com> * MAINTAINERS: Add self to Write After Approval From-SVN: r248723
-
Richard Biener authored
re PR tree-optimization/80906 (ICE in copy_loop_close_phi_args, at graphite-isl-ast-to-gimple.c:2094) 2017-05-31 Richard Biener <rguenther@suse.de> PR tree-optimization/80906 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get and pass through iv_map. (copy_bb_and_scalar_dependences): Adjust. (translate_pending_phi_nodes): Likewise. (copy_loop_close_phi_args): Handle code-generating IVs instead of ICEing. * gcc.dg/graphite/pr80906.c: New testcase. From-SVN: r248722
-
DJ Delorie authored
* configure.ac (strnlen): Add to AC_CHECK_DECLS. * configure: Likewise. * config.in: Add HACE_DECL_STRNLEN. From-SVN: r248721
-
GCC Administrator authored
From-SVN: r248719
-
- May 30, 2017
-
-
Tom de Vries authored
2017-05-30 Tom de Vries <tom@codesourcery.com> PR testsuite/80910 * gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp: Exit with status unsupported if host compiler does not support c++11. (host_supports_c++11): New proc. From-SVN: r248701
-
Martin Sebor authored
gcc/testsuite/ChangeLog: PR c/80731 * g++.dg/ext/utf16-4.C: Relax test. * gcc.dg/fixed-point/int-warning.c: Adjust. From-SVN: r248700
-
Jason Merrill authored
* semantics.c (finish_call_expr): Replace a local extern overload set in a template with the IDENTIFIER_NODE. From-SVN: r248699
-
David Malcolm authored
gcc/ChangeLog: * diagnostic-color.c (color_dict): Add "type-diff". (parse_gcc_colors): Update comment. * doc/invoke.texi (Diagnostic Message Formatting Options): Add -fdiagnostics-show-template-tree and -fno-elide-type. (GCC_COLORS): Add type-diff to example. (type-diff=): New. (-fdiagnostics-show-template-tree): New. (-fno-elide-type): New. * pretty-print.c (pp_format): Pass quote and formatters[argno] to the pp_format_decoder callback. Call any m_format_postprocessor's "handle" method. (pretty_printer::pretty_printer): Initialize m_format_postprocessor. (pretty_printer::~pretty_printer): Delete any m_format_postprocessor. * pretty-print.h (printer_fn): Add bool and const char ** parameters. (class format_postprocessor): New class. (struct pretty_printer::format_decoder): Document the new parameters. (struct pretty_printer::m_format_postprocessor): New field. * tree-diagnostic.c (default_tree_printer): Update for new bool and const char ** params. * tree-diagnostic.h (default_tree_printer): Likewise. gcc/c/ChangeLog: * c-objc-common.c (c_tree_printer): Gain bool and const char ** parameters. gcc/c-family/ChangeLog: * c-format.c (gcc_cxxdiag_char_table): Add 'H' and 'I' to format_chars. * c.opt (fdiagnostics-show-template-tree): New option. (felide-type): New option. gcc/cp/ChangeLog: * call.c (perform_implicit_conversion_flags): Convert "from %qT to %qT" to "from %qH to %qI" in diagnostic. (print_conversion_rejection): Replace pairs of %qT with %qH and %qI in various places. (build_user_type_conversion_1): Likewise. (build_integral_nontype_arg_conv): Likewise. (build_conditional_expr_1): Likewise. (convert_like_real): Likewise. (convert_arg_to_ellipsis): Likewise. (joust): Likewise. (initialize_reference): Likewise. * cvt.c (cp_convert_to_pointer): Likewise. (cp_convert_to_pointer): Likewise. (convert_to_reference): Likewise. (ocp_convert): Likewise. * error.c (cp_printer): Gain bool and const char ** parameters. (struct deferred_printed_type): New struct. (class cxx_format_postprocessor): New class. (cxx_initialize_diagnostics): Wire up a cxx_format_postprocessor to pp->m_format_postprocessor. (comparable_template_types_p): New function. (newline_and_indent): New function. (arg_to_string): New function. (print_nonequal_arg): New function. (print_template_differences): New function. (type_to_string_with_compare): New function. (print_template_tree_comparison): New function. (append_formatted_chunk): New function. (add_quotes): New function. (cxx_format_postprocessor::handle): New function. (defer_phase_2_of_type_diff): New function. (cp_printer): Add "quoted" and "buffer_ptr" params. Implement %H and %I. * typeck.c (cp_build_binary_op): Replace pairs of %qT with %qH and %qI in various places. (convert_member_func_to_ptr): Likewise. (build_reinterpret_cast_1): Likewise. (convert_for_assignment): Likewise. * typeck2.c (check_narrowing): Likewise. gcc/fortran/ChangeLog: * error.c (gfc_format_decoder): Update for new bool and const char ** params. gcc/testsuite/ChangeLog: * g++.dg/plugin/plugin.exp (plugin_test_list): Add... * g++.dg/plugin/show-template-tree-color-no-elide-type.C: New test case. * g++.dg/plugin/show-template-tree-color.C: New test case. * g++.dg/plugin/show_template_tree_color_plugin.c: New plugin. * g++.dg/template/show-template-tree-2.C: New test case. * g++.dg/template/show-template-tree-3.C: New test case. * g++.dg/template/show-template-tree-4.C: New test case. * g++.dg/template/show-template-tree-no-elide-type.C: New test case. * g++.dg/template/show-template-tree.C: New test case. From-SVN: r248698
-
Segher Boessenkool authored
-mno-gen-cell-microcode is a pain to handle correctly: it causes different code generation for some very basic patterns, even patterns specific to that option. It also requires marking up many patterns, which is a pain when adding new patterns or modifying existing ones (first non-trivial step is finding the Cell BE manual!) -mwarn-cell-microcode is very expensive, even more so after my recent fix for PR43763; and it used to ICE for seven years before that fix. This patch removes both these command line options (it leaves the positive form of -mgen-cell-microcode, doing nothing, for compatibility). Where cc_reg_not_micro_cr0_operand was used, we now get the regular cc_reg_not_cr0_operand. One testcase used -mgen-cell-microcode and one its negation; both are adjusted. * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete. (lwa_operand): Delete rs6000_gen_cell_microcode test. * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete rs6000_gen_cell_microcode code. (rs6000_final_prescan_insn): Delete. (rs6000_opt_vars): Delete the "gen-cell-microcode" and "warn-cell-microcode" entries. * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete. * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests throughout. Change cc_reg_not_micro_cr0_operand to cc_reg_not_cr0_operand throughout. (*extendhi<mode>2_noload): Delete. * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub. (mwarn-cell-microcode): Delete. * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mgen-cell-microcode and -mwarn-cell-microcode. gcc/testsuite/ * gcc.target/powerpc/shift-dot.c: Delete -mgen-cell-microcode from dg-options. * gfortran.dg/pr80107.f: Delete testcase. From-SVN: r248695
-
Nathan Sidwell authored
Kill IDENTIFIER_NAMESPACE_BINDINGS * cp-tree.h (lang_identifier): Delete namespace_bindings. (IDENTIFIER_NAMESPACE_BINDINGS): Delete. (lang_decl_ns): Add bindings. (DECL_NAMESPACE_BINDINGS): New. * lex.c (retrofit_lang_decl): Create namespace hash table. * name-lookup.c (find_namespace_slot): Change to use hash-map. * ptree.c (cxx_print_binding): Delete. (cxx_print_identifier): Remove NAMESPACE_BINDING printing. From-SVN: r248694
-
Nathan Sidwell authored
* cp-tree.def (OVERLOAD): Fix comment. * cp-tree.h: Fix comments and whitespace. * error.c (dump_decl): Use pp_cxx_colon_colon, ovl_scope. * name-lookup.c (add_decl_to_level): Assert not class. (check_local_shadow): Use OVL_P. (pushdecl_with_scope_1): Rename to ... (do_pushdecl_with_Scope): ... here. (do_nonmember_using_decl): Use qualified_namespace_lookup return value. (push_class_level_binding_1): Use OVL_P. (pushdecl_namespace_level): Use do_pushdecl_with_scope. (pushtag_1): Rename to ... (do_pushtag): ... here. Adjust do_pushdecl_with_scope call. (pushtag): Adjust. (store_class_bindings): Do not time here. * name-lookup.h (pushdecl_outermost_localscope): Reorder. * pt.c (listify): Declare argvec at point of initialization. From-SVN: r248693
-
Uros Bizjak authored
* ChangeLog: Add missing entry. * testsuite/ChangeLog: Ditto. From-SVN: r248692
-
Uros Bizjak authored
PR target/80833 * config/i386/constraints.md (Yd): New constraint. (Ye): Ditto. * config/i386/i386.md (*movti_internal): Add (?r, Ye) and (?Yd, r) alternatives. Update insn attributes. * config/i386/i386.md (*movti_internal): Add (?r, *Ye) and (?*Yd, r) alternatives. Update insn attributes. (double-mode inter-unit splitters): Add new GR<->XMM splitters. testsuite/ChangeLog: PR target/80833 * gcc.target/i386/pr80833-1.c: New test. * gcc.target/i386/pr80833-2.c: Ditto. From-SVN: r248691
-
Pierre-Marie de Rodat authored
An upcoming patch exposes a bug in gimplify_modify_expr. There, we try not to create DECL_DEBUG_EXPR links across functions, however we don't check that *FROM_P actually belongs to the current function before modifying it. This patch fixes this oversight. gcc/ * gimplify.c (gimplify_modify_expr): Don't create a DECL_DEBUG_EXPR link if *FROM_P does not belong to the current function. From-SVN: r248688
-
Nathan Sidwell authored
PR c++/80913 * name-lookup.c (add_decl_to_level): Assert not making a circular chain. (update_binding): Don't prematurely slide artificial decl. * g++.dg/lookup/pr80913.C: New. From-SVN: r248687
-
Wilco Dijkstra authored
/src/gcc/gcc/config/arm/arm-builtins.c: In function 'rtx_def* arm_expand_builtin(tree, rtx, rtx, machine_mode, int)': /src/gcc/gcc/config/arm/arm-builtins.c:3056:46: error: type qualifiers ignored on cast result type [-Werror=ignored-qualifiers] if (d->code == (const enum arm_builtins) fcode) ^~~~~ Avoid the warning by removing const, and bootstrap is OK again. Committed as trivial patch. gcc/ * config/arm/arm-builtins.c (arm_expand_builtin): Remove const. From-SVN: r248686
-
Richard Biener authored
2017-05-30 Richard Biener <rguenther@suse.de> * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type and reduc_def fields. (STMT_VINFO_REDUC_TYPE): New define. (STMT_VINFO_REDUC_DEF): Likewise. (vect_force_simple_reduction): Adjust prototype. * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust. (vect_is_simple_reduction): Remove check_reduction argument. (vect_force_simple_reduction): Adjust and set STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF. (vectorizable_reduction): Do not re-do reduction analysis but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF. * tree-parloops.c (gather_scalar_reductions): Adjust. From-SVN: r248685
-
Olivier Hainque authored
2017-05-30 Olivier Hainque <hainque@adacore.com> libgcc/ * config/t-vxworks (LIBGCC2_INCLUDES): Remove extraneous dollar sign before $(MULTIDIR). From-SVN: r248684
-
Jakub Jelinek authored
PR libgomp/80822 * config/linux/affinity.c (gomp_affinity_init_level_1): New function. (gomp_affinity_init_level): Use it. Always analyze the core and thread sibling lists, depending on level just pick up what CPUs to put together into a place vs. whether add multiple ordered places. From-SVN: r248683
-
Richard Biener authored
re PR tree-optimization/80901 (ICE on valid code at -Os and above on x86_64-linux-gnu: in verify_loop_structure, at cfgloop.c:1644) 2017-05-30 Richard Biener <rguenther@suse.de> PR middle-end/80901 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with split_edge code. * gcc.dg/torture/pr80901.c: New testcase. From-SVN: r248681
-
Robin Dapp authored
gcc/ChangeLog: 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com> * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Introduce unknown_misalignment parameter and remove vf. (vect_peeling_hash_get_lowest_cost): Pass unknown_misalignment parameter. (vect_enhance_data_refs_alignment): Fix unsupportable data ref treatment. From-SVN: r248680
-
Robin Dapp authored
gcc/testsuite/ChangeLog: 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> * gcc.target/s390/vector/vec-nopeel-2.c: New test. From-SVN: r248679
-
Robin Dapp authored
gcc/ChangeLog: 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> * tree-vect-data-refs.c (vect_get_data_access_cost): Workaround for SLP handling. (vect_enhance_data_refs_alignment): Compute costs for doing no peeling at all, compare to the best peeling costs so far and avoid peeling if cheaper. From-SVN: r248678
-
Robin Dapp authored
gcc/ChangeLog: 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling): Return peeling info and set costs to zero for unlimited cost model. (vect_enhance_data_refs_alignment): Also inspect all datarefs with unknown misalignment. Compute and costs for unknown misalignment, compare them to the costs for known misalignment and choose the cheapest for peeling. From-SVN: r248677
-
Robin Dapp authored
gcc/ChangeLog: 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename. (vect_get_peeling_costs_all_drs): Create function. (vect_peeling_hash_get_lowest_cost): Use vect_get_peeling_costs_all_drs. (vect_peeling_supportable): Create function. (vect_enhance_data_refs_alignment): Use vect_peeling_supportable. From-SVN: r248676
-
Robin Dapp authored
gcc/ChangeLog: 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create DR_HAS_NEGATIVE_STEP. (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT. (vect_enhance_data_refs_alignment): Use. (vect_duplicate_ssa_name_ptr_info): Use. * tree-vectorizer.h (dr_misalignment): Use. (known_alignment_for_access_p): Use. From-SVN: r248675
-
Jozef Lawrynowicz authored
re PR target/78838 (msp430 option -mcode-region=either, -ffunction-sections, and interrupt function attributes cause incorrect section to be created) PR target/78838 gcc * config/msp430/msp430.c (gen_prefix): Return NULL when section name is .lowtext. (has_section_name): New function. testsuite * gcc.target/msp430/interrupt_fn_placement.c: New test. From-SVN: r248674
-
Martin Liska authored
2017-05-30 Martin Liska <mliska@suse.cz> PR other/80909 * auto-profile.c (get_function_decl_from_block): Fix parenthesis. From-SVN: r248647
-
Richard Biener authored
re PR tree-optimization/80876 (ICE in verify_loop_structure, at cfgloop.c:1644 (error: loop 1's latch does not have an edge to its header)) 2017-05-30 Richard Biener <rguenther@suse.de> PR middle-end/80876 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again. * gcc.dg/torture/pr80876.c: New testcase. From-SVN: r248633
-
Martin Liska authored
2017-05-30 Martin Liska <mliska@suse.cz> * dumpfile.c: Use newly added macro DUMP_FILE_INFO. * dumpfile.h (struct dump_file_info): Remove ctors. From-SVN: r248617
-