162024 Commits

Author SHA1 Message Date
Eric Botcazou
4847a76bd2 [Ada] Remove obsolete code in Errout
This just removes obsolete code.  No functional changes.

2018-06-11  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* errout.adb (Special_Msg_Delete): Remove handling of Atomic and VFA.

From-SVN: r261397
2018-06-11 09:16:37 +00:00
Nicolas Roche
c4ca0af40b [Ada] Avoid a stack overflow in 'Value for invalid long strings
2018-06-11  Nicolas Roche  <roche@adacore.com>

gcc/ada/

	* libgnat/s-valuti.adb (Bad_Value): Ensure that we do not generate a
	stack overflow while raising a constraint error.

From-SVN: r261396
2018-06-11 09:16:32 +00:00
Eric Botcazou
972d29849f [Ada] Minor tweaks in Repinfo
2018-06-11  Eric Botcazou  <ebotcazou@adacore.com>

gcc/ada/

	* repinfo.ads (Rep_Value): Use a single line.
	* repinfo.adb (Rep_Value): Likewise.
	(List_Attr): Do not use string concatenation.

From-SVN: r261395
2018-06-11 09:15:47 +00:00
Ed Schonberg
b516a1a96b [Ada] Unnesting: improve handling of bounds for formal parameters
2018-06-11  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

	* exp_unst.adb (Visit_Node): Check reference to formal parameter of
	current procedure, because the bounds of its type may be uplevel
	references.

From-SVN: r261394
2018-06-11 09:15:03 +00:00
GCC Administrator
8c6fc01486 Daily bump.
From-SVN: r261393
2018-06-11 00:17:01 +00:00
Paolo Carlini
874c7b7df2 decl.c (grokfndecl): Use the location_t argument in two more places.
/cp
2018-06-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (grokfndecl): Use the location_t argument in two more places.

/testsuite
2018-06-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/template/friend64.C: New.
	* g++.old-deja/g++.other/friend4.C: Test the location too.
	* g++.old-deja/g++.pt/crash23.C: Likewise.

From-SVN: r261389
2018-06-10 21:19:07 +00:00
Thomas Koenig
980fa45eef gfortran.h (gfc_expr): Add no_bounds_check field.
2018-06-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* gfortran.h (gfc_expr): Add no_bounds_check field.
	* frontend-passes.c (get_array_inq_function): Set no_bounds_check
	on function and function argument.
	(inline_matmul_assign): Set no_bounds_check on zero expression
	and on lhs of zero expression.
	Also handle A1B2 case if realloc on assigment is active.
	* trans-array.c (gfc_conv_array_ref): Don't do range checking
	if expr has no_bounds_check set.
	(gfc_conv_expr_descriptor): Set no_bounds_check on ss if expr
	has it set.
	* trans-expr.c (gfc_trans_assignment_1): Set no_bounds_check
	on lss and lss if the corresponding expressions have it set.

2018-06-10  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* gfortran.dg/inline_matmul_23.f90: New test.

From-SVN: r261388
2018-06-10 15:31:42 +00:00
Dominique d'Humieres
dcdae924d2 re PR fortran/79854 (diagnostics: gfc_conv_constant_to_tree should be gfc_internal_error)
2018-06-10  Dominique d'Humieres  <dominiq@gcc.gnu.org>

	PR fortran/79854
	* trans-const.c: Remove include "diagnostic-core.h".
	(gfc_conv_constant_to_tree): Replace fatal_error with gcc_unreachable.

From-SVN: r261387
2018-06-10 14:50:03 +02:00
Janus Weil
ea20e8be96 re PR fortran/85088 (improve diagnostic for bad INTENT declaration ('Invalid character in name at'))
2018-06-10  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/85088
	* decl.c (match_attr_spec): Synchronize the DECL_* enum values with the
	INTENT_* values from the enum 'sym_intent'. Call 'match_intent_spec'
	and remove a TODO note.
	* gfortran.h: Add a comment to sym_intent.


2018-06-10  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/85088
	* gfortran.dg/intent_decl_1.f90: New test case.

From-SVN: r261386
2018-06-10 10:20:50 +02:00
Jerry DeLisle
3a579cbe07 re PR libfortran/86070 (gfortran.dg/fmt_zero_digits.f90 segmentation fault starting with r261077)
2018-06-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/86070
	* io/write_float.def (build_float_string): Initialize *len.

From-SVN: r261382
2018-06-10 01:49:02 +00:00
GCC Administrator
f0a9b3ddac Daily bump.
From-SVN: r261381
2018-06-10 00:17:11 +00:00
Steven G. Kargl
258b49ed56 ieee_4.f90: xfail on i?86-*-freebsd*
2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>

   * gfortran.dg/ieee/ieee_4.f90: xfail on i?86-*-freebsd*
   * gfortran.dg/ieee/large_4.f90: Ditto.
   * gfortran.dg/round_4.f90: Ditto.

From-SVN: r261377
2018-06-09 22:28:54 +00:00
Steven G. Kargl
1dd88f8bee re PR fortran/38351 (Poor error message for rank mismatch in operator args)
2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>
 
	PR fortran/38351
	* resolve.c (resolve_operator): Provide better error message for
	derived type entity used in an binary intrinsic numeric operator.

2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/38351
	* gfortran.dg/pr38351.f90: New test.
	* gfortran.dg/typebound_operator_4.f03: Adjust for new error message.

From-SVN: r261363
2018-06-09 15:58:24 +00:00
Steven G. Kargl
3cf89a7b99 re PR fortran/85138 (ICE with generic function)
2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/85138
	PR fortran/85996
	PR fortran/86051
	* decl.c (gfc_match_char_spec): Use private namespace in attempt to
	reduce a charlen to a constant.

2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/85138
	PR fortran/85996
	PR fortran/86051
	* gfortran.dg/pr85138_1.f90: New test.
	* gfortran.dg/pr85138_2.f90: Ditto.
	* gfortran.dg/pr85996.f90: Ditto.

From-SVN: r261362
2018-06-09 15:47:40 +00:00
Steven G. Kargl
4ea0af1da0 re PR fortran/78278 (ICE in gfc_wide_memset, at fortran/scanner.c:153)
2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78278
	* data.c (gfc_assign_data_value): Re-arrange code to allow for
	an error for double initialization of CHARACTER entities.

2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78278
	* gfortran.dg/data_bounds_1.f90: Add -std=gnu option.
	* gfortran.dg/data_char_1.f90: Ditto.
	* gfortran.dg/pr78571.f90: Ditto.
	* gfortran.dg/pr78278.f90: New test.

From-SVN: r261361
2018-06-09 15:39:29 +00:00
Steven G. Kargl
598dc594fa re PR fortran/63514 (functions containing volatile are considered pure)
2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>

 PR fortran/63514
 * symbol.c (gfc_add_volatile): Enforce F2008:C1282 and F2018:C1588.


2018-06-09  Steven G. Kargl  <kargl@gcc.gnu.org>

 PR fortran/63514
 * gfortran.dg/pr63514.f90: New test.

From-SVN: r261360
2018-06-09 15:33:28 +00:00
GCC Administrator
1ae28fc34c Daily bump.
From-SVN: r261357
2018-06-09 00:16:34 +00:00
Cherry Zhang
88f1232807 compiler: remove stack_allocation_expression
Now we make temporaries for allocations on stack (CL 86242). This
    function is no longer used. Remove.
    
    Reviewed-on: https://go-review.googlesource.com/92618

	* go-gcc.cc (class Gcc_backend): Remove
	stack_allocation_expression method.

From-SVN: r261353
2018-06-08 23:55:06 +00:00
Thomas Koenig
d1ecece9af re PR fortran/85631 (Runtime error message array bound mismatch with nonzero optimization)
2018-06-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/85631
	* trans.h (gfc_ss): Add field no_bounds_check.
	* trans-array.c (gfc_conv_ss_startstride): If flag_realloc_lhs and
	ss->no_bounds_check is set, do not use runtime checks.
	* trans-expr.c (gfc_trans_assignment_1): Set lss->no_bounds_check
	for reallocatable lhs.

2018-06-08  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/85631
	* gfortran.dg/bounds_check_20.f90: New test.

From-SVN: r261348
2018-06-08 22:04:11 +00:00
Carl Love
058872eaad p8vector-builtin-3.c: Add vec_pack test.
gcc/testsuite/ChangeLog:

2018-06-08  Carl Love  <cel@us.ibm.com>

 	* gcc.target/powerpc/p8vector-builtin-3.c: Add vec_pack test. Update
	vpkudum counts.
 	* gcc.target/powerpc/p9-extract-3.c: Make second argument of
	vec_extract a signed int.
 	* gcc.target/powerpc/vec-cmp.c: Add vec_cmple, vec_cmpge tests. Update,
	vcmpgtsb, vcmpgtub, vcmpgtsh, vcmpgtuh, vcmpgtsw, vcmpgtsw, vcmpgtuw,
	vcmpgtsd, vcmpgtud.
	* gcc.target/powerpc/vsx-extract-4.c: Make second argument of
	vec_extract a signed int.
	* gcc.target/powerpc/vsx-extract-5.c: Make second argument of
	vec_extract a signed int.
 	* gcc.target/powerpc/vsx-vector-7.c (foo): Add tests for vec_sel and
	vec_xor builtins.  Update xxsel, xxlxor counts.

From-SVN: r261347
2018-06-08 20:09:46 +00:00
Steven G. Kargl
2f2fc3252c re PR fortran/86059 (ICE in reduce_binary_ac, at fortran/arith.c:1308 (and others))
2018-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/86059 
	* array.c (match_array_cons_element): NULL() cannot be in an
	array constructor.

2018-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/86059 
	* gfortran.dg/associate_30.f90: Remove code tested ...
	* gfortran.dg/pr67803.f90: Ditto.
	* gfortran.dg/pr67805.f90: Ditto.
	* gfortran.dg/pr86059.f90: ... here.  New test.

From-SVN: r261344
2018-06-08 19:11:21 +00:00
Steven G. Kargl
5954faa7c2 re PR fortran/78571 (ICE in create_character_initializer, at fortran/data.c:191)
2018-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78571
	* data.c (create_character_initializer): Return early if type is
	incompatible with CHARACTER.

2018-06-08  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/78571
	* gfortran.dg/pr78571.f90: New test.

From-SVN: r261343
2018-06-08 19:06:20 +00:00
Peter Bergner
f57d14462e re PR target/85755 (PowerPC Gcc's -mupdate produces inefficient code on power8/power9 machines)
gcc/
	PR target/85755
	* config/rs6000/rs6000.c (mem_operand_gpr): Enable PRE_INC and PRE_DEC
	addresses.

gcc/testsuite/
	PR target/85755
	* gcc.target/powerpc/pr85755.c: New test.

From-SVN: r261340
2018-06-08 12:17:45 -05:00
Jonathan Wakely
a14175560c Define special members as defaulted
* include/bits/ios_base.h (ios::Init::Init(const Init&))
	(ios::Init::operator=): Define as defaulted.
	* include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
	Likewise.
	* include/bits/stream_iterator.h (istream_iterator::operator=)
	(ostream_iterator::operator=): Likewise.
	* include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
	Likewise.
	* include/std/bitset (bitset::reference::reference(const reference&)):
	Likewise.
	* include/std/complex (complex<float>::complex(const complex&))
	(complex<double>::complex(const complex&))
	(complex<long double>::complex(const complex&)): Likewise.

From-SVN: r261338
2018-06-08 17:43:14 +01:00
Jan Hubicka
29a50dfb47 dumpfile.c (FIRST_ME_AUTO_NUMBERED_DUMP): Bump to 4.
* dumpfile.c (FIRST_ME_AUTO_NUMBERED_DUMP): Bump to 4.
	* lto-lang.c (lto_link_dump_id, decl_merge_dump_id, partition_dump_id):
	New global vars.
	(lto_register_dumps): New hook.
	(LANG_HOOKS_REGISTER_DUMPS): New.
	* lto-partition.c: Dump into dump_file instead of symtab->dump_file.
	* lto-symtab.c: Include lto.h; dump into dump_file instead of
	symtab->dump_file.
	(lto_symtab_merge_decls): Initialize dump file.
	* lto.c (read_cgraph_and_symbols): Initialize dump file.
	(do_whole_program_analysis): Likewise.

From-SVN: r261337
2018-06-08 16:12:39 +00:00
David Edelsohn
850078b738 * config/rs6000/rs6000.c (rs6000_passes_ieee128): Protect with #if TARGET_ELF.
From-SVN: r261336
2018-06-08 11:42:24 -04:00
Segher Boessenkool
d3fe528079 Whoops, forgot to commit the patch with r261324, just did the changelog.
From-SVN: r261335
2018-06-08 17:23:19 +02:00
Carl Love
adff928a6d vsx-vector-6-be.p7.c: Rename this file to vsx-vector-6.p7.c.
gcc/testsuite/ChangeLog:

2018-06-08  Carl Love  <cel@us.ibm.com>

	* gcc.target/powerpc/vsx-vector-6-be.p7.c: Rename this file to
	vsx-vector-6.p7.c.
	* gcc.target/powerpc/vsx-vector-6-le.p9.c: Rename this file to
	vsx-vector-6.p9.c.
	* gcc.target/powerpc/vsx-vector-6-be.p8.c: Move instruction counts
	for BE system that are different then for an LE system from this file
	into vsx-vector-6-le.c using be target qualifier.  Remove this file.
	* gcc.target/powerpc/vsx-vector-6-le.c: Add le qualifiers as needed for
	the various instruction counts.  Rename file to	vsx-vector-6.p8.c.

From-SVN: r261333
2018-06-08 15:22:31 +00:00
Joseph Myers
e1224fa5bf * es.po: Update.
From-SVN: r261331
2018-06-08 16:16:05 +01:00
Martin Liska
439608b783 Fix function signature in header file.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* tree-cfg.h (debug_function): Fix argument type to match
        implementation.

From-SVN: r261327
2018-06-08 13:44:06 +00:00
Martin Liska
d0765b25af PPC: remove usage of cgraph_node::instrumentation_clone and cgraph_node::instrumented_version.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* config/powerpcspe/powerpcspe.c (rs6000_xcoff_visibility):
        Remove usage of MPX-related (and removed) fields.
	* config/rs6000/rs6000.c (rs6000_xcoff_visibility): Likewise.

From-SVN: r261326
2018-06-08 13:30:41 +00:00
David Malcolm
4af78ef869 Convert dump and optgroup flags to enums
gcc/brig/ChangeLog:
	* brigfrontend/brig-to-generic.cc
	(brig_to_generic::write_globals): Use TDF_NONE rather than 0.
	(dump_function): Likewise.

gcc/c-family/ChangeLog:
	* c-pretty-print.c (c_pretty_printer::statement): Use TDF_NONE
	rather than 0.

gcc/ChangeLog:
	* cfg.c (debug): Use TDF_NONE rather than 0.
	* cfghooks.c (debug): Likewise.
	* dumpfile.c (DUMP_FILE_INFO): Likewise; also for OPTGROUP.
	(struct dump_option_value_info): Convert to...
	(struct kv_pair): ...this template type.
	(dump_options): Convert to kv_pair<dump_flags_t>; use TDF_NONE
	rather than 0.
	(optinfo_verbosity_options): Likewise.
	(optgroup_options): Convert to kv_pair<optgroup_flags_t>; use
	OPTGROUP_NONE.
	(gcc::dump_manager::dump_register): Use optgroup_flags_t rather
	than int for "optgroup_flags" param.
	(dump_generic_expr_loc): Use dump_flags_t rather than int for
	"dump_kind" param.
	(dump_dec): Likewise.
	(dump_finish): Use TDF_NONE rather than 0.
	(gcc::dump_manager::opt_info_enable_passes): Use optgroup_flags_t
	rather than int for "optgroup_flags" param.  Use TDF_NONE rather
	than 0.  Update for change to option_ptr.
	(opt_info_switch_p_1): Convert "optgroup_flags" param from int *
	to optgroup_flags_t *.  Use TDF_NONE and OPTGROUP_NONE rather than
	0.  Update for changes to optinfo_verbosity_options and
	optgroup_options.
	(opt_info_switch_p): Convert optgroup_flags from int to
	optgroup_flags_t.
	(dump_basic_block): Use dump_flags_t rather than int
	for "dump_kind" param.
	* dumpfile.h (TDF_ADDRESS, TDF_SLIM, TDF_RAW, TDF_DETAILS,
	TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO, TDF_UID)
	TDF_STMTADDR, TDF_GRAPH, TDF_MEMSYMS, TDF_RHS_ONLY, TDF_ASMNAME,
	TDF_EH, TDF_NOUID, TDF_ALIAS, TDF_ENUMERATE_LOCALS, TDF_CSELIB,
	TDF_SCEV, TDF_GIMPLE, TDF_FOLDING, MSG_OPTIMIZED_LOCATIONS,
	MSG_MISSED_OPTIMIZATION, MSG_NOTE, MSG_ALL, TDF_COMPARE_DEBUG,
	TDF_NONE): Convert from macros to...
	(enum dump_flag): ...this new enum.
	(dump_flags_t): Update to use enum.
	(operator|, operator&, operator~, operator|=, operator&=):
	Implement for dump_flags_t.
	(OPTGROUP_NONE, OPTGROUP_IPA, OPTGROUP_LOOP, OPTGROUP_INLINE,
	OPTGROUP_OMP, OPTGROUP_VEC, OPTGROUP_OTHER, OPTGROUP_ALL):
	Convert from macros to...
	(enum optgroup_flag): ...this new enum.
	(optgroup_flags_t): New typedef.
	(operator|, operator|=): Implement for optgroup_flags_t.
	(struct dump_file_info): Convert field "alt_flags" to
	dump_flags_t.  Convert field "optgroup_flags" to
	optgroup_flags_t.
	(dump_basic_block): Use dump_flags_t rather than int for param.
	(dump_generic_expr_loc): Likewise.
	(dump_dec): Likewise.
	(dump_register): Convert param "optgroup_flags" to
	optgroup_flags_t.
	(opt_info_enable_passes): Likewise.
	* early-remat.c (early_remat::dump_edge_list): Use TDF_NONE rather
	than 0.
	* gimple-pretty-print.c (debug): Likewise.
	* gimple-ssa-store-merging.c (bswap_replace): Likewise.
	(merged_store_group::apply_stores): Likewise.
	* gimple-ssa-strength-reduction.c (insert_initializers): Likewise.
	* gimple.c (verify_gimple_pp): Likewise.
	* graphite-poly.c (print_pbb_body): Likewise.
	* passes.c (pass_manager::register_one_dump_file): Convert
	local "optgroup_flags" to optgroup_flags_t.
	* print-tree.c (print_node): Use TDF_NONE rather than 0.
	(debug): Likewise.
	(debug_body): Likewise.
	* tree-pass.h (struct pass_data): Convert field "optgroup_flags"
	to optgroup_flags_t.
	* tree-pretty-print.c (print_struct_decl): Use TDF_NONE rather
	than 0.
	* tree-ssa-math-opts.c (convert_mult_to_fma_1): Likewise.
	(convert_mult_to_fma): Likewise.
	* tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
	* tree-ssa-sccvn.c (vn_eliminate): Likewise.
	* tree-vect-data-refs.c (dump_lower_bound): Convert param
	"dump_kind" to dump_flags_t.

From-SVN: r261325
2018-06-08 12:50:19 +00:00
Segher Boessenkool
a7efc32b58 rs6000: Delete unused min/max macros
The last use was deleted in 2017.  There are the generic MIN/MAX macros
to use already, and in this new world we should use std::min, std::max.


	* config/rs6000/rs6000.c (min, max): Delete.

From-SVN: r261324
2018-06-08 14:46:02 +02:00
Segher Boessenkool
03304f9391 rs6000: Delete mention of -mabi={no-,}spe in the documentation
The option no longer exists.


	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete mention of
	-mabi=spe and -mabi=no-spe.

From-SVN: r261323
2018-06-08 14:44:32 +02:00
Martin Liska
a756f161be Make ipa-pure-const more strict about summary constrains.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* ipa-pure-const.c (propagate_pure_const): Use ::get at places
        where we expect an existing summary.

From-SVN: r261322
2018-06-08 12:37:49 +00:00
Martin Liska
6f86434f0a Replace some ::get_create with ::get in IPA inline.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* ipa-inline-analysis.c (simple_edge_hints): Use ::get method.
	* ipa-inline.h (estimate_edge_growth): Likewise.

From-SVN: r261321
2018-06-08 12:37:03 +00:00
Martin Liska
4325656f9f Come up with cgraph_node::get_uid and make cgraph_node::uid private.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* cgraph.c (function_version_hasher::hash): Use
	cgraph_node::get_uid ().
	(function_version_hasher::equal):
	* cgraph.h (cgraph_node::get_uid): New method.
	* ipa-inline.c (update_caller_keys): Use
	cgraph_node::get_uid ().
	(update_callee_keys): Likewise.
	* ipa-utils.c (searchc): Likewise.
	(ipa_reduced_postorder): Likewise.
	* lto-cgraph.c (input_node): Likewise.
	* passes.c (is_pass_explicitly_enabled_or_disabled): Likewise.
	* symbol-summary.h (symtab_insertion): Likewise.
	(symtab_removal): Likewise.
	(symtab_duplication): Likewise.
	* tree-pretty-print.c (dump_function_header): Likewise.
	* tree-sra.c (convert_callers_for_node): Likewise.

From-SVN: r261320
2018-06-08 12:36:26 +00:00
Martin Liska
8b25212d3e Make cgraph_edge::uid really unique.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* cgraph.c (symbol_table::create_edge): Always assign a new
	unique number.
	(symbol_table::free_edge): Do not recycle numbers.
	* cgraph.h (cgraph_edge::get): New method.
	* symbol-summary.h (symtab_removal): Use it.
	(symtab_duplication): Likewise.
	(call_summary::hashable_uid): Remove.

From-SVN: r261319
2018-06-08 12:33:47 +00:00
Martin Liska
9fb50ad822 Port edge_growth_cache to call_summary.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* ipa-inline-analysis.c (inline_edge_removal_hook): Remove.
	(initialize_growth_caches): Remove.
	(free_growth_caches): Likewise.
	(do_estimate_edge_time): Use edge_growth_cache.
	(do_estimate_edge_size): Likewise.
	(do_estimate_edge_hints): Likewise.
	* ipa-inline.c (reset_edge_caches): Likewise.
	(recursive_inlining): Likewise.
	(inline_small_functions): Likewise.
	* ipa-inline.h (initialize_growth_caches): Remove.
	(estimate_edge_size): Likewise.
	(estimate_edge_time): Likewise.
	(estimate_edge_hints): Likewise.
	(reset_edge_growth_cache): Likewise.
	* symbol-summary.h (call_summary::remove): New method.

From-SVN: r261318
2018-06-08 12:31:09 +00:00
Martin Liska
1ac2bdb45f Port IPA CP to edge_clone_summaries.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* ipa-cp.c (class edge_clone_summary): New summary.
	(grow_edge_clone_vectors): Remove.
	(ipcp_edge_duplication_hook): Remove.
	(class edge_clone_summary_t): New call_summary class.
	(ipcp_edge_removal_hook): Remove.
	(edge_clone_summary_t::duplicate): New function.
	(get_next_cgraph_edge_clone): Use edge_clone_summaries.
	(create_specialized_node): Likewise.
	(ipcp_driver): Initialize edge_clone_summaries and do not
	register hooks.

From-SVN: r261317
2018-06-08 12:29:44 +00:00
Martin Liska
dbea5bf947 Add call_summary::get method and m_initialize_when_cloning.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* symbol-summary.h (get): New function.
	(call_summary::m_initialize_when_cloning): New class member.

From-SVN: r261316
2018-06-08 12:28:20 +00:00
Martin Liska
746447567a Remove cgraph_node::summary_uid and make cgraph_node::uid really unique.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* cgraph.c (cgraph_node::remove): Do not recycle uid.
	* cgraph.h (symbol_table::release_symbol): Do not pass uid.
	(symbol_table::allocate_cgraph_symbol): Do not set uid.
	* passes.c (uid_hash_t): Record removed_nodes by their uids.
	(remove_cgraph_node_from_order): Use the removed_nodes set.
	(do_per_function_toporder): Likwise.
	* symbol-summary.h (symtab_insertion): Use cgraph_node::uid
	instead of summary_uid.
	(symtab_removal): Likewise.
	(symtab_duplication): Likewise.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* lto-partition.c (lto_balanced_map): Use cgraph_node::uid
	instead of summary_uid.

From-SVN: r261315
2018-06-08 12:26:57 +00:00
Martin Liska
9d3e0adc2a Convert IPA CP to symbol_summary.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* ipa-cp.c (ipcp_store_bits_results): Use
	ipcp_transformation_sum.
	(ipcp_store_vr_results): Likewise.
	* ipa-prop.c (ipcp_grow_transformations_if_necessary): Renamed
	to ...
	(ipcp_transformation_initialize): ... this.
	(ipa_set_node_agg_value_chain):
	(ipa_node_params_t::duplicate): Use ipcp_transformation_sum.
	(write_ipcp_transformation_info): Likewise.
	(read_ipcp_transformation_info): Likewise.
	(ipcp_update_bits): Likewise.
	(ipcp_update_vr): Likewise.
	(ipcp_transform_function): Likewise.
	* ipa-prop.h: Rename ipcp_transformation_summary to
	ipcp_transformation.
	(class ipcp_transformation_t): New function summary.
	(ipcp_get_transformation_summary): Use ipcp_transformation_sum.
	(ipa_get_agg_replacements_for_node): Likewise.

From-SVN: r261314
2018-06-08 12:22:58 +00:00
Martin Liska
36330f8203 Covert ipa-pure-const.c to symbol_summary.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* ipa-pure-const.c (struct funct_state_d): Do it class instead
	of struct.
	(class funct_state_summary_t): New function_summary class.
	(has_function_state): Remove.
	(get_function_state): Likewise.
	(set_function_state): Likewise.
	(add_new_function): Likewise.
	(funct_state_summary_t::insert): New function.
	(duplicate_node_data): Remove.
	(remove_node_data): Remove.
	(funct_state_summary_t::duplicate): New function.
	(register_hooks): Create new funct_state_summaries.
	(pure_const_generate_summary): Use it.
	(pure_const_write_summary): Likewise.
	(pure_const_read_summary): Likewise.
	(propagate_pure_const): Likewise.
	(propagate_nothrow): Likewise.
	(dump_malloc_lattice): Likewise.
	(propagate_malloc): Likewise.
	(execute): Do not register hooks, just remove summary
	instead.
	(pass_ipa_pure_const::pass_ipa_pure_const): Simplify
	constructor.

From-SVN: r261313
2018-06-08 12:16:18 +00:00
Martin Liska
6adcb79361 Use symtab_summary in ipa-reference.c.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* ipa-reference.c (remove_node_data): Remove.
	(duplicate_node_data): Likewise.
	(class ipa_ref_var_info_summary_t): New class.
	(class ipa_ref_opt_summary_t): Likewise.
	(get_reference_vars_info): Use ipa_ref_var_info_summaries.
	(get_reference_optimization_summary): Use
	ipa_ref_opt_sum_summaries.
	(set_reference_vars_info): Remove.
	(set_reference_optimization_summary): Likewise.
	(ipa_init): Create summaries.
	(init_function_info): Use function summary.
	(ipa_ref_opt_summary_t::duplicate): New function.
	(ipa_ref_opt_summary_t::remove): New function.
	(get_read_write_all_from_node): Fix GNU coding style.
	(propagate): Use function summary.
	(write_node_summary_p): Fix GNU coding style.
	(stream_out_bitmap): Likewise.
	(ipa_reference_read_optimization_summary): Use function summary.
	(ipa_reference_c_finalize): Do not release hooks.

From-SVN: r261312
2018-06-08 12:14:57 +00:00
Martin Liska
cf9b0b5fce Use summaries->get where possible. Small refactoring of multiple calls.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* ipa-fnsummary.c (dump_ipa_call_summary): Use ::get method.
	(analyze_function_body): Extract multiple calls of get_create.
	* ipa-inline-analysis.c (simple_edge_hints): Likewise.
	* ipa-inline.c (recursive_inlining): Use ::get method.
	* ipa-inline.h (estimate_edge_growth): Likewise.

From-SVN: r261311
2018-06-08 12:14:02 +00:00
Martin Liska
0148358a02 Add {symbol,call}_summary::get method and use it in HSA.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* hsa-common.h (enum hsa_function_kind): Rename HSA_NONE to
	HSA_INVALID.
	(hsa_function_summary::hsa_function_summary): Use the new enum
	value.
	(hsa_gpu_implementation_p): Use hsa_summaries::get.
	* hsa-gen.c (hsa_get_host_function): Likewise.
	(get_brig_function_name): Likewise.
	* ipa-hsa.c (process_hsa_functions): Likewise.
	(ipa_hsa_write_summary): Likewise.
	* symbol-summary.h (symtab_duplication): Use ::get function/
	(get): New function.

From-SVN: r261310
2018-06-08 12:13:20 +00:00
Martin Liska
99353fcfe4 Rename get methods in symbol-summary.h to get_create.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* config/i386/i386.c (ix86_can_inline_p): Use get_create instead
	of get.
	* hsa-common.c (hsa_summary_t::link_functions): Likewise.
	(hsa_register_kernel): Likewise.
	* hsa-common.h (hsa_gpu_implementation_p): Likewise.
	* hsa-gen.c (hsa_get_host_function): Likewise.
	(get_brig_function_name): Likewise.
	(generate_hsa): Likewise.
	(pass_gen_hsail::execute): Likewise.
	* ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
	(devirtualization_time_bonus): Likewise.
	(ipcp_propagate_stage): Likewise.
	* ipa-fnsummary.c (redirect_to_unreachable): Likewise.
	(edge_set_predicate): Likewise.
	(evaluate_conditions_for_known_args): Likewise.
	(evaluate_properties_for_edge): Likewise.
	(ipa_fn_summary::reset): Likewise.
	(ipa_fn_summary_t::duplicate): Likewise.
	(dump_ipa_call_summary): Likewise.
	(ipa_dump_fn_summary): Likewise.
	(analyze_function_body): Likewise.
	(compute_fn_summary): Likewise.
	(estimate_edge_devirt_benefit): Likewise.
	(estimate_edge_size_and_time): Likewise.
	(estimate_calls_size_and_time): Likewise.
	(estimate_node_size_and_time): Likewise.
	(inline_update_callee_summaries): Likewise.
	(remap_edge_change_prob): Likewise.
	(remap_edge_summaries): Likewise.
	(ipa_merge_fn_summary_after_inlining): Likewise.
	(ipa_update_overall_fn_summary): Likewise.
	(read_ipa_call_summary): Likewise.
	(inline_read_section): Likewise.
	(write_ipa_call_summary): Likewise.
	(ipa_fn_summary_write): Likewise.
	(ipa_free_fn_summary): Likewise.
	* ipa-hsa.c (process_hsa_functions): Likewise.
	(ipa_hsa_write_summary): Likewise.
	(ipa_hsa_read_section): Likewise.
	* ipa-icf.c (sem_function::merge): Likewise.
	* ipa-inline-analysis.c (simple_edge_hints): Likewise.
	(do_estimate_edge_time): Likewise.
	(estimate_size_after_inlining): Likewise.
	(estimate_growth): Likewise.
	(growth_likely_positive): Likewise.
	* ipa-inline-transform.c (clone_inlined_nodes): Likewise.
	(inline_call): Likewise.
	* ipa-inline.c (caller_growth_limits): Likewise.
	(can_inline_edge_p): Likewise.
	(can_inline_edge_by_limits_p): Likewise.
	(compute_uninlined_call_time): Likewise.
	(compute_inlined_call_time): Likewise.
	(want_inline_small_function_p): Likewise.
	(edge_badness): Likewise.
	(update_caller_keys): Likewise.
	(update_callee_keys): Likewise.
	(recursive_inlining): Likewise.
	(inline_small_functions): Likewise.
	(inline_to_all_callers_1): Likewise.
	(dump_overall_stats): Likewise.
	(early_inline_small_functions): Likewise.
	(early_inliner): Likewise.
	* ipa-inline.h (estimate_edge_growth): Likewise.
	* ipa-profile.c (ipa_propagate_frequency_1): Likewise.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
	* ipa-prop.h (IPA_NODE_REF): Likewise.
	(IPA_EDGE_REF): Likewise.
	* ipa-pure-const.c (malloc_candidate_p): Likewise.
	(propagate_malloc): Likewise.
	* ipa-split.c (execute_split_functions): Likewise.
	* symbol-summary.h: Rename get to get_create.
	(get): Likewise.
	(get_create): Likewise.
	* tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* lto-partition.c (add_symbol_to_partition_1): Use get_create instead
	of get.
	(undo_partition): Likewise.
	(lto_balanced_map): Likewise.

From-SVN: r261309
2018-06-08 12:11:48 +00:00
Martin Liska
2a281178f7 Code refactoring for call_summary.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* symbol-summary.h (release): Move definition out of class
	declaration.
	(symtab_removal): Likewise.
	(symtab_duplication): Likewise.

From-SVN: r261308
2018-06-08 12:10:02 +00:00
Martin Liska
ef2ceb103d Code refactoring of symtab_summary.
2018-06-08  Martin Liska  <mliska@suse.cz>

	* symbol-summary.h (function_summary): Move constructor
	implementation out of class declaration.
	(release): Likewise.
	(symtab_insertion): Likewise.
	(symtab_removal): Likewise.
	(symtab_duplication): Likewise.
	(get): Likewise.

From-SVN: r261307
2018-06-08 12:08:36 +00:00