1. 11 Oct, 2017 31 commits
    • re PR c++/82414 (Issue with ODR/LTO in G++) · 1d5b9dd5
      	PR c++/82414
      	* g++.dg/lto/pr82414_0.C: New test.
      
      From-SVN: r253660
      Jakub Jelinek committed
    • re PR c++/78523 (ICE on valid lambda code with implicit capture) · fbb0add7
      	PR c++/78523
      	* g++.dg/cpp1y/pr78523.C: New test.
      
      From-SVN: r253659
      Jakub Jelinek committed
    • re PR c++/80194 (ICE with local constant referenced by a lambda expression) · 666a1c32
      	PR c++/80194
      	* g++.dg/cpp1y/pr80194.C: New test.
      
      From-SVN: r253658
      Jakub Jelinek committed
    • re PR target/81422 ([aarch64] internal compiler error: in update_equiv_regs, at ira.c:3425) · 241dbd9d
      /gcc
      2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
      
      	PR target/81422
      	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
      	Check whether the dest is REG before adding REG_EQUIV note.
      
      /gcc/testsuite
      2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
      
      	PR target/81422
            	* gcc.target/aarch64/pr81422.C: New test.
      
      From-SVN: r253657
      Qing Zhao committed
    • re PR sanitizer/82353 (runtime ubsan crash) · 6dcb9e91
      2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR sanitizer/82353
      	* lra.c (collect_non_operand_hard_regs): Don't ignore operator
      	locations.
      	* lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
      	(make_hard_regno_born, make_hard_regno_dead): Update
      	bb_killed_pseudos and bb_gen_pseudos.
      
      2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR sanitizer/82353
      	* gcc.target/i386/i386.exp (tests): Permit '.C' extension.
      	* gcc.target/i386/pr82353.C: New.
      
      From-SVN: r253656
      Vladimir Makarov committed
    • [PATCH] Include path enumeration · b90c9338
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00693.html
      	gcc/
      	* incpath.h (enum incpath_kind): Name enum, prefix values.
      	(add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
      	* incpath.c (heads, tails): Use INC_MAX.
      	(add_env_var_paths, add_standard_paths): Use incpath_kind.
      	(merge_include_chains, split_quote_chain,
      	register_include_chains): Update incpath_kind names.
      	(add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
      	* config/darwin-c.c (add_system_framework_path): Update incpath_kind
      	names.
      	(add_framework_path, darwin_register_objc_includes): Likewise.
      	* config/vms/vms-c.c (vms_c_register_includes): Likewise.
      	gcc/c-family/
      	* c-opts.c (add_prefixed_path): Change chain to incpath_kind.
      	(c_common_handle_option): Update incpath_kind names.
      	gcc/fortran/
      	* cpp.c (gfc_cpp_add_include_path): Update incpath_e names.
      	(gfc_cpp_add_include_path_after): Likewise.
      
      From-SVN: r253654
      Nathan Sidwell committed
    • i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387): Do not use float_operator operator predicate. · 42851ff8
      	* config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
      	Do not use float_operator operator predicate.
      	(*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
      	* config/i386/predicates.md (float_operator): Remove predicate.
      
      	* config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
      	(*jccxf_i387): Ditto.
      	(*jcc<mode>_i387): Ditto.
      	(*jccu<mode>_i387): Ditto.
      	(*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
      	(*jcc_*_i387 splitters): Remove.
      	* config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
      	* config/i386/i386.c (ix86_split_fp_branch): Remove.
      	* config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
      	Remove predicate.
      
      testsuite/ChangeLog:
      
      	* gcc.target/i386/387-ficom-1.c: New test.
      
      From-SVN: r253653
      Uros Bizjak committed
    • profile-count.h (slow_safe_scale_64bit): New function. · 9588ea78
      	* profile-count.h (slow_safe_scale_64bit): New function.
      	(safe_scale_64bit): New inline.
      	(profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
      	* profile-count.c: Include wide-int.h
      	(slow_safe_scale_64bit): New.
      
      From-SVN: r253652
      Jan Hubicka committed
    • struct-layout-1_generate.c (generate_fields): Fix typo in address computation of… · 278a8434
      struct-layout-1_generate.c (generate_fields): Fix typo in address computation of end of complex_attrib_array_types.
      
      	* gcc.dg/struct-layout-1_generate.c (generate_fields): Fix typo in
      	address computation of end of complex_attrib_array_types.
      
      From-SVN: r253650
      Jeff Law committed
    • [PATCH] DECL_ASSEMBLER_NAME and friends · a92f6726
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00582.html
      	* tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
      	HAS_DECL_ASSEMBLER_NAME_P.
      	* gimple-expr.c (gimple_decl_printable_name: Check
      	HAS_DECL_ASSEMBLER_NAME_P too.
      	* ipa-utils.h (type_in_anonymous_namespace_p): Check
      	DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
      	(odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
      	* passes.c (rest_of_decl_compilation): Check
      	HAS_DECL_ASSEMBLER_NAME_P too.
      	* recog.c (verify_changes): Likewise.
      	* tree-pretty-print.c (dump_decl_name): Likewise.
      	* tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.
      
      	c/
      	* c-decl.c (grokdeclarator): Check HAS_DECL_ASSEMBLER_NAME_P too.
      
      From-SVN: r253649
      Nathan Sidwell committed
    • [PATCH] DECL_ASSEMBLER_NAME and friends · 4e7d0260
      https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00582.html
      	* tree.h (DECL_ASSEMBLER_NAME_RAW): New.
      	(SET_DECL_ASSEMBLER_NAME): Use it.
      	(DECL_ASSEMBLER_NAME_SET_P): Likewise.
      	(COPY_DECL_ASSEMBLER_NAME): Likewise.
      	* tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
      
      	lto/
      	* lto.c (mentions_vars_p_decl_with_vis): Use
      	DECL_ASSEMBLER_NAME_RAW.
      	(lto_fixup_prevailing_decls): Likewise.
      
      	cp
      	* decl2.c (struct mangled_decl_hash): Use DECL_ASSEMBLER_NAME_RAW.
      	(record_mangling): Likewise.
      
      From-SVN: r253647
      Nathan Sidwell committed
    • config.gcc (i386, x86_64): Add extra objects. · 64766e8d
      
      
      	* config.gcc (i386, x86_64): Add extra objects.
      	* i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
      	(ix86_min_insn_size): Declare.
      	(ix86_issue_rate): Declare.
      	(ix86_adjust_cost): Declare.
      	(ia32_multipass_dfa_lookahead): Declare.
      	(ix86_macro_fusion_p): Declare.
      	(ix86_macro_fusion_pair_p): Declare.
      	(ix86_bd_has_dispatch): Declare.
      	(ix86_bd_do_dispatch): Declare.
      	(ix86_core2i7_init_hooks): Declare.
      	(ix86_atom_sched_reorder): Declare.
      	* i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
      	(COSTS_N_BYTES): Move to x86-tune-costs.h.
      	(DUMMY_STRINGOP_ALGS):x86-tune-costs.h.
      	(rip_relative_addr_p): Rename to ...
      	(ix86_rip_relative_addr_p): ... this one; export.
      	(memory_address_length): Update.
      	(ix86_issue_rate): Move to x86-tune-sched.c.
      	(ix86_flags_dependent): Move to x86-tune-sched.c.
      	(ix86_agi_dependent): Move to x86-tune-sched.c.
      	(exact_dependency_1): Move to x86-tune-sched.c.
      	(exact_store_load_dependency): Move to x86-tune-sched.c.
      	(ix86_adjust_cost): Move to x86-tune-sched.c.
      	(ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
      	(ix86_macro_fusion_p): Move to x86-tune-sched.c.
      	(ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
      	(do_reorder_for_imul): Move to x86-tune-sched-atom.c.
      	(swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
      	(ix86_sched_reorder): Move to x86-tune-sched-atom.c.
      	(core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
      	(core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
      	(min_insn_size): Rename to ...
      	(ix86_min_insn_size): ... this one; export.
      	(core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
      	(core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
      	(core2i7_first_cycle_multipass_backtrack): Move to x86-tune-sched-core.c.
      	(core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
      	(core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
      	(ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
      	(ix86_avoid_jump_mispredicts): Update.
      	(TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
      	(TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
      	(TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
      	(DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
      	(MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
      	(MAX_INSN): Move to ix86-tune-sched-bd.c.
      	(MAX_IMM): Move to ix86-tune-sched-bd.c.
      	(MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
      	(MAX_IMM_32): Move to ix86-tune-sched-bd.c.
      	(MAX_IMM_64): Move to ix86-tune-sched-bd.c.
      	(MAX_LOAD): Move to ix86-tune-sched-bd.c.
      	(MAX_STORE): Move to ix86-tune-sched-bd.c.
      	(BIG): Move to ix86-tune-sched-bd.c.
      	(enum dispatch_group): Move to ix86-tune-sched-bd.c.
      	(enum insn_path): Move to ix86-tune-sched-bd.c.
      	(get_mem_group): Move to ix86-tune-sched-bd.c.
      	(is_cmp): Move to ix86-tune-sched-bd.c.
      	(dispatch_violation): Move to ix86-tune-sched-bd.c.
      	(is_branch): Move to ix86-tune-sched-bd.c.
      	(is_prefetch): Move to ix86-tune-sched-bd.c.
      	(init_window): Move to ix86-tune-sched-bd.c.
      	(allocate_window): Move to ix86-tune-sched-bd.c.
      	(init_dispatch_sched): Move to ix86-tune-sched-bd.c.
      	(is_end_basic_block): Move to ix86-tune-sched-bd.c.
      	(process_end_window): Move to ix86-tune-sched-bd.c.
      	(allocate_next_window): Move to ix86-tune-sched-bd.c.
      	(find_constant): Move to ix86-tune-sched-bd.c.
      	(get_num_immediates): Move to ix86-tune-sched-bd.c.
      	(has_immediate): Move to ix86-tune-sched-bd.c.
      	(get_insn_path): Move to ix86-tune-sched-bd.c.
      	(get_insn_group): Move to ix86-tune-sched-bd.c.
      	(count_num_restricted): Move to ix86-tune-sched-bd.c.
      	(fits_dispatch_window): Move to ix86-tune-sched-bd.c.
      	(add_insn_window): Move to ix86-tune-sched-bd.c.
      	(add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
      	(debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
      	(debug_dispatch_window): Move to ix86-tune-sched-bd.c.
      	(debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
      	(debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
      	(do_dispatch): Move to ix86-tune-sched-bd.c.
      	(has_dispatch): Move to ix86-tune-sched-bd.c.
      	* i386/t-i386: Add new object files.
      	* i386/x86-tune-costs.h: New file.
      	* i386/x86-tune-sched-atom.c: New file.
      	* i386/x86-tune-sched-bd.c: New file.
      	* i386/x86-tune-sched-core.c: New file.
      	* i386/x86-tune-sched.c: New file.
      
      From-SVN: r253646
      Jan Hubicka committed
    • pretty-print.c [_WIN32] (colorize_init): Remove. · db0d1bae
      2017-10-11  Liu Hao  <lh_mouse@126.com>
      
      	* pretty-print.c [_WIN32] (colorize_init): Remove.  Use
      	the generic version below instead.
      	(should_colorize): Recognize Windows consoles as terminals
      	for MinGW targets.
      	* pretty-print.c [__MINGW32__] (write_all): New function.
      	[__MINGW32__] (find_esc_head): Likewise.
      	[__MINGW32__] (find_esc_terminator): Likewise.
      	[__MINGW32__] (eat_esc_sequence): Likewise.
      	[__MINGW32__] (mingw_ansi_fputs): New function that handles
      	ANSI escape codes.
      	(pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
      	for MinGW targets.
      
      From-SVN: r253645
      Liu Hao committed
    • tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): Properly call… · 85866209
      tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): Properly call analyze_scalar_evolution with the loop of the stmt.
      
      2017-10-11  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
      	Properly call analyze_scalar_evolution with the loop of the stmt.
      
      From-SVN: r253644
      Richard Biener committed
    • tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand. · d2ec0277
      2017-10-11  Richard Biener  <rguenther@suse.de>
      
      	* tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
      	* tree-core.h (tree_base): Add chrec_var union member.
      	* tree.h (CHREC_VAR): Remove.
      	(CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
      	* tree-chrec.h (build_polynomial_chrec): Adjust.
      	* tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
      	* tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
      
      From-SVN: r253643
      Richard Biener committed
    • X+Y < X iff Y<0 moved to match.pd · 6358a676
      2017-10-11  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
      	* match.pd: ... here.
      	((T) X == (T) Y): Relax condition.
      
      gcc/testsuite/
      	* gcc.dg/Wstrict-overflow-7.c: Xfail.
      	* gcc.dg/pragma-diag-3.c: Likewise.
      
      From-SVN: r253642
      Marc Glisse committed
    • re PR tree-optimization/82472 (ICE in generate_code_for_partition, at… · b4ec1d31
      re PR tree-optimization/82472 (ICE in generate_code_for_partition, at tree-loop-distribution.c:1145)
      
      	PR tree-optimization/82472
      	* tree-loop-distribution.c (sort_partitions_by_post_order): Refine
      	comment.
      	(break_alias_scc_partitions): Update postorder number.
      
      	gcc/testsuite
      	* gcc.dg/tree-ssa/pr82472.c: New test.
      
      From-SVN: r253641
      Bin Cheng committed
    • Do not error for no_sanitize attributes (PR sanitizer/82490). · 3a266bcd
      2017-10-11  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/82490
      	* opts.c (parse_no_sanitize_attribute): Do not use error_value
      	variable.
      	* opts.h (parse_no_sanitize_attribute): Remove last argument.
      2017-10-11  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/82490
      	* c-attribs.c (handle_no_sanitize_attribute): Report directly
      	Wattributes warning.
      2017-10-11  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/82490
      	* c-c++-common/ubsan/attrib-5.c: New test.
      
      From-SVN: r253640
      Martin Liska committed
    • Fix use-after-scope error. · 050dcb6a
      2017-10-11  Martin Liska  <mliska@suse.cz>
      
      	* print-rtl.c (print_insn): Move declaration of idbuf
      	to same scope as name.
      
      From-SVN: r253639
      Martin Liska committed
    • Revert last commit. · ed89e76a
      From-SVN: r253638
      Martin Liska committed
    • Do not handled volatile arguments (PR sanitizer/82484). · 78188a05
      2017-10-11  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/82484
      	* sanopt.c (sanitize_rewrite_addressable_params): Do not handle
      	volatile arguments.
      2017-10-11  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/82484
      	* gcc.dg/asan/pr82484.c: New test.
      
      From-SVN: r253637
      Martin Liska committed
    • Fix a test-case for Darwin. · b1a651a2
      2017-10-11  Martin Liska  <mliska@suse.cz>
      
      	* c-c++-common/ubsan/ptr-overflow-sanitization-1.c: Scan
      	optimized dump rather than assembly.
      
      From-SVN: r253636
      Martin Liska committed
    • Enable ifunc attribute by default for ARM GNU/Linux · d71031ff
      Similar to other architectures with IFUNC binutils/glibc support, this
      patch enables the ifunc attribute for ARM GNU/Linux.  Although not
      required for build master GLIBC, the intention is to allow refactor
      its assembly implementation to C.
      
      Tested compilation of glibc (in conjunction with a glibc patch to
      support using the attribute on ARM) with build-many-glibcs.py (with
      a patch to add a armv7 variant which enables multiarch).  I have
      not run the GCC tests for ARM.
      
      	* config.gcc (default_gnu_indirect_function): Default to yes for
      	arm*-*-linux* with glibc.
      
      From-SVN: r253635
      Adhemerval Zanella committed
    • * g++.dg/cpp/string-3.C: Fix dg-final. · dbd282bb
      From-SVN: r253634
      Nathan Sidwell committed
    • re PR c++/80412 ([c++17] crash with class template deduction guide and inheritance) · 08f0a739
      2017-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/80412
      	* g++.dg/cpp1z/class-deduction44.C: New.
      
      From-SVN: r253632
      Paolo Carlini committed
    • re PR c++/82230 (ICE: in tsubst, at cp/pt.c:13686 when binding lambda to… · 1d14f58c
      re PR c++/82230 (ICE: in tsubst, at cp/pt.c:13686 when binding lambda to variable inside a generic lambda inside a template member function inside a template class)
      
      2017-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/82230
      	* g++.dg/cpp1y/lambda-generic-ice8.C: New.
      
      From-SVN: r253631
      Paolo Carlini committed
    • re PR c++/81299 (Spurious "set but not used" warning with constexpr variable) · 99f1498e
      2017-10-11  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/81299
      	* g++.dg/cpp1y/lambda-generic-ice7.C: New.
      
      From-SVN: r253630
      Paolo Carlini committed
    • tree-scalar-evolution.c (get_scalar_evolution): Handle default-defs and types we… · 5355943c
      tree-scalar-evolution.c (get_scalar_evolution): Handle default-defs and types we do not want to analyze.
      
      2017-10-11  Richard Biener  <rguenther@suse.de>
      
      	* tree-scalar-evolution.c (get_scalar_evolution): Handle
      	default-defs and types we do not want to analyze.
      	(interpret_loop_phi): Replace unreachable code with an assert.
      	(compute_scalar_evolution_in_loop): Remove and inline ...
      	(analyze_scalar_evolution_1): ... here, replacing condition with
      	what makes the intent clearer.  Remove handling of cases
      	get_scalar_evolution now handles.
      
      From-SVN: r253629
      Richard Biener committed
    • Allow 2 insns from sched group to issue in same cycle, if no stalls needed. · e9593da8
      	gcc/
      	PR rtl-optimization/81434
      	* haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
      	comment for main loop.  In sched_group_found if, also add checks for
      	pass and min_cost_group.
      
      From-SVN: r253628
      James E Wilson committed
    • Daily bump. · 9ef8d30e
      From-SVN: r253627
      GCC Administrator committed
    • rs6000: insn_cost · ca158af3
      This adds an implementation of the insn_cost hook to rs6000.
      
      This implementations is very minimal (so far).  It is mostly based on
      how many machine instructions are generated by an RTL insn, and it also
      looks at the instruction type.  Floating point insns are costed as if
      all machine instructions it generates are floating point; the other
      insns are treated as if all but one are integer insns (and one is the
      specified type).  Load instructions are treated as costing twice as
      much, and load locked and sync insns as three times as much (just like
      the original costs), and integer div and mul are handled as well.
      
      Each define_insn (etc.) can set a "cost" attribute to override this
      general cost.  With optimization for size, the cost is set equal to the
      value of the "length" attribute.
      
      With this, the majority of cost differences between old and new are
      where the old was wrong.  Also, benchmarks show a slight win (if
      anything).  Some refinements are obviously needed.
      
      
      	* config/rs6000/rs6000.c (TARGET_INSN_COST): New.
      	(rs6000_insn_cost): New function.
      	* config/rs6000/rs6000.md (cost): New attribute.
      
      From-SVN: r253624
      Segher Boessenkool committed
  2. 10 Oct, 2017 9 commits