1. 15 Mar, 2019 6 commits
  2. 14 Mar, 2019 18 commits
    • hash-table.h (remove_elt_with_hash): Return if slot is NULL rather than if is_empty (*slot). · 62de703f
      	* hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
      	than if is_empty (*slot).
      	* hash-set-tests.c (test_set_of_strings): Add tests for addition of
      	existing elt and for elt removal.
      	* hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
      	of already removed elt.
      
      	* hashtab.c (htab_remove_elt_with_hash): Return if slot is NULL rather
      	than if *slot is HTAB_EMPTY_ENTRY.
      
      Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
      
      From-SVN: r269695
      Jason Merrill committed
    • i386: Handle REG_EH_REGION note · 12fb7712
      When we split:
      
      (insn 18 17 76 2 (set (reg:SF 88 [ _19 ])
              (float:SF (mem/c:SI (symbol_ref:DI ("d") [flags 0x2]  <var_decl 0x7fd6d8290c60 d>) [1 d+0 S4 A32]))) "x.ii":4:20 170 {*floatsisf2}
           (expr_list:REG_EH_REGION (const_int 2 [0x2])
              (nil)))
      
      to
      
      (insn 94 17 18 2 (set (reg:V4SF 115)
              (vec_merge:V4SF (vec_duplicate:V4SF (float:SF (mem/c:SI (symbol_ref:DI ("d") [flags 0x2]  <var_decl 0x7f346837ac60 d>) [1 d+0 S4 A32])))
                  (reg:V4SF 114)
                  (const_int 1 [0x1]))) "x.ii":4:20 -1
           (nil))
      (insn 18 94 76 2 (set (reg:SF 88 [ _19 ])
              (subreg:SF (reg:V4SF 115) 0)) "x.ii":4:20 112 {*movsf_internal}
           (expr_list:REG_EH_REGION (const_int 2 [0x2])
              (nil)))
      
      we must copy the REG_EH_REGION note to the first insn and split the block
      after the newly added insn.  The REG_EH_REGION on the second insn will be
      removed later since it no longer traps.
      
      gcc/
      
      	PR target/89650
      	* config/i386/i386.c (remove_partial_avx_dependency): Handle
      	REG_EH_REGION note.
      
      gcc/testsuite/
      
      	PR target/89650
      	* g++.target/i386/pr89650.C: New test.
      
      From-SVN: r269694
      H.J. Lu committed
    • Don't require 'bool' in a concept definition. · f869f407
      	* parser.c (cp_parser_decl_specifier_seq): Support C++20
      	concept-definition syntax without 'bool'.
      
      From-SVN: r269692
      Jason Merrill committed
    • gfortran.texi: Document Q edit descriptor under " Extensions not implemented in GNU Fortran". · c2772236
      2019-03-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* gfortran.texi: Document Q edit descriptor under
      	" Extensions not implemented in GNU Fortran".
      
      From-SVN: r269690
      Thomas Koenig committed
    • Remove dead option from manual (PR other/89712). · 3ce5bdf7
      2019-03-14  Martin Liska  <mliska@suse.cz>
      
      	PR other/89712
      	* doc/invoke.texi: Remove -fdump-class-hierarchy option.
      
      From-SVN: r269684
      Martin Liska committed
    • re PR target/89711 (ICE in insert_vi_for_tree, at tree-ssa-structalias.c:2832) · 6965fa6d
      2019-03-14  Richard Biener  <rguenther@suse.de>
      
      	PR target/89711
      	* config/i386/i386.c (make_resolver_func): Properly set
      	DECL_CONTEXT on the RESULT_DECL.
      	* config/rs6000/rs6000.c (make_resolver_func): Likewise.
      
      From-SVN: r269683
      Richard Biener committed
    • c-tree.h (enum c_declspec_il): New. · baa09dc5
      2019-03-14  Richard Biener  <rguenther@suse.de>
      
      	c/
      	* c-tree.h (enum c_declspec_il): New.
      	(struct c_declspecs): Merge gimple_p and rtl_p into declspec_il
      	enum bitfield.
      	* c-parser.c (c_parser_declaration_or_fndef): Adjust accordingly.
      	Pass start pass and declspec_il to c_parser_parse_gimple_body.
      	(c_parser_declspecs): Adjust.
      	* gimple-parser.c: Include cfg.h, cfghooks.h, cfganal.h, tree-cfg.h,
      	gimple-iterator.h, cfgloop.h, tree-phinodes.h, tree-into-ssa.h
      	and bitmap.h.
      	(struct gimple_parser): New.
      	(gimple_parser::push_edge): New method.
      	(c_parser_gimple_parse_bb_spec): New helper.
      	(c_parser_parse_gimple_body): Get start pass and IL specification.
      	Initialize SSA and CFG.
      	(c_parser_gimple_compound_statement): Handle CFG and SSA build.
      	Build a gimple_parser parsing state and pass it along.
      	(c_parser_gimple_statement): Change intermittend __PHI internal
      	function argument for the edge.
      	(c_parser_gimple_or_rtl_pass_list): Handle ssa, cfg flags.
      	(c_parser_gimple_goto_stmt): Record edges to build.
      	(c_parser_gimple_if_stmt): Likewise.
      	* gimple-parser.h (c_parser_parse_gimple_body): Adjust.
      	(c_parser_gimple_or_rtl_pass_list): Likewise.
      
      	* gimple-pretty-print.c: Include cfgloop.h.
      	(dump_gimple_phi): Adjust.
      	(dump_gimple_bb_header): Dump loop header for GIMPLE.
      	(pp_cfg_jump): Adjust.
      	(dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
      	* tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
      	(lower_phi_internal_fn): Remove.
      	(verify_gimple_call): Remove IFN_PHI special-casing.
      	(dump_function_to_file): Dump IL state.
      	* tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
      	done to deal with PHI nodes being present in non-SSA state.
      
      	* gcc.dg/gimplefe-13.c: Adjust.
      	* gcc.dg/gimplefe-14.c: Likewise.
      	* gcc.dg/gimplefe-17.c: Likewise.
      	* gcc.dg/gimplefe-18.c: Likewise.
      	* gcc.dg/gimplefe-7.c: Likewise.
      	* gcc.dg/torture/pr89595.c: Likewise.
      	* gcc.dg/tree-ssa/cunroll-13.c: Likewise.
      	* gcc.dg/tree-ssa/ivopt_mult_1g.c: Likewise.
      	* gcc.dg/tree-ssa/ivopt_mult_2g.c: Likewise.
      	* gcc.dg/tree-ssa/scev-3.c: Likewise.
      	* gcc.dg/tree-ssa/scev-4.c: Likewise.
      	* gcc.dg/tree-ssa/scev-5.c: Likewise.
      	* gcc.dg/vect/vect-cond-arith-2.c: Likewise.
      	* gcc.target/aarch64/sve/loop_add_6.c: Likewise.
      
      From-SVN: r269682
      Richard Biener committed
    • re PR ipa/89684 (ICE in gsi_for_stmt, at gimple-iterator.c:613) · 27814aed
      	PR ipa/89684
      	* multiple_target.c (create_dispatcher_calls): Change
      	references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
      	In the node->iterate_referring loop, push *ref rather than ref, call
      	ref->remove_reference () and always pass 0 to iterate_referring.
      
      	* gcc.target/i386/pr89684.c: New test.
      
      From-SVN: r269681
      Jakub Jelinek committed
    • re PR rtl-optimization/89679 (wrong code with -Og -frerun-cse-after-loop -fno-tree-fre) · 87654f18
      	PR rtl-optimization/89679
      	* expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
      	would contain a paradoxical SUBREG.
      
      	* gcc.dg/pr89679.c: New test.
      
      From-SVN: r269680
      Jakub Jelinek committed
    • re PR tree-optimization/89710 (ICE in dyn_cast<gcond*, gimple>(gimple*) /… · df6d3ac9
      re PR tree-optimization/89710 (ICE in dyn_cast<gcond*, gimple>(gimple*) / should_duplicate_loop_header_p)
      
      2019-03-14  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/89710
      	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
      	safe_dyn_cast.
      
      	* gcc.dg/torture/pr89710.c: New testcase.
      
      From-SVN: r269679
      Richard Biener committed
    • GCOV: print {start,end}_column in JSON file and gcov-dump tool. · b8154717
      2019-03-14  Martin Liska  <mliska@suse.cz>
      
      	* coverage.c (coverage_begin_function): Stream also
      	end_column.
      	* doc/gcov.texi: Document 2 new fields in JSON file.  Improve
      	documentation about function declaration location.
      	* gcov-dump.c (tag_function): Print whole range
      	of function declaration.
      	* gcov.c (struct function_info): Add end_column field.
      	(function_info::function_info): Initialize it.
      	(output_json_intermediate_file): Output {start,end}_column
      	fields.
      	(read_graph_file): Read end_column.
      
      From-SVN: r269678
      Martin Liska committed
    • re PR c++/89698 (Run-time error due to optimization of field access after cast… · ea9d9d74
      re PR c++/89698 (Run-time error due to optimization of field access after cast at -Os/-O2 and higher)
      
      2019-03-14  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/89698
      	* fold-const.c (operand_equal_p): For INDIRECT_REF check
      	that the access types are similar.
      
      	* g++.dg/torture/pr89698.C: New testcase.
      
      From-SVN: r269677
      Richard Biener committed
    • re PR tree-optimization/89703 (ICE in compare_values_warnv, at tree-vrp.c:997) · f54e63df
      	PR tree-optimization/89703
      	* tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
      	aren't compatible also with builtin_decl_explicit.  Check pure
      	or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
      	and BUILT_IN_STPNCPY{,_CHK}.
      
      	* gcc.c-torture/compile/pr89703-1.c: New test.
      	* gcc.c-torture/compile/pr89703-2.c: New test.
      
      From-SVN: r269674
      Jakub Jelinek committed
    • x32: Add addr32 prefix to VSIB address · fb055f4b
      32-bit indices in VSIB address are sign-extended to 64 bits.  In x32,
      when 32-bit indices are used as addresses, like in
      
      vgatherdps %ymm7, 0(,%ymm9,1), %ymm6
      
      32-bit indices, 0xf7fa3010, is sign-extended to 0xfffffffff7fa3010 which
      is invalid address.  Add addr32 prefix to UNSPEC_VSIBADDR instructions
      for x32 if there is no base register nor symbol.
      
      This fixes 175.vpr and 254.gap in SPEC CPU 2000 on x32 with
      
      -Ofast -funroll-loops -march=haswell
      
      gcc/
      
      	PR target/89523
      	* config/i386/i386.c (ix86_print_operand): Handle 'M' to add
      	addr32 prefix to VSIB address for X32.
      	* config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
      	"%M2" to opcode.
      	(*avx512pf_gatherpf<mode>df_mask): Likewise.
      	(*avx512pf_scatterpf<mode>sf_mask): Likewise.
      	(*avx512pf_scatterpf<mode>df_mask): Likewise.
      	(*avx2_gathersi<mode>): Prepend "%M3" to opcode.
      	(*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
      	(*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
      	(*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
      	(*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
      	(*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
      	(*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
      	(*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
      	(*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
      	(*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
      	(*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
      	(*avx512f_scatterdi<mode>): Likewise.
      
      gcc/testsuite/
      
      	PR target/89523
      	* gcc.target/i386/pr89523-1a.c: New test.
      	* gcc.target/i386/pr89523-1b.c: Likewise.
      	* gcc.target/i386/pr89523-2.c: Likewise.
      	* gcc.target/i386/pr89523-3.c: Likewise.
      	* gcc.target/i386/pr89523-4.c: Likewise.
      	* gcc.target/i386/pr89523-5.c: Likewise.
      	* gcc.target/i386/pr89523-6.c: Likewise.
      	* gcc.target/i386/pr89523-7.c: Likewise.
      	* gcc.target/i386/pr89523-8.c: Likewise.
      	* gcc.target/i386/pr89523-9.c: Likewise.
      
      From-SVN: r269673
      H.J. Lu committed
    • re PR c++/89512 (ICE in get_expr_operands, at tree-ssa-operands.c:882) · b2725ea5
      	PR c++/89512
      	* semantics.c (finish_qualified_id_expr): Reject variable templates.
      
      	* g++.dg/cpp1y/var-templ61.C: New test.
      
      From-SVN: r269672
      Jakub Jelinek committed
    • re PR c++/89652 (ICE during constexpr evaluation) · 0ee28590
      	PR c++/89652
      	* constexpr.c (struct constexpr_ctx): Change save_exprs type from
      	hash_set<tree> to vec<tree>.
      	(cxx_eval_call_expression): Adjust for save_exprs being a vec instead
      	of hash_set.
      	(cxx_eval_loop_expr): Likewise.  Truncate the vector after each
      	removal of SAVE_EXPRs from values.
      	(cxx_eval_constant_expression) <case SAVE_EXPR>: Call safe_push
      	method on save_exprs instead of add.
      
      	* g++.dg/cpp1y/constexpr-89652.C: New test.
      
      From-SVN: r269671
      Jakub Jelinek committed
    • Daily bump. · 7da0bca1
      From-SVN: r269670
      GCC Administrator committed
  3. 13 Mar, 2019 16 commits