1. 18 Feb, 2019 1 commit
    • Come up with fast {function,call}_summary classes (PR ipa/89306). · db30281f
      2019-02-18  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/89306
      	* cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
      	by default.
      	(symbol_table::free_edge): Recycle m_summary_id.
      	* cgraph.h (get_summary_id): New.
      	(symbol_table::release_symbol): Set m_summary_id to -1
      	by default.
      	(symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
      	* ipa-fnsummary.c (ipa_fn_summary_t): Switch from
      	function_summary to fast_function_summary.
      	* ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
      	* ipa-pure-const.c (class funct_state_summary_t):
      	Switch from function_summary to fast_function_summary.
      	* ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
      	(class ipa_ref_opt_summary_t): Switch from function_summary
      	to fast_function_summary.
      	* symbol-summary.h (class function_summary_base): New class
      	that is created from base of former function_summary.
      	(function_summary_base::unregister_hooks): New.
      	(class function_summary): Inherit from function_summary_base.
      	(class call_summary_base): New class
      	that is created from base of former call_summary.
      	(class call_summary): Inherit from call_summary_base.
      	(struct is_same): New.
      	(class fast_function_summary): New summary class.
      	(class fast_call_summary): New summary class.
      	* vec.h (vec_safe_grow_cleared): New function.
      
      From-SVN: r268979
      Martin Liska committed
  2. 13 Feb, 2019 1 commit
    • Clean up MPX-related stuff. · dbcdd561
      2019-02-13  Martin Liska  <mliska@suse.cz>
      
      	* builtins.h (expand_builtin_with_bounds): Remove declaration.
      	* calls.c (struct arg_data): Remove special_slot, pointer_arg
      	and pointer_offset fields.
      	(initialize_argument_information): Remove usage of dead
      	fields.
      	* cgraph.h (struct cgraph_thunk_info): Remove
      	add_pointer_bounds_args.
      	* cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
      	fields.
      	(cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
      	fields.
      	* config/i386/i386.c (ix86_function_arg_advance): Remove
      	unrelated comment.
      	(struct builtin_isa): Remove leaf_p and nothrow_p fields.
      	(def_builtin):  Remove usage of dead
      	fields.
      	(ix86_add_new_builtins): Likewise.
      	* ipa-fnsummary.c (compute_fn_summary): Likewise.
      	* ipa-icf.c (sem_function::equals_wpa): Likewise.
      	(sem_function::init): Likewise.
      	(sem_variable::merge): Likewise.
      	* ipa-visibility.c (function_and_variable_visibility): Likewise.
      	* ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
      	* lto-cgraph.c (lto_output_node): Likewise.
      	(lto_output_varpool_node): Likewise.
      	(input_node): Likewise.
      	(input_varpool_node): Likewise.
      	* lto-streamer-out.c (lto_output): Likewise.
      	* tree-inline.c (expand_call_inline): Remove usage of
      	assign_stmts.
      	* tree-inline.h (struct copy_body_data): Likewise.
      	* varpool.c (varpool_node::dump): Likewise.
      
      From-SVN: r268844
      Martin Liska committed
  3. 04 Feb, 2019 1 commit
  4. 20 Jan, 2019 1 commit
    • Limit AA walking in IPA summary generation · c628d1c3
      2019-01-20  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/87615
      	* ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
      	with aa_walk_budget.
      	* cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
      	aa_walk_budget_p parameter.
      	* ipa-fnsummary.c (unmodified_parm_1): New parameter fbi.  Limit AA
      	walk.  Updated all callers.
      	(unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
      	(eliminated_by_inlining_prob): New parameter fbi, pass it on to
      	unmodified_parm.
      	(will_be_nonconstant_expr_predicate): New parameter fbi, removed
      	parameter info.  Extract info from fbi.  Pass fbi to recursive calls
      	and to unmodified_parm.
      	(phi_result_unknown_predicate): New parameter fbi, removed parameter
      	info, updated call to will_be_nonconstant_expr_predicate.
      	(param_change_prob): New parameter fbi, limit AA walking.
      	(analyze_function_body): Initialize aa_walk_budget in fbi.  Update
      	calls to various above functions.
      	* ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
      	parameter.  Use it to limit AA walking.
      	* ipa-prop.c (detect_type_change_from_memory_writes): New parameter
      	fbi, limit AA walk.
      	(detect_type_change): New parameter fbi, pass it on to
      	detect_type_change_from_memory_writes.
      	(detect_type_change_ssa): Likewise.
      	(aa_overwalked): Removed.
      	(parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
      	accordingly, adjust to the neew AA limiting scheme.
      	(parm_ref_data_preserved_p): Likewise.
      	(ipa_compute_jump_functions_for_edge): Adjust call to
      	get_dynamic_type.
      	(ipa_analyze_call_uses): Likewise.
      	(ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
      	(ipa_analyze_node): Initialize aa_walk_budget.
      	(ipcp_transform_function): Likewise.
      	* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
      	to get_dynamic_type.
      
      From-SVN: r268107
      Martin Jambor committed
  5. 09 Jan, 2019 1 commit
    • PR other/16615 [1/5] · 67914693
      2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR other/16615 [1/5]
      
      	contrib/
      	* mklog: Mechanically replace "can not" with "cannot".
      
      	gcc/
      	* Makefile.in: Mechanically replace "can not" with "cannot".
      	* alias.c: Likewise.
      	* builtins.c: Likewise.
      	* calls.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* combine-stack-adj.c: Likewise.
      	* combine.c: Likewise.
      	* common/config/i386/i386-common.c: Likewise.
      	* config/aarch64/aarch64.c: Likewise.
      	* config/alpha/sync.md: Likewise.
      	* config/arc/arc.c: Likewise.
      	* config/arc/predicates.md: Likewise.
      	* config/arm/arm-c.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/arm/arm.h: Likewise.
      	* config/arm/arm.md: Likewise.
      	* config/arm/cortex-r4f.md: Likewise.
      	* config/csky/csky.c: Likewise.
      	* config/csky/csky.h: Likewise.
      	* config/darwin-f.c: Likewise.
      	* config/epiphany/epiphany.md: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/i386/sol2.h: Likewise.
      	* config/m68k/m68k.c: Likewise.
      	* config/mcore/mcore.h: Likewise.
      	* config/microblaze/microblaze.md: Likewise.
      	* config/mips/20kc.md: Likewise.
      	* config/mips/sb1.md: Likewise.
      	* config/nds32/nds32.c: Likewise.
      	* config/nds32/predicates.md: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/rs6000/e300c2c3.md: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/s390/s390.h: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sh/sh.md: Likewise.
      	* config/spu/vmx2spu.h: Likewise.
      	* cprop.c: Likewise.
      	* dbxout.c: Likewise.
      	* df-scan.c: Likewise.
      	* doc/cfg.texi: Likewise.
      	* doc/extend.texi: Likewise.
      	* doc/fragments.texi: Likewise.
      	* doc/gty.texi: Likewise.
      	* doc/invoke.texi: Likewise.
      	* doc/lto.texi: Likewise.
      	* doc/md.texi: Likewise.
      	* doc/objc.texi: Likewise.
      	* doc/rtl.texi: Likewise.
      	* doc/tm.texi: Likewise.
      	* dse.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* emit-rtl.h: Likewise.
      	* except.c: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* fold-const.c: Likewise.
      	* genautomata.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* hard-reg-set.h: Likewise.
      	* ifcvt.c: Likewise.
      	* ipa-comdats.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-fnsummary.c: Likewise.
      	* ipa-icf.c: Likewise.
      	* ipa-inline-transform.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-polymorphic-call.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-visibility.c: Likewise.
      	* ipa.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-color.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* ira-costs.c: Likewise.
      	* ira-int.h: Likewise.
      	* ira-lives.c: Likewise.
      	* ira.c: Likewise.
      	* ira.h: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lra-assigns.c: Likewise.
      	* lra-constraints.c: Likewise.
      	* lra-eliminations.c: Likewise.
      	* lra-lives.c: Likewise.
      	* lra-remat.c: Likewise.
      	* lra-spills.c: Likewise.
      	* lra.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* predict.c: Likewise.
      	* profile-count.h: Likewise.
      	* profile.c: Likewise.
      	* recog.c: Likewise.
      	* ree.c: Likewise.
      	* reload.c: Likewise.
      	* reload1.c: Likewise.
      	* reorg.c: Likewise.
      	* resource.c: Likewise.
      	* rtl.def: Likewise.
      	* rtl.h: Likewise.
      	* rtlanal.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-rgn.c: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched.c: Likewise.
      	* shrink-wrap.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* symtab.c: Likewise.
      	* target.def: Likewise.
      	* toplev.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-core.h: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-phionlycprop.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-streamer-out.c: Likewise.
      	* tree.c: Likewise.
      	* tree.h: Likewise.
      	* vr-values.c: Likewise.
      
      	gcc/ada/
      	* exp_ch9.adb: Mechanically replace "can not" with "cannot".
      	* libgnat/s-regpat.ads: Likewise.
      	* par-ch4.adb: Likewise.
      	* set_targ.adb: Likewise.
      	* types.ads: Likewise.
      
      	gcc/cp/
      	* cp-tree.h: Mechanically replace "can not" with "cannot".
      	* parser.c: Likewise.
      	* pt.c: Likewise.
      
      	gcc/fortran/
      	* class.c: Mechanically replace "can not" with "cannot".
      	* decl.c: Likewise.
      	* expr.c: Likewise.
      	* gfc-internals.texi: Likewise.
      	* intrinsic.texi: Likewise.
      	* invoke.texi: Likewise.
      	* io.c: Likewise.
      	* match.c: Likewise.
      	* parse.c: Likewise.
      	* primary.c: Likewise.
      	* resolve.c: Likewise.
      	* symbol.c: Likewise.
      	* trans-array.c: Likewise.
      	* trans-decl.c: Likewise.
      	* trans-intrinsic.c: Likewise.
      	* trans-stmt.c: Likewise.
      
      	gcc/go/
      	* go-backend.c: Mechanically replace "can not" with "cannot".
      	* go-gcc.cc: Likewise.
      
      	gcc/lto/
      	* lto-partition.c: Mechanically replace "can not" with "cannot".
      	* lto-symtab.c: Likewise.
      	* lto.c: Likewise.
      
      	gcc/objc/
      	* objc-act.c: Mechanically replace "can not" with "cannot".
      
      	libbacktrace/
      	* backtrace.h: Mechanically replace "can not" with "cannot".
      
      	libgcc/
      	* config/c6x/libunwind.S: Mechanically replace "can not" with
      	"cannot".
      	* config/tilepro/atomic.h: Likewise.
      	* config/vxlib-tls.c: Likewise.
      	* generic-morestack-thread.c: Likewise.
      	* generic-morestack.c: Likewise.
      	* mkmap-symver.awk: Likewise.
      
      	libgfortran/
      	* caf/single.c: Mechanically replace "can not" with "cannot".
      	* io/unit.c: Likewise.
      
      	libobjc/
      	* class.c: Mechanically replace "can not" with "cannot".
      	* objc/runtime.h: Likewise.
      	* sendmsg.c: Likewise.
      
      	liboffloadmic/
      	* include/coi/common/COIResult_common.h: Mechanically replace
      	"can not" with "cannot".
      	* include/coi/source/COIBuffer_source.h: Likewise.
      
      	libstdc++-v3/
      	* include/ext/bitmap_allocator.h: Mechanically replace "can not"
      	with "cannot".
      
      From-SVN: r267783
      Sandra Loosemore committed
  6. 05 Jan, 2019 3 commits
  7. 01 Jan, 2019 1 commit
  8. 24 Dec, 2018 1 commit
  9. 16 Dec, 2018 2 commits
  10. 20 Nov, 2018 1 commit
    • re PR ipa/87706 (Inlined functions trigger invalid -Wmissing-profile warning) · 12485662
      	PR ipa/87706
      	* ipa-fnsummary.c (pass_ipa_fnsummary): Do not remove functions
      	* ipa.c (possible_inline_candidate_p): Break out from ..
      	(process_references): ... here ; drop before_inlining_p;
      	cleanup handling of alises.
      	(walk_polymorphic_call_targets): Likewise.
      	(symbol_table::remove_unreachable_nodes): Likewise.
      	* passes.c (pass_data_ipa_remove_symbols): New structure.
      	(pass_ipa_remove_symbols): New pass.
      	(make_pass_ipa_remove_symbols): New functoin.
      	* passes.def (pass_ipa_remove_symbols): Schedule after early passes.
      
      From-SVN: r266315
      Jan Hubicka committed
  11. 25 Sep, 2018 1 commit
  12. 27 Aug, 2018 2 commits
    • Come up with fndecl_built_in_p. · 3d78e008
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* builtins.h (is_builtin_fn): Remove and fndecl_built_in_p.
      	* builtins.c (is_builtin_fn): Likewise.
      	* attribs.c (diag_attr_exclusions): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      	(builtin_mathfn_code): Likewise.
      	(fold_builtin_expect): Likewise.
      	(fold_call_expr): Likewise.
      	(fold_builtin_call_array): Likewise.
      	(fold_call_stmt): Likewise.
      	(set_builtin_user_assembler_name): Likewise.
      	(is_simple_builtin): Likewise.
      	* calls.c (gimple_alloca_call_p): Likewise.
      	(maybe_warn_nonstring_arg): Likewise.
      	* cfgexpand.c (expand_call_stmt): Likewise.
      	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Likewise.
      	(cgraph_edge::verify_corresponds_to_fndecl): Likewise.
      	(cgraph_node::verify_node): Likewise.
      	* cgraphclones.c (build_function_decl_skip_args): Likewise.
      	(cgraph_node::create_clone): Likewise.
      	* config/arm/arm.c (arm_insert_attributes): Likewise.
      	* config/i386/i386.c (ix86_gimple_fold_builtin): Likewise.
      	* dse.c (scan_insn): Likewise.
      	* expr.c (expand_expr_real_1): Likewise.
      	* fold-const.c (operand_equal_p): Likewise.
      	(fold_binary_loc): Likewise.
      	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
      	* gimple-low.c (lower_stmt): Likewise.
      	* gimple-pretty-print.c (dump_gimple_call): Likewise.
      	* gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Likewise.
      	* gimple.c (gimple_build_call_from_tree): Likewise.
      	(gimple_call_builtin_p): Likewise.
      	(gimple_call_combined_fn): Likewise.
      	* gimplify.c (gimplify_call_expr): Likewise.
      	(gimple_boolify): Likewise.
      	(gimplify_modify_expr): Likewise.
      	(gimplify_addr_expr): Likewise.
      	* hsa-gen.c (gen_hsa_insns_for_call): Likewise.
      	* ipa-cp.c (determine_versionability): Likewise.
      	* ipa-fnsummary.c (compute_fn_summary): Likewise.
      	* ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise.
      	* ipa-split.c (visit_bb): Likewise.
      	(split_function): Likewise.
      	* ipa-visibility.c (cgraph_externally_visible_p): Likewise.
      	* lto-cgraph.c (input_node): Likewise.
      	* lto-streamer-out.c (write_symbol): Likewise.
      	* omp-low.c (setjmp_or_longjmp_p): Likewise.
      	(lower_omp_1): Likewise.
      	* predict.c (strip_predict_hints): Likewise.
      	* print-tree.c (print_node): Likewise.
      	* symtab.c (symtab_node::output_to_lto_symbol_table_p): Likewise.
      	* trans-mem.c (is_tm_irrevocable): Likewise.
      	(is_tm_load): Likewise.
      	(is_tm_simple_load): Likewise.
      	(is_tm_store): Likewise.
      	(is_tm_simple_store): Likewise.
      	(is_tm_abort): Likewise.
      	(tm_region_init_1): Likewise.
      	* tree-call-cdce.c (gen_shrink_wrap_conditions): Likewise.
      	* tree-cfg.c (verify_gimple_call): Likewise.
      	(move_stmt_r): Likewise.
      	(stmt_can_terminate_bb_p): Likewise.
      	* tree-eh.c (lower_eh_constructs_2): Likewise.
      	* tree-if-conv.c (if_convertible_stmt_p): Likewise.
      	* tree-inline.c (remap_gimple_stmt): Likewise.
      	(copy_bb): Likewise.
      	(estimate_num_insns): Likewise.
      	(fold_marked_statements): Likewise.
      	* tree-sra.c (scan_function): Likewise.
      	* tree-ssa-ccp.c (surely_varying_stmt_p): Likewise.
      	(optimize_stack_restore): Likewise.
      	(pass_fold_builtins::execute): Likewise.
      	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
      	(mark_all_reaching_defs_necessary_1): Likewise.
      	* tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Likewise.
      	* tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
      	(pass_forwprop::execute): Likewise.
      	* tree-ssa-loop-im.c (stmt_cost): Likewise.
      	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
      	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Likewise.
      	* tree-ssa-strlen.c (get_string_length): Likewise.
      	* tree-ssa-structalias.c (handle_lhs_call): Likewise.
      	(find_func_aliases_for_call): Likewise.
      	* tree-ssa-ter.c (find_replaceable_in_bb): Likewise.
      	* tree-stdarg.c (optimize_va_list_gpr_fpr_size): Likewise.
      	* tree-tailcall.c (find_tail_calls): Likewise.
      	* tree.c (need_assembler_name_p): Likewise.
      	(free_lang_data_in_decl): Likewise.
      	(get_call_combined_fn): Likewise.
      	* ubsan.c (is_ubsan_builtin_p): Likewise.
      	* varasm.c (incorporeal_function_p): Likewise.
      	* tree.h (DECL_BUILT_IN): Remove and replace with
              fndecl_built_in_p.
      	(DECL_BUILT_IN_P): Transfort to fndecl_built_in_p.
      	(fndecl_built_in_p): New.
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* gcc-interface/decl.c (update_profile): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      	* gcc-interface/gigi.h (call_is_atomic_load): Likewise.
      	* gcc-interface/utils.c (gnat_pushdecl): Likewise.
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* c-common.c (check_function_restrict): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      	(check_builtin_function_arguments): Likewise.
      	(reject_gcc_builtin): Likewise.
      	* c-warn.c (sizeof_pointer_memaccess_warning): Likewise.
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* c-decl.c (locate_old_decl): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      	(diagnose_mismatched_decls): Likewise.
      	(merge_decls): Likewise.
      	(warn_if_shadowing): Likewise.
      	(pushdecl): Likewise.
      	(implicitly_declare): Likewise.
      	* c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
      	* c-tree.h (C_DECL_ISNT_PROTOTYPE): Likewise.
      	* c-typeck.c (build_function_call_vec): Likewise.
      	(convert_arguments): Likewise.
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* call.c (build_call_a): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      	(build_cxx_call): Likewise.
      	* constexpr.c (constexpr_fn_retval): Likewise.
      	(cxx_eval_builtin_function_call): Likewise.
      	(cxx_eval_call_expression): Likewise.
      	(potential_constant_expression_1): Likewise.
      	* cp-gimplify.c (cp_gimplify_expr): Likewise.
      	(cp_fold): Likewise.
      	* decl.c (decls_match): Likewise.
      	(validate_constexpr_redeclaration): Likewise.
      	(duplicate_decls): Likewise.
      	(make_rtl_for_nonlocal_decl): Likewise.
      	* name-lookup.c (consider_binding_level): Likewise.
      	(cp_emit_debug_info_for_using): Likewise.
      	* semantics.c (finish_call_expr): Likewise.
      	* tree.c (builtin_valid_in_constant_expr_p): Likewise.
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* go-gcc.cc (Gcc_backend::call_expression): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* lto-lang.c (handle_const_attribute): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      	* lto-symtab.c (lto_symtab_merge_p): Likewise.
      	(lto_symtab_merge_decls_1): Likewise.
      	(lto_symtab_merge_symbols): Likewise.
      	* lto.c (lto_maybe_register_decl): Likewise.
      	(read_cgraph_and_symbols): Likewise.
      
      From-SVN: r263880
      Martin Liska committed
    • Add new gswitch related functions into tree-cfg.c. · 61ff5d6f
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* cfgexpand.c (expand_asm_stmt): Use label_to_block and pass
              cfun argument explicitly.
      	* gimple-pretty-print.c (dump_gimple_switch): Likewise.
      	* hsa-gen.c (gen_hsa_insns_for_switch_stmt): Use new
              function gimple_switch_default_bb.
      	(convert_switch_statements):
      	(expand_builtins):
      	* ipa-fnsummary.c (set_switch_stmt_execution_predicate):
      	* stmt.c (label_to_block_fn): Use label_to_block and pass
              cfun argument explicitly and use gimple_switch_label_bb.
      	(expand_case): Likewise.
      	* tree-cfg.c (lower_phi_internal_fn): Use label_to_block and pass
              cfun argument explicitly. Likewise.
      	(make_edges_bb): Likewise.
      	(make_cond_expr_edges): Likewise.
      	(get_cases_for_edge): Likewise.
      	(make_gimple_switch_edges): Likewise.
      	(label_to_block_fn): Likewise.
      	(label_to_block): Likewise.
      	(make_goto_expr_edges): Likewise.
      	(make_gimple_asm_edges): Likewise.
      	(main_block_label): Likewise.
      	(group_case_labels_stmt): Likewise.
      	(find_taken_edge_computed_goto): Likewise.
      	(find_taken_edge_switch_expr): Likewise.
      	(gimple_verify_flow_info): Likewise.
      	(gimple_redirect_edge_and_branch): Likewise.
      	(gimple_switch_label_bb): New function.
      	(gimple_switch_default_bb): Likewise.
      	(gimple_switch_edge): Likewise.
      	(gimple_switch_default_edge): Likewise.
      	* tree-cfg.h (label_to_block_fn): Remove and replace ...
      	(label_to_block): ... with this.
      	(gimple_switch_label_bb): New.
      	(gimple_switch_default_bb): Likewise.
      	(gimple_switch_edge): Likewise.
      	(gimple_switch_default_edge): Likewise.
      	* tree-cfgcleanup.c (convert_single_case_switch): Use
              new gimple functions and pass new argument to label_to_block.
      	(cleanup_control_flow_bb):
      	* tree-eh.c (make_eh_dispatch_edges): Use label_to_block and pass
              cfun argument explicitly.
      	(make_eh_edges): Likewise.
      	(redirect_eh_dispatch_edge): Likewise.
      	(lower_resx): Likewise.
      	(lower_eh_dispatch): Likewise.
      	(maybe_remove_unreachable_handlers): Likewise.
      	(unsplit_eh): Likewise.
      	(cleanup_empty_eh): Likewise.
      	(verify_eh_edges): Likewise.
      	(verify_eh_dispatch_edge): Likewise.
      	* tree-ssa-dom.c (record_edge_info): Likewise.
      	* tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): Likewise.
      	* tree-ssa-threadedge.c (thread_around_empty_blocks): Likewise.
      	(thread_through_normal_block): Likewise.
      	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
      	* tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
      	* tree-switch-conversion.c (switch_conversion::collect): Use new
              gimple functions.
      	(switch_conversion::check_final_bb): Likewise.
      	(switch_conversion::gather_default_values): Pass new argument
              to label_to_block.
      	(switch_conversion::build_constructors): Likewise.
      	(switch_decision_tree::compute_cases_per_edge): Use new
              gimple_switch_edge function.
      	(switch_decision_tree::analyze_switch_statement): Pass new argument
              to label_to_block.
      	(switch_decision_tree::try_switch_expansion): Use
              gimple_switch_default_edge.
      	* tree-vrp.c (find_switch_asserts): Pass new argument
              to label_to_block.
      	* vr-values.c (vr_values::vrp_visit_switch_stmt): Likewise.
      	(vr_values::simplify_switch_using_ranges): Likewise.
      
      From-SVN: r263876
      Martin Liska committed
  13. 10 Aug, 2018 1 commit
    • Introduce __builtin_expect_with_probability (PR target/83610). · 1e9168b2
      2018-08-10  Martin Liska  <mliska@suse.cz>
      
              PR target/83610
      	* builtin-types.def (BT_FN_LONG_LONG_LONG_DOUBLE): Add new
              function type.
      	* builtins.c (expand_builtin_expect_with_probability):
              New function.
      	(expand_builtin_expect_with_probability): New function.
      	(build_builtin_expect_predicate): Add new argumnet probability
              for BUILT_IN_EXPECT_WITH_PROBABILITY.
      	(fold_builtin_expect):
      	(fold_builtin_2):
      	(fold_builtin_3):
      	* builtins.def (BUILT_IN_EXPECT_WITH_PROBABILITY):
      	* builtins.h (fold_builtin_expect): Set new argument.
      	* doc/extend.texi: Document __builtin_expect_with_probability.
      	* doc/invoke.texi: Likewise.
      	* gimple-fold.c (gimple_fold_call): Pass new argument.
      	* ipa-fnsummary.c (find_foldable_builtin_expect): Handle
              also BUILT_IN_EXPECT_WITH_PROBABILITY.
      	* predict.c (get_predictor_value): New function.
      	(expr_expected_value): Add new argument probability. Assume
              that predictor and probability are always non-null.
      	(expr_expected_value_1): Likewise.  For __builtin_expect and
              __builtin_expect_with_probability set probability.  Handle
              combination in binary expressions.
      	(tree_predict_by_opcode): Simplify code by simply calling
              get_predictor_value.
      	(pass_strip_predict_hints::execute): Add handling of
              BUILT_IN_EXPECT_WITH_PROBABILITY.
      	* predict.def (PRED_BUILTIN_EXPECT_WITH_PROBABILITY): Add
              new predictor.
      	* tree.h (DECL_BUILT_IN_P): New function.
      2018-08-10  Martin Liska  <mliska@suse.cz>
      
              PR target/83610
      	* gcc.dg/predict-17.c: New test.
      	* gcc.dg/predict-18.c: New test.
      	* gcc.dg/predict-19.c: New test.
      
      From-SVN: r263466
      Martin Liska committed
  14. 19 Jun, 2018 1 commit
    • Clean-up usage of ipa_fn_summary and ipa_call_summary summaries. · 56f62793
      2018-06-19  Martin Liska  <mliska@suse.cz>
      
      	* config/i386/i386.c (ix86_can_inline_p): Do not use
              ipa_fn_summaries::get_create.
      	* ipa-cp.c (ipcp_cloning_candidate_p): Replace get_create with
              get.
      	(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_call_summary::reset): Tranform to ...
      	(ipa_call_summary::~ipa_call_summary): ... this.
      	(ipa_fn_summary::reset): Transform to ...
      	(ipa_fn_summary::~ipa_fn_summary): ... this.
      	(ipa_fn_summary_t::remove): Rename to ...
      	(ipa_fn_summary_t::remove_callees): ... this.
      	(ipa_fn_summary_t::duplicate): Use placement new
              instead of memory copy.
      	(ipa_call_summary_t::duplicate): Likewise.
      	(ipa_call_summary_t::remove): Remove.
      	(dump_ipa_call_summary): Change get_create to get.
      	(ipa_dump_fn_summary): Dump only when summary exists.
      	(analyze_function_body): Use symbol_summary::get instead
              of get_create.
      	(compute_fn_summary): Likewise.
      	(estimate_edge_devirt_benefit): Likewise.
      	(estimate_edge_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.
      	(write_ipa_call_summary): Likewise.
      	(ipa_fn_summary_write): Likewise.
      	(ipa_free_fn_summary): Likewise.
      	* ipa-fnsummary.h (struct GTY): Add new ctor and copy ctor.
      	(struct ipa_call_summary): Likewise.
      	* ipa-icf.c (sem_function::merge): Use symbol_summary::get instead
              of get_create.
      	* ipa-inline-analysis.c (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.
      	(inline_small_functions): Likewise.
      	(inline_to_all_callers_1): Likewise.
      	(dump_overall_stats): Likewise.
      	(early_inline_small_functions): Likewise.
      	(early_inliner): Likewise.
      	* ipa-profile.c (ipa_propagate_frequency_1): Likewise.
      	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
      	* ipa-pure-const.c (malloc_candidate_p): Likewise.
      	* ipa-split.c (execute_split_functions): Likewise.
      	* symbol-summary.h: Likewise.
      	* tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
      2018-06-19  Martin Liska  <mliska@suse.cz>
      
      	* lto-partition.c (add_symbol_to_partition_1): Use symbol_summary::get instead
              of get_create.
      	(undo_partition): Likewise.
      	(lto_balanced_map): Likewise.
      
      From-SVN: r261744
      Martin Liska committed
  15. 16 Jun, 2018 1 commit
    • re PR middle-end/82479 (missing popcount builtin detection) · 5126ae0c
      gcc/ChangeLog:
      
      2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	PR middle-end/82479
      	* ipa-fnsummary.c (will_be_nonconstant_expr_predicate): Handle CALL_EXPR.
      	* tree-scalar-evolution.c (interpret_expr): Likewise.
      	(expression_expensive_p): Likewise.
      	* tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Likewise.
      	* tree-ssa-loop-niter.c (number_of_iterations_popcount): New.
      	(number_of_iterations_exit_assumptions): Use number_of_iterations_popcount.
      	(ssa_defined_by_minus_one_stmt_p): New.
      
      gcc/testsuite/ChangeLog:
      
      2018-06-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	PR middle-end/82479
      	* gcc.dg/tree-ssa/popcount.c: New test.
      	* gcc.dg/tree-ssa/popcount2.c: New test.
      
      From-SVN: r261682
      Kugan Vivekanandarajah committed
  16. 08 Jun, 2018 2 commits
    • Use summaries->get where possible. Small refactoring of multiple calls. · cf9b0b5f
      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
      Martin Liska committed
    • Rename get methods in symbol-summary.h to get_create. · 99353fcf
      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
      Martin Liska committed
  17. 25 Jan, 2018 1 commit
  18. 05 Jan, 2018 1 commit
  19. 03 Jan, 2018 2 commits
  20. 20 Dec, 2017 1 commit
    • re PR ipa/83506 (ICE: Segmentation fault in force_nonfallthru_and_redirect) · 442db276
      	PR ipa/83506
      	* ipa-fnsummary.c (pass_data_ipa_free_fn_summary): Use 0 for
      	todo_flags_finish.
      	(pass_ipa_free_fn_summary): Add small_p private data member,
      	initialize to false in the ctor.
      	(pass_ipa_free_fn_summary::clone,
      	pass_ipa_free_fn_summary::set_pass_param,
      	pass_ipa_free_fn_summary::gate): New methods.
      	(pass_ipa_free_fn_summary::execute): Return TODO_remove_functions
      	| TODO_dump_symtab if small_p.
      	* passes.def: Add true parm for the existing pass_ipa_free_fn_summary
      	entry and add another instance of the pass with false parm after
      	ipa-pure-const.
      	* ipa-pure-const.c (pass_ipa_pure_const): Don't call
      	ipa_free_fn_summary here.
      
      	* gcc.dg/pr83506.c: New test.
      	* gcc.dg/ipa/ctor-empty-1.c: Use -fdump-ipa-free-fnsummary1 instead
      	of -fdump-ipa-free-fnsummary and scan in free-fnsummary1 instead of
      	free-fnsummary dump.
      
      From-SVN: r255901
      Jakub Jelinek committed
  21. 28 Nov, 2017 2 commits
    • [PR 82808] Use proper result types for arithmetic jump functions · e5cf5e11
      2017-11-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      	    Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/82808
      	* tree.h (expr_type_first_operand_type_p): Declare
      	* tree.c (expr_type_first_operand_type_p): New function.
      	* ipa-prop.h (ipa_get_type): Allow i to be out of bounds.
      	(ipa_value_from_jfunc): Adjust declaration.
      	* ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE.
      	Use it as result type for arithmetics, unless it is NULL in which case
      	be more conservative.
      	(ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to
      	ipa_get_jf_pass_through_result.
      	(propagate_vals_across_pass_through): Likewise.
      	(propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass
      	is to propagate_vals_across_pass_through.
      	(propagate_constants_across_call): Pass PARM_TYPE to
      	propagate_scalar_across_jump_function.
      	(find_more_scalar_values_for_callers_subset): Pass parameter type to
      	ipa_value_from_jfunc.
      	(cgraph_edge_brings_all_scalars_for_node): Likewise.
      	* ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info
      	to caller_parms_info, pass parameter type to ipa_value_from_jfunc.
      	* ipa-prop.c (try_make_edge_direct_simple_call): New parameter
      	target_type, pass it to ipa_value_from_jfunc.
      	(update_indirect_edges_after_inlining): Pass parameter type to
      	try_make_edge_direct_simple_call.
      
      testsuite/
      	* gcc.dg/ipa/pr82808.c: New test.
      
      
      Co-Authored-By: Martin Jambor <mjambor@suse.cz>
      
      From-SVN: r255212
      Prathamesh Kulkarni committed
    • Remove Cilk Plus support. · 5e9d6aa4
      	* Makefile.def (target_modules): Remove libcilkrts.
      	* Makefile.in: Ditto.
      	* configure: Ditto.
      	* configure.ac: Ditto.
      
      contrib/
      	* contrib/gcc_update: Ditto.
      
      gcc/
      	* Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o, 
      	c-family/c-cilkplus.o, c-family/array-notation-common.o,
      	cilk-common.o, cilk.h, cilk-common.c): Remove.
      	* builtin-types.def
      	(BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove.
      	* builtins.c (is_builtin_name): Remove cilkplus condition.
      	(BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove.
      	* builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN,
      	cilk-builtins.def, cilkplus.def): Remove.
      	* cif-code.def (CILK_SPAWN): Remove.
      	* cilk-builtins.def: Delete.
      	* cilk-common.c: Ditto.
      	* cilk.h: Ditto.
      	* cilkplus.def: Ditto.
      	* config/darwin.h (fcilkplus): Delete.
      	* cppbuiltin.c: Ditto.
      	* doc/extend.texi: Remove cilkplus doc.
      	* doc/generic.texi: Ditto.
      	* doc/invoke.texi: Ditto.
      	* doc/passes.texi: Ditto.
      	* gcc.c (fcilkplus): Remove.
      	* gengtype.c (cilk.h): Remove.
      	* gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus support.
      	* gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD): Remove.
      	* gimplify.c (gimplify_return_expr, maybe_fold_stmt,
      	gimplify_call_expr, is_gimple_stmt, gimplify_modify_expr,
      	gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses,
      	gimplify_omp_for, gimplify_expr): Remove cilkplus conditions.
      	* ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary,
      	inline_read_section): Ditto.
      	* ipa-inline-analysis.c (cilk.h): Remove.
      	* ira.c (ira_setup_eliminable_regset): Remove cilkplus support.
      	* lto-wrapper.c (merge_and_complain, append_compiler_options,
      	append_linker_options): Remove condition for fcilkplus.
      	* lto/lto-lang.c (cilk.h): Remove.
      	(lto_init): Remove condition for fcilkplus.
      	* omp-expand.c (expand_cilk_for_call): Delete.
      	(expand_omp_taskreg, expand_omp_for_static_chunk,
      	expand_omp_for): Remove cilkplus
      	conditions.
      	(expand_cilk_for): Delete.
      	* omp-general.c (omp_extract_for_data): Remove cilkplus support.
      	* omp-low.c (scan_sharing_clauses, create_omp_child_function,
      	execute_lower_omp, diagnose_sb_0): Ditto.
      	* omp-simd-clone.c (simd_clone_clauses_extract): Ditto.
      	* tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
      	* tree-nested.c: Ditto.
      	* tree-pretty-print.c (dump_omp_clause): Remove cilkplus support.
      	(dump_generic_node): Ditto.
      	* tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
      	* tree.def (cilk_simd, cilk_for, cilk_spawn_stmt,
      	cilk_sync_stmt): Delete.
      	* tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete.
      
      gcc/c-family/
      	* array-notation-common.c: Delete.
      	* c-cilkplus.c: Ditto.
      	* c-common.c (_Cilk_spawn, _Cilk_sync, _Cilk_for): Remove.
      	* c-common.def (ARRAY_NOTATION_REF): Remove.
      	* c-common.h (RID_CILK_SPAWN, build_array_notation_expr,
      	build_array_notation_ref, C_ORT_CILK, c_check_cilk_loop,
      	c_validate_cilk_plus_loop, cilkplus_an_parts,
      	cilk_ignorable_spawn_rhs_op,
      	cilk_recognize_spawn): Remove.
      	* c-gimplify.c (CILK_SPAWN_STMT): Remove.
      	* c-omp.c: Remove CILK_SIMD check.
      	* c-pragma.c: Ditto.
      	* c-pragma.h: Remove CILK related pragmas.
      	* c-pretty-print.c (c_pretty_printer::postfix_expression): Remove
      	ARRAY_NOTATION_REF condition.
      	(c_pretty_printer::expression): Ditto.
      	* c.opt (fcilkplus): Remove.
      	* cilk.c: Delete.
      
      gcc/c/
      	* Make-lang.in (c/c-array-notation.o): Remove.
      	* c-array-notation.c: Delete.
      	* c-decl.c: Remove cilkplus condition.
      	* c-parser.c (c_parser_cilk_simd, c_parser_cilk_for,
      	c_parser_cilk_verify_simd, c_parser_array_notation,
      	c_parser_cilk_clause_vectorlength, c_parser_cilk_grainsize,
      	c_parser_cilk_simd_fn_vector_attrs,
      	c_finish_cilk_simd_fn_tokens): Delete.
      	(c_parser_declaration_or_fndef): Remove cilkplus condition.
      	(c_parser_direct_declarator_inner): Ditto.
      	(CILK_SIMD_FN_CLAUSE_MASK): Delete.
      	(c_parser_attributes, c_parser_compound_statement,
      	c_parser_statement_after_labels, c_parser_if_statement,
      	c_parser_switch_statement, c_parser_while_statement,
      	c_parser_do_statement, c_parser_for_statement,
      	c_parser_unary_expression, c_parser_postfix_expression,
      	c_parser_postfix_expression_after_primary,
      	c_parser_pragma, c_parser_omp_clause_name, c_parser_omp_all_clauses,
      	c_parser_omp_for_loop,
      	c_finish_omp_declare_simd): Remove cilkplus support.
      	* c-typeck.c (build_array_ref, build_function_call_vec,
      	convert_arguments, lvalue_p, build_compound_expr, c_finish_return,
      	c_finish_if_stmt, c_finish_loop,
      	build_binary_op): Remove cilkplus support.
      	
      gcc/cp/
      	* Make-lang.in (cp/cp-array-notation.o, cp/cp-cilkplus.o): Delete.
      	* call.c (convert_for_arg_passing, build_cxx_call): Remove cilkplus.
      	* constexpr.c (potential_constant_expression_1): Ditto.
      	* cp-array-notation.c: Delete.
      	* cp-cilkplus.c: Ditto.
      	* cp-cilkplus.h: Ditto.
      	* cp-gimplify.c (cp_gimplify_expr, cp_fold_r, cp_genericize): Remove
      	cilkplus condition.
      	* cp-objcp-common.c (ARRAY_NOTATION_REF): Delete.
      	* cp-tree.h (cilkplus_an_triplet_types_ok_p): Delete.
      	* decl.c (grokfndecl, finish_function): Remove cilkplus condition.
      	* error.c (dump_decl, dump_expr): Remove ARRAY_NOTATION_REF condition.
      	* lambda.c (cp-cilkplus.h): Remove.
      	* parser.c (cp_parser_cilk_simd, cp_parser_cilk_for,
      	cp_parser_cilk_simd_vectorlength): Delete.
      	(cp_debug_parser, cp_parser_ctor_initializer_opt_and_function_body,
      	cp_parser_postfix_expression, cp_parser_postfix_open_square_expression,
      	cp_parser_statement, cp_parser_jump_statement,
      	cp_parser_direct_declarator,
      	cp_parser_late_return_type_opt, cp_parser_gnu_attribute_list,
      	cp_parser_omp_clause_name, cp_parser_omp_clause_aligned,
      	cp_parser_omp_clause_linear, cp_parser_omp_all_clauses,
      	cp_parser_omp_flush, cp_parser_omp_for_cond, cp_parser_omp_for_incr,
      	cp_parser_omp_for_loop_init, cp_parser_omp_for_loop,
      	cp_parser_omp_declare_simd): Remove cilkplus support.
      	(CILK_SIMD_FN_CLAUSE_MASK, cp_parser_late_parsing_cilk_simd_fn_info,
      	cp_parser_cilk_grainsize): Remove.
      	(cp_parser_pragma, c_parse_file): Remove cilkplus support.
      	(cp_parser_cilk_simd_vectorlength, cp_parser_cilk_simd_linear,
      	cp_parser_cilk_simd_clause_name, cp_parser_cilk_simd_all_clauses,
      	cp_parser_cilk_simd, cp_parser_cilk_for): Remove.
      	* parser.h (IN_CILK_SIMD_FOR, IN_CILK_SPAWN): Remove.
      	* pt.c (tsubst_attribute, tsubst_expr, tsubst_copy_and_build): Remove
      	cilkplus support.
      	* semantics.c (finish_goto_stmt, begin_while_stmt, finish_do_body,
      	finish_init_stmt, finish_switch_cond, simplify_aggr_init_expr,
      	finish_omp_clauses, finish_omp_clauses,
      	finish_omp_for): Remove cilkplus support.
      	* tree.c (lvalue_kind): Remove ARRAY_NOTATION_REF conditon.
      	* typeck.c (cp_build_array_ref, cp_build_compound_expr,
      	check_return_expr): Remove cilkplus support.
      
      gcc/testsuite/
      	* c-c++-common/attr-simd-3.c: Delete.
      	* c-c++-common/cilk-plus/AN/an-if.c: Delete.
      	* c-c++-common/cilk-plus/AN/array_test1.c: Delete.
      	* c-c++-common/cilk-plus/AN/array_test2.c: Delete.
      	* c-c++-common/cilk-plus/AN/array_test_ND.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_fn_custom.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_fn_mutating.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_func_double.c: Delete.
      	* c-c++-common/cilk-plus/AN/builtin_func_double2.c: Delete.
      	* c-c++-common/cilk-plus/AN/comma_exp.c: Delete.
      	* c-c++-common/cilk-plus/AN/conditional.c: Delete.
      	* c-c++-common/cilk-plus/AN/decl-ptr-colon.c: Delete.
      	* c-c++-common/cilk-plus/AN/dimensionless-arrays.c: Delete.
      	* c-c++-common/cilk-plus/AN/exec-once.c: Delete.
      	* c-c++-common/cilk-plus/AN/exec-once2.c: Delete.
      	* c-c++-common/cilk-plus/AN/fn_ptr-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/fn_ptr.c: Delete.
      	* c-c++-common/cilk-plus/AN/fp_triplet_values.c: Delete.
      	* c-c++-common/cilk-plus/AN/gather-scatter-errors.c: Delete.
      	* c-c++-common/cilk-plus/AN/gather_scatter.c: Delete.
      	* c-c++-common/cilk-plus/AN/if_test.c: Delete.
      	* c-c++-common/cilk-plus/AN/if_test_errors.c: Delete.
      	* c-c++-common/cilk-plus/AN/misc.c: Delete.
      	* c-c++-common/cilk-plus/AN/n-ptr-test.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors2.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors3.c: Delete.
      	* c-c++-common/cilk-plus/AN/parser_errors4.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57457-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57457.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57490.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57541-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57541.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr57577.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr58942.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61191.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61455-2.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61455.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61962.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr61963.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr62008.c: Delete.
      	* c-c++-common/cilk-plus/AN/pr63884.c: Delete.
      	* c-c++-common/cilk-plus/AN/rank_mismatch.c: Delete.
      	* c-c++-common/cilk-plus/AN/rank_mismatch2.c: Delete.
      	* c-c++-common/cilk-plus/AN/rank_mismatch3.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_implicit.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_implicit2.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_implicit_ex.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_reduce_ind_same_value.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_reduce_max_min_ind.c: Delete.
      	* c-c++-common/cilk-plus/AN/sec_reduce_return.c: Delete.
      	* c-c++-common/cilk-plus/AN/side-effects-1.c: Delete.
      	* c-c++-common/cilk-plus/AN/test_builtin_return.c: Delete.
      	* c-c++-common/cilk-plus/AN/test_sec_limits.c: Delete.
      	* c-c++-common/cilk-plus/AN/tst_lngth.c: Delete.
      	* c-c++-common/cilk-plus/AN/vla.c: Delete.
      	* c-c++-common/cilk-plus/CK/Wparentheses-1.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk-for-2.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk-for-3.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk-fors.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_errors.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_grain.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_grain_errors.c: Delete.
      	* c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: Delete.
      	* c-c++-common/cilk-plus/CK/compound_cilk_spawn.c: Delete.
      	* c-c++-common/cilk-plus/CK/concec_cilk_spawn.c: Delete.
      	* c-c++-common/cilk-plus/CK/errors.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib_init_expr_xy.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib_no_return.c: Delete.
      	* c-c++-common/cilk-plus/CK/fib_no_sync.c: Delete.
      	* c-c++-common/cilk-plus/CK/invalid_spawns.c: Delete.
      	* c-c++-common/cilk-plus/CK/invalid_sync.c: Delete.c
      	* c-c++-common/cilk-plus/CK/nested_cilk_for.c: Delete.
      	* c-c++-common/cilk-plus/CK/no_args_error.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr59631.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60197-2.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60197.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60469.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr60586.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr63307.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr69826-1.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr69826-2.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr79428-4.c: Delete.
      	* c-c++-common/cilk-plus/CK/pr79428-7.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawn_in_return.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawnee_inline.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawner_inline.c: Delete.
      	* c-c++-common/cilk-plus/CK/spawning_arg.c: Delete.
      	* c-c++-common/cilk-plus/CK/steal_check.c: Delete.
      	* c-c++-common/cilk-plus/CK/sync_wo_spawn.c: Delete.
      	* c-c++-common/cilk-plus/CK/test__cilk.c: Delete.
      	* c-c++-common/cilk-plus/CK/varargs_test.c: Delete.
      	* c-c++-common/cilk-plus/PS/Wparentheses-1.c: Delete.
      	* c-c++-common/cilk-plus/PS/body.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses1.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses2.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses3.c: Delete.
      	* c-c++-common/cilk-plus/PS/clauses4.c: Delete.
      	* c-c++-common/cilk-plus/PS/for1.c: Delete.
      	* c-c++-common/cilk-plus/PS/for2.c: Delete.
      	* c-c++-common/cilk-plus/PS/for3.c: Delete.
      	* c-c++-common/cilk-plus/PS/pr69363.c: Delete.
      	* c-c++-common/cilk-plus/PS/reduction-1.c: Delete.
      	* c-c++-common/cilk-plus/PS/reduction-2.c: Delete.
      	* c-c++-common/cilk-plus/PS/reduction-3.c: Delete.
      	* c-c++-common/cilk-plus/PS/run-1.c: Delete.
      	* c-c++-common/cilk-plus/PS/safelen.c: Delete.
      	* c-c++-common/cilk-plus/PS/vectorlength-2.c: Delete.
      	* c-c++-common/cilk-plus/PS/vectorlength-3.c: Delete.
      	* c-c++-common/cilk-plus/PS/vectorlength.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_error.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_error2.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_error3.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_test.c: Delete.
      	* c-c++-common/cilk-plus/SE/ef_test2.c: Delete.
      	* c-c++-common/cilk-plus/SE/vlength_errors.c: Delete.
      	* g++.dg/cilk-plus/AN/array_function.c: Delete.
      	* g++.dg/cilk-plus/AN/array_test1_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/array_test2_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/array_test_ND_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/braced_list.c: Delete.
      	* g++.dg/cilk-plus/AN/builtin_fn_custom_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/builtin_fn_mutating_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/fp_triplet_values_tplt.c: Delete.
      	* g++.dg/cilk-plus/AN/postincr_test.c: Delete.
      	* g++.dg/cilk-plus/AN/preincr_test.c: Delete.
      	* g++.dg/cilk-plus/CK/catch_exc.c: Delete.
      	* g++.dg/cilk-plus/CK/cf3.c: Delete.
      	* g++.dg/cilk-plus/CK/cilk-for-tplt.c: Delete.
      	* g++.dg/cilk-plus/CK/const_spawn.c: Delete.
      	* g++.dg/cilk-plus/CK/fib-opr-overload.c: Delete.
      	* g++.dg/cilk-plus/CK/fib-tplt.c: Delete.
      	* g++.dg/cilk-plus/CK/for1.c: Delete.
      	* g++.dg/cilk-plus/CK/lambda_spawns.c: Delete.
      	* g++.dg/cilk-plus/CK/lambda_spawns_tplt.c: Delete.
      	* g++.dg/cilk-plus/CK/pr60586.c: Delete.
      	* g++.dg/cilk-plus/CK/pr66326.c: Delete.
      	* g++.dg/cilk-plus/CK/pr68001.c: Delete.
      	* g++.dg/cilk-plus/CK/pr68997.c: Delete.
      	* g++.dg/cilk-plus/CK/pr69024.c: Delete.
      	* g++.dg/cilk-plus/CK/pr69048.c: Delete.
      	* g++.dg/cilk-plus/CK/pr69267.c: Delete.
      	* g++.dg/cilk-plus/CK/pr80038.c: Delete.
      	* g++.dg/cilk-plus/CK/stl_iter.c: Delete.
      	* g++.dg/cilk-plus/CK/stl_rev_iter.c: Delete.
      	* g++.dg/cilk-plus/CK/stl_test.c: Delete.
      	* g++.dg/cilk-plus/cilk-plus.exp
      	* g++.dg/cilk-plus/ef_test.C: Delete.
      	* g++.dg/cilk-plus/for.C: Delete.
      	* g++.dg/cilk-plus/for2.C: Delete.
      	* g++.dg/cilk-plus/for3.C: Delete.
      	* g++.dg/cilk-plus/for4.C: Delete.
      	* g++.dg/cilk-plus/pr60967.C: Delete.
      	* g++.dg/cilk-plus/pr69028.C: Delete.
      	* g++.dg/cilk-plus/pr70565.C: Delete.
      	* g++.dg/pr57662.C: Delete.
      	* gcc.dg/cilk-plus/cilk-plus.exp
      	* gcc.dg/cilk-plus/for1.c: Delete.
      	* gcc.dg/cilk-plus/for2.c: Delete.
      	* gcc.dg/cilk-plus/jump-openmp.c: Delete.
      	* gcc.dg/cilk-plus/jump.c: Delete.
      	* gcc.dg/cilk-plus/pr69798-1.c: Delete.
      	* gcc.dg/cilk-plus/pr69798-2.c: Delete.
      	* gcc.dg/cilk-plus/pr78306.c: Delete.
      	* gcc.dg/cilk-plus/pr79116.c: Delete.
      	* gcc.dg/graphite/id-28.c: Delete.
      	* lib/cilk-plus-dg.exp: Delete.
      	* lib/target-supports.exp (cilkplus_runtime): Delete.
      
      Co-Authored-By: Sebastian Peryt <sebastian.peryt@intel.com>
      
      From-SVN: r255195
      Julia Koval committed
  22. 17 Nov, 2017 1 commit
  23. 16 Nov, 2017 1 commit
  24. 14 Nov, 2017 1 commit
  25. 13 Nov, 2017 1 commit
    • cgraph.c (cgraph_edge::sreal_frequency): New function. · 41f0e819
      	* cgraph.c (cgraph_edge::sreal_frequency): New function.
      	* cgraph.h (cgraph_edge::sreal_frequency): Declare.
      	* ipa-fnsummary.c (dump_ipa_call_summary): Use sreal_frequency.
      	(estimate_edge_size_and_time): Likewise.
      	(ipa_merge_fn_summary_after_inlining): Likewise.
      	* ipa-inline.c (cgraph_freq_base_rec): Remove.
      	(compute_uninlined_call_time): Use sreal_frequency.
      	(compute_inlined_call_time): Likewise.
      	(ipa_inline): Do not initialize cgraph_freq_base_rec.
      	* profile-count.c: Include sreal.h.
      	(profile_count::to_sreal_scale): New.
      	* profile-count.h: Forward declare sreal.
      	(profile_count::to_sreal_scale): Declare.
      
      From-SVN: r254696
      Jan Hubicka committed
  26. 10 Nov, 2017 1 commit
    • auto-profile.c (afdo_indirect_call): Drop frequency. · 1bad9c18
      	* auto-profile.c (afdo_indirect_call): Drop frequency.
      	* cgraph.c (symbol_table::create_edge): Drop frequency argument.
      	(cgraph_node::create_edge): Drop frequency argument.
      	(cgraph_node::create_indirect_edge): Drop frequency argument.
      	(cgraph_edge::make_speculative): Drop frequency arguments.
      	(cgraph_edge::resolve_speculation): Do not update frequencies
      	(cgraph_edge::dump_edge_flags): Do not dump frequency.
      	(cgraph_node::dump): Check consistency in IPA mode.
      	(cgraph_edge::maybe_hot_p): Use IPA counter.
      	(cgraph_edge::verify_count_and_frequency): Rename to ...
      	(cgraph_edge::verify_count): ... this one; drop frequency checking.
      	(cgraph_node::verify_node): Update.
      	* cgraph.h (struct cgraph_edge): Drop frequency.
      	(cgraph_edge::frequency): New function.
      	* cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass
      	frequencies.
      	(cgraph_edge::rebuild_edges): Likewise.
      	* cgraphclones.c (cgraph_edge::clone): Scale only counts.
      	(duplicate_thunk_for_node): Do not pass frequency.
      	(cgraph_node::create_clone): Scale only counts.
      	(cgraph_node::create_virtual_clone): Do not pass frequency.
      	(cgraph_node::create_edge_including_clones): Do not pass frequency.
      	(cgraph_node::create_version_clone): Do not pass frequency.
      	* cgraphunit.c (cgraph_node::analyze): Do not pass frequency.
      	(cgraph_node::expand_thunk): Do not pass frequency.
      	(cgraph_node::create_wrapper): Do not pass frequency.
      	* gimple-iterator.c (update_call_edge_frequencies): Do not pass
      	frequency.
      	* gimple-streamer-in.c (input_bb): Scale only IPA counts.
      	* ipa-chkp.c (chkp_produce_thunks): Do not pass frequency.
      	* ipa-cp.c (ipcp_lattice::print): Use frequency function.
      	(gather_caller_stats): Use frequency function.
      	(ipcp_cloning_candidate_p): Use frequency function.
      	(ipcp_propagate_stage): Use frequency function.
      	(get_info_about_necessary_edges): Use frequency function.
      	(update_profiling_info): Update only IPA profile.
      	(update_specialized_profile): Use frequency functoin.
      	(perhaps_add_new_callers): Update only IPA profile.
      	* ipa-devirt.c (ipa_devirt): Use IPA profile.
      	* ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency.
      	(dump_ipa_call_summary): Use frequency function.
      	(estimate_edge_size_and_time): Use frequency function.
      	(ipa_merge_fn_summary_after_inlining): Use frequency function.
      	* ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile.
      	* ipa-inline-transform.c (update_noncloned_frequencies): Rename to ..
      	(update_noncloned_counts): ... ths one; scale counts only.
      	(clone_inlined_nodes): Do not scale frequency.
      	(inline_call): Do not pass frequency.
      	* ipa-inline.c (compute_uninlined_call_time): Use IPA profile.
      	(compute_inlined_call_time): Use IPA profile.
      	(want_inline_small_function_p): Use IPA profile.
      	(want_inline_self_recursive_call_p): Use IPA profile.
      	(edge_badness): Use IPA profile.
      	(lookup_recursive_calls): Use IPA profile.
      	(recursive_inlining): Do not pass frequency.
      	(resolve_noninline_speculation): Do not update frequency.
      	(inline_small_functions): Collect max of IPA profile.
      	(dump_overall_stats): Dump IPA porfile.
      	(dump_inline_stats): Dump IPA porfile.
      	(ipa_inline): Collect IPA stats.
      	* ipa-inline.h (clone_inlined_nodes): Update prototype.
      	* ipa-profile.c (ipa_propagate_frequency_1): Use frequency function.
      	(ipa_propagate_frequency): Use frequency function.
      	(ipa_profile): Cleanup.
      	* ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency
      	* ipa-utils.c (ipa_merge_profiles): Merge all profiles.
      	* lto-cgraph.c (lto_output_edge): Do not stream frequency.
      	(input_node): Do not stream frequency.
      	(input_edge): Do not stream frequency.
      	(merge_profile_summaries): Scale only IPA profiles.
      	* omp-simd-clone.c (simd_clone_adjust): Do not pass frequency.
      	* predict.c (drop_profile): Do not recompute frequency.
      	* trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency.
      	(ipa_tm_insert_gettmclone_call): Do not pass frequency.
      	* tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed.
      	* tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency.
      	* tree-emutls.c (gen_emutls_addr): Do not pass frequency.
      	* tree-inline.c (copy_bb): Do not scale frequency.
      	(expand_call_inline): Do not scale frequency.
      	(tree_function_versioning): Do not scale frequency.
      	* ubsan.c (ubsan_create_edge): Do not pass frequency.
      
      lto/ChangeLog:
      
      2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
      
      	* lto-partition.c (lto_balanced_map): Use frequency accessor.
      
      From-SVN: r254636
      Jan Hubicka committed
  27. 06 Nov, 2017 1 commit
  28. 03 Nov, 2017 1 commit
    • asan.c (create_cond_insert_point): Maintain profile. · e7a74006
      	* asan.c (create_cond_insert_point): Maintain profile.
      	* ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are
      	merged.
      	* basic-block.h (struct basic_block_def): Remove frequency.
      	(EDGE_FREQUENCY): Use to_frequency
      	* bb-reorder.c (push_to_next_round_p): Use only IPA counts for global
      	heuristics.
      	(find_traces): Update to use to_frequency.
      	(find_traces_1_round): Likewise; use only IPA counts.
      	(bb_to_key): Likewise.
      	(connect_traces): Use IPA counts only.
      	(copy_bb_p): Update to use to_frequency.
      	(fix_up_crossing_landing_pad): Likewise.
      	(sanitize_hot_paths): Likewise.
      	* bt-load.c (basic_block_freq): Likewise.
      	* cfg.c (init_flow): Set count_max to uninitialized.
      	(check_bb_profile): Remove frequencies; check counts.
      	(dump_bb_info): Do not dump frequencies.
      	(update_bb_profile_for_threading): Update counts only.
      	(scale_bbs_frequencies_int): Likewise.
      	(MAX_SAFE_MULTIPLIER): Remove.
      	(scale_bbs_frequencies_gcov_type): Update counts only.
      	(scale_bbs_frequencies_profile_count): Update counts only.
      	(scale_bbs_frequencies): Update counts only.
      	* cfg.h (struct control_flow_graph): Add count-max.
      	(update_bb_profile_for_threading): Update prototype.
      	* cfgbuild.c (find_bb_boundaries): Do not update frequencies.
      	(find_many_sub_basic_blocks): Likewise.
      	* cfgcleanup.c (try_forward_edges): Likewise.
      	(try_crossjump_to_edge): Likewise.
      	* cfgexpand.c (expand_gimple_cond): Likewise.
      	(expand_gimple_tailcall): Likewise.
      	(construct_init_block): Likewise.
      	(construct_exit_block): Likewise.
      	* cfghooks.c (verify_flow_info): Check consistency of counts.
      	(dump_bb_for_graph): Do not dump frequencies.
      	(split_block_1): Do not update frequencies.
      	(split_edge): Do not update frequencies.
      	(make_forwarder_block): Do not update frequencies.
      	(duplicate_block): Do not update frequencies.
      	(account_profile_record): Do not update frequencies.
      	* cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts
      	for global heuristics.
      	* cfgloopanal.c (average_num_loop_insns): Update to use to_frequency.
      	(expected_loop_iterations_unbounded): Use counts only.
      	* cfgloopmanip.c (scale_loop_profile): Simplify.
      	(create_empty_loop_on_edge): Simplify
      	(loopify): Simplify
      	(duplicate_loop_to_header_edge): Simplify
      	* cfgrtl.c (force_nonfallthru_and_redirect): Update profile.
      	(update_br_prob_note): Take care of removing note when profile
      	becomes undefined.
      	(relink_block_chain): Do not dump frequency.
      	(rtl_account_profile_record): Use to_frequency.
      	* cgraph.c (symbol_table::create_edge): Convert count to ipa count.
      	(cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count.
      	(cgraph_update_edges_for_call_stmt_node): Likewise.
      	(cgraph_edge::verify_count_and_frequency): Update.
      	(cgraph_node::verify_node): Temporarily disable frequency verification.
      	* cgraphbuild.c (compute_call_stmt_bb_frequency): Use
      	to_cgraph_frequency.
      	(cgraph_edge::rebuild_edges): Convert to ipa counts.
      	* cgraphunit.c (init_lowered_empty_function): Do not initialize
      	frequencies.
      	(cgraph_node::expand_thunk): Update profile.
      	* except.c (dw2_build_landing_pads): Do not update frequency.
      	* final.c (compute_alignments): Use to_frequency.
      	(dump_basic_block_info): Do not dump frequency.
      	* gimple-pretty-print.c (dump_profile): Do not dump frequency.
      	(dump_gimple_bb_header): Do not dump frequency.
      	* gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency;
      	do update count.
      	* gimple-streamer-in.c (input_bb): Do not stream frequency.
      	* gimple-streamer-out.c (output_bb): Do not stream frequency.
      	* haifa-sched.c (sched_pressure_start_bb): Use to_freuqency.
      	(init_before_recovery): Do not update frequency.
      	(sched_create_recovery_edges): Do not update frequency.
      	* hsa-gen.c (convert_switch_statements): Do not update frequency.
      	* ipa-cp.c (ipcp_propagate_stage): Update search for max_count.
      	(ipa_cp_c_finalize): Set max_count to uninitialized.
      	* ipa-fnsummary.c (get_minimal_bb): Use counts.
      	(param_change_prob): Use counts.
      	* ipa-profile.c (ipa_profile_generate_summary): Do not summarize
      	local profiles.
      	* ipa-split.c (consider_split): Use to_frequency.
      	(split_function): Use to_frequency.
      	* ira-build.c (loop_compare_func): Likewise.
      	(mark_loops_for_removal): Likewise.
      	(mark_all_loops_for_removal): Likewise.
      	* loop-doloop.c (doloop_modify): Do not update frequency.
      	* loop-unroll.c (unroll_loop_runtime_iterations): Do not update
      	frequency.
      	* lto-streamer-in.c (input_function): Update count_max.
      	* omp-expand.c (expand_omp_taskreg): Update count_max.
      	* omp-simd-clone.c (simd_clone_adjust): Update profile.
      	* predict.c (maybe_hot_frequency_p): Use to_frequency.
      	(maybe_hot_count_p): Use ipa counts only.
      	(maybe_hot_bb_p): Simplify.
      	(maybe_hot_edge_p): Simplify.
      	(probably_never_executed): Do not take frequency argument.
      	(probably_never_executed_bb_p): Do not pass frequency.
      	(probably_never_executed_edge_p): Likewise.
      	(combine_predictions_for_bb): Check that profile is nonzero.
      	(propagate_freq): Do not set frequency.
      	(drop_profile): Simplify.
      	(counts_to_freqs): Simplify.
      	(expensive_function_p): Use to_frequency.
      	(propagate_unlikely_bbs_forward): Simplify.
      	(determine_unlikely_bbs): Simplify.
      	(estimate_bb_frequencies): Add hack to silence graphite issues.
      	(compute_function_frequency): Use ipa counts.
      	(pass_profile::execute): Update.
      	(rebuild_frequencies): Use counts only.
      	(force_edge_cold): Use counts only.
      	* profile-count.c (profile_count::dump): Dump new count types.
      	(profile_count::differs_from_p): Check compatiblity.
      	(profile_count::to_frequency): New function.
      	(profile_count::to_cgraph_frequency): New function.
      	* profile-count.h (struct function): Declare.
      	(enum profile_quality): Add profile_guessed_local and
      	profile_guessed_global0.
      	(class profile_proability): Decrease number of bits to 29;
      	update from_reg_br_prob_note and to_reg_br_prob_note.
      	(class profile_count: Update comment; decrease number of bits
      	to 61. Check compatibility.
      	(profile_count::compatible_p): New private member function.
      	(profile_count::ipa_p): New member function.
      	(profile_count::operator<): Handle global zero correctly.
      	(profile_count::operator>): Handle global zero correctly.
      	(profile_count::operator<=): Handle global zero correctly.
      	(profile_count::operator>=): Handle global zero correctly.
      	(profile_count::nonzero_p): New member function.
      	(profile_count::force_nonzero): New member function.
      	(profile_count::max): New member function.
      	(profile_count::apply_scale): Handle IPA scalling.
      	(profile_count::guessed_local): New member function.
      	(profile_count::global0): New member function.
      	(profile_count::ipa): New member function.
      	(profile_count::to_frequency): Declare.
      	(profile_count::to_cgraph_frequency): Declare.
      	* profile.c (OVERLAP_BASE): Delete.
      	(compute_frequency_overlap): Delete.
      	(compute_branch_probabilities): Do not use compute_frequency_overlap.
      	* regs.h (REG_FREQ_FROM_BB): Use to_frequency.
      	* sched-ebb.c (rank): Use counts only.
      	* shrink-wrap.c (handle_simple_exit): Use counts only.
      	(try_shrink_wrapping): Use counts only.
      	(place_prologue_for_one_component): Use counts only.
      	* tracer.c (find_best_predecessor): Use to_frequency.
      	(find_trace): Use to_frequency.
      	(tail_duplicate): Use to_frequency.
      	* trans-mem.c (expand_transaction): Do not update frequency.
      	* tree-call-cdce.c: Do not update frequency. 
      	* tree-cfg.c (gimple_find_sub_bbs): Likewise.
      	(gimple_merge_blocks): Likewise.
      	(gimple_split_edge): Likewise.
      	(gimple_duplicate_sese_region): Likewise.
      	(gimple_duplicate_sese_tail): Likewise.
      	(move_sese_region_to_fn): Likewise.
      	(gimple_account_profile_record): Likewise.
      	(insert_cond_bb): Likewise.
      	* tree-complex.c (expand_complex_div_wide): Likewise.
      	* tree-eh.c (lower_resx): Update profile.
      	* tree-inline.c (copy_bb): Simplify count scaling; do not scale
      	frequencies.
      	(initialize_cfun): Do not initialize frequencies
      	(freqs_to_counts): Delete.
      	(copy_cfg_body): Ignore count parameter.
      	(copy_body): Update.
      	(expand_call_inline): Update count_max.
      	(optimize_inline_calls): Update count_max.
      	(tree_function_versioning): Update count_max.
      	* tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency.
      	* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update
      	frequency.
      	* tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only.
      	* tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency.
      	(try_peel_loop): Likewise.
      	* tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use
      	to_frequency.
      	* tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1.
      	(tree_transform_and_unroll_loop): Do not use frequencies
      	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations):
      	Use reliable prediction only.
      	* tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies.
      	* tree-ssa-sink.c (select_best_block): Use to_frequency.
      	* tree-ssa-tail-merge.c (replace_block_by): Temporarily disable
      	probability scaling.
      	* tree-ssa-threadupdate.c (create_block_for_threading): Do
      	not update frequency
      	(any_remaining_duplicated_blocks): Likewise.
      	(update_profile): Likewise.
      	(estimated_freqs_path): Delete.
      	(freqs_to_counts_path): Delete.
      	(clear_counts_path): Delete.
      	(ssa_fix_duplicate_block_edges): Likewise.
      	(duplicate_thread_path): Likewise.
      	* tree-switch-conversion.c (gen_inbound_check): Use counts.
      	* tree-tailcall.c (decrease_profile): Do not update frequency.
      	(eliminate_tail_call): Likewise.
      	* tree-vect-loop-manip.c (vect_do_peeling): Likewise.
      	* tree-vect-loop.c (scale_profile_for_vect_loop): Likewise.
      	(optimize_mask_stores): Likewise.
      	* tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
      	* ubsan.c (ubsan_expand_null_ifn): Update profile.
      	(ubsan_expand_ptr_ifn): Update profile.
      	* value-prof.c (gimple_ic): Simplify.
      	* value-prof.h (gimple_ic): Update prototype.
      	* ipa-inline-transform.c (inline_transform): Fix scaling conditoins.
      	* ipa-inline.c (compute_uninlined_call_time): Be sure that
      	counts are nonzero.
      	(want_inline_self_recursive_call_p): Likewise.
      	(resolve_noninline_speculation): Only cummulate defined counts.
      	(inline_small_functions): Use nonzero_p.
      	(ipa_inline): Do not access freed node.
      
      Unknown ChangeLog:
      
      2017-11-02  Jan Hubicka  <hubicka@ucw.cz>
      
      	* testsuite/gcc.dg/no-strict-overflow-3.c (foo): Update magic
      	value to not clash with frequency.
      	* testsuite/gcc.dg/strict-overflow-3.c (foo): Likewise.
      	* testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/dump-2.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-10.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-11.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-12.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-20040816-1.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-5.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-8.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-9.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-cd.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-pr56541.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-pr68583.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-pr69489-1.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-pr69489-2.c: Update template.
      	* testsuite/gcc.target/i386/pr61403.c: Update template.
      
      From-SVN: r254379
      Jan Hubicka committed
  29. 27 Oct, 2017 1 commit
    • Extend ipa-pure-const pass to propagate malloc attribute. · 0fab169b
      2017-10-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	* cgraph.h (set_malloc_flag): Declare.
      	* cgraph.c (set_malloc_flag_1): New function.
      	(set_malloc_flag): Likewise.
      	* ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
      	* ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
      	false.
      	(read_ipa_call_summary): Add support for reading is_return_callee.
      	(write_ipa_call_summary): Stream is_return_callee.
      	* ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
      	* ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
      	ipa-prop.h, ipa-fnsummary.h.
      	(pure_const_names): Change to static.
      	(malloc_state_e): Define.
      	(malloc_state_names): Define.
      	(funct_state_d): Add field malloc_state.
      	(varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
      	(check_retval_uses): New function.
      	(malloc_candidate_p): Likewise.
      	(analyze_function): Add support for malloc attribute.
      	(pure_const_write_summary): Stream malloc_state.
      	(pure_const_read_summary): Add support for reading malloc_state.
      	(dump_malloc_lattice): New function.
      	(propagate_malloc): New function.
      	(warn_function_malloc): New function.
      	(ipa_pure_const::execute): Call propagate_malloc and
      	ipa_free_fn_summary.
      	(pass_local_pure_const::execute): Add support for malloc attribute.
      	* ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
      	* doc/invoke.texi: Document Wsuggest-attribute=malloc.
      
      testsuite/
      	* gcc.dg/ipa/propmalloc-1.c: New test-case.
      	* gcc.dg/ipa/propmalloc-2.c: Likewise.
      	* gcc.dg/ipa/propmalloc-3.c: Likewise.
      
      From-SVN: r254140
      Prathamesh Kulkarni committed
  30. 08 Aug, 2017 1 commit
    • trans.c: Include header files. · 314e6352
      .
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* gcc-interface/trans.c: Include header files.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* objc-gnu-runtime-abi-01.c: Include header files.
      	* objc-next-runtime-abi-01.c: Likewise.
      	* objc-next-runtime-abi-02.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* asan.c: Include header files.
      	* attribs.c (build_decl_attribute_variant): New function moved
      	from tree.[ch].
      	(build_type_attribute_qual_variant): Likewise.
      	(cmp_attrib_identifiers): Likewise.
      	(simple_cst_list_equal): Likewise.
      	(omp_declare_simd_clauses_equal): Likewise.
      	(attribute_value_equal): Likewise.
      	(comp_type_attributes): Likewise.
      	(build_type_attribute_variant): Likewise.
      	(lookup_ident_attribute): Likewise.
      	(remove_attribute): Likewise.
      	(merge_attributes): Likewise.
      	(merge_type_attributes): Likewise.
      	(merge_decl_attributes): Likewise.
      	(merge_dllimport_decl_attributes): Likewise.
      	(handle_dll_attribute): Likewise.
      	(attribute_list_equal): Likewise.
      	(attribute_list_contained): Likewise.
      	* attribs.h (lookup_attribute): New function moved from tree.[ch].
      	(lookup_attribute_by_prefix): Likewise.
      	* bb-reorder.c: Include header files.
      	* builtins.c: Likewise.
      	* calls.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* convert.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* final.c: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* gimple-expr.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple.c: Likewise.
      	* gimplify.c: Likewise.
      	* hsa-common.c: Likewise.
      	* hsa-gen.c: Likewise.
      	* internal-fn.c: Likewise.
      	* ipa-chkp.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-fnsummary.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-visibility.c: Likewise.
      	* ipa.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* omp-expand.c: Likewise.
      	* omp-general.c: Likewise.
      	* omp-low.c: Likewise.
      	* omp-offload.c: Likewise.
      	* omp-simd-clone.c: Likewise.
      	* opts-global.c: Likewise.
      	* passes.c: Likewise.
      	* predict.c: Likewise.
      	* sancov.c: Likewise.
      	* sanopt.c: Likewise.
      	* symtab.c: Likewise.
      	* toplev.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-chkp.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-streamer-in.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tsan.c: Likewise.
      	* ubsan.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* tree.c: Remove functions moved to attribs.[ch].
      	* tree.h: Likewise.
      	* config/aarch64/aarch64.c: Add attrs.h header file.
      	* config/alpha/alpha.c: Likewise.
      	* config/arc/arc.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/avr/avr.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/c6x/c6x.c: Likewise.
      	* config/cr16/cr16.c: Likewise.
      	* config/cris/cris.c: Likewise.
      	* config/darwin.c: Likewise.
      	* config/epiphany/epiphany.c: Likewise.
      	* config/fr30/fr30.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/ft32/ft32.c: Likewise.
      	* config/h8300/h8300.c: Likewise.
      	* config/i386/winnt.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/iq2000/iq2000.c: Likewise.
      	* config/lm32/lm32.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/m32r/m32r.c: Likewise.
      	* config/m68k/m68k.c: Likewise.
      	* config/mcore/mcore.c: Likewise.
      	* config/microblaze/microblaze.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/mmix/mmix.c: Likewise.
      	* config/mn10300/mn10300.c: Likewise.
      	* config/moxie/moxie.c: Likewise.
      	* config/msp430/msp430.c: Likewise.
      	* config/nds32/nds32-isr.c: Likewise.
      	* config/nds32/nds32.c: Likewise.
      	* config/nios2/nios2.c: Likewise.
      	* config/nvptx/nvptx.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/pdp11/pdp11.c: Likewise.
      	* config/powerpcspe/powerpcspe.c: Likewise.
      	* config/riscv/riscv.c: Likewise.
      	* config/rl78/rl78.c: Likewise.
      	* config/rx/rx.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sol2.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/tilegx/tilegx.c: Likewise.
      	* config/tilepro/tilepro.c: Likewise.
      	* config/v850/v850.c: Likewise.
      	* config/vax/vax.c: Likewise.
      	* config/visium/visium.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* call.c: Include header files.
      	* cp-gimplify.c: Likewise.
      	* cp-ubsan.c: Likewise.
      	* cvt.c: Likewise.
      	* init.c: Likewise.
      	* search.c: Likewise.
      	* semantics.c: Likewise.
      	* typeck.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* lto-lang.c: Include header files.
      	* lto-symtab.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* c-convert.c: Include header files.
      	* c-typeck.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* c-ada-spec.c: Include header files.
      	* c-ubsan.c: Likewise.
      	* c-warn.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* trans-types.c: Include header files.
      
      From-SVN: r250946
      Martin Liska committed
  31. 31 Jul, 2017 1 commit
  32. 16 Jul, 2017 1 commit
  33. 07 Jul, 2017 1 commit
    • ipa-comdats.c: Remove optimize check from gate. · 29f1e2b1
      	* ipa-comdats.c: Remove optimize check from gate.
      	* ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
      	for functions not optimized.
      	(ipa_fn_summary_read): Skip optimize check.
      	(ipa_fn_summary_write): Likewise.
      	* ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
      	is optimized.
      	* ipa-inline.c (can_inline_edge_p): Not optimized functions are
      	uninlinable.
      	(can_inline_edge_p): Check flag_pcc_struct_return for match.
      	(check_callers): Give up on caller which is not optimized.
      	(inline_small_functions): Likewise.
      	(ipa_inline): Do not give up when not optimizing.
      	* ipa-visbility.c (function_and_variable_visibility): Do not optimize
      	away unoptimizes cdtors.
      	(whole_program_function_and_variable_visibility): Do
      	ipa_discover_readonly_nonaddressable_vars in LTO mode.
      	* ipa.c (process_references): Do not check optimize.
      	(symbol_table::remove_unreachable_nodes): Update optimize check.
      	(set_writeonly_bit): Update optimize check.
      	(pass_ipa_cdtor_merge::gate): Do not check optimize.
      	(pass_ipa_single_use::gate): Remove.
      
      From-SVN: r250048
      Jan Hubicka committed