1. 14 Feb, 2014 1 commit
    • re PR target/60179 (target optimization attribute streaming is broken) · 1966fd99
      2014-02-14  Richard Biener  <rguenther@suse.de>
      
      	PR lto/60179
      	* lto-streamer-out.c (DFS_write_tree_body): Do not follow
      	DECL_FUNCTION_SPECIFIC_TARGET.
      	(hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
      	* tree-streamer-out.c (pack_ts_target_option): Remove.
      	(streamer_pack_tree_bitfields): Do not stream
      	TS_TARGET_OPTION.
      	(write_ts_function_decl_tree_pointers): Do not stream
      	DECL_FUNCTION_SPECIFIC_TARGET.
      	* tree-streamer-in.c (unpack_ts_target_option): Remove.
      	(unpack_value_fields): Do not stream TS_TARGET_OPTION.
      	(lto_input_ts_function_decl_tree_pointers): Do not stream
      	DECL_FUNCTION_SPECIFIC_TARGET.
      
      	lto/
      	* lto.c (compare_tree_sccs_1): Do not compare
      	DECL_FUNCTION_SPECIFIC_TARGET.
      	(lto_read_decls): Re-build DECL_FUNCTION_SPECIFIC_TARGET.
      
      From-SVN: r207783
      Richard Biener committed
  2. 12 Feb, 2014 1 commit
  3. 07 Feb, 2014 2 commits
    • * lto.c (unify_scc): Free CONSTRUCTOR_ELTS. · b7e85694
      From-SVN: r207619
      Jan Hubicka committed
    • re PR ipa/59469 (LLVM build failure with gcc LTO) · 96451279
      	PR ipa/59469
      	* lto-cgraph.c (lto_output_node): Use
      	symtab_get_symbol_partitioning_class.
      	(lto_output_varpool_node): likewise.
      	(symtab_get_symbol_partitioning_class): Move here from
      	lto/lto-partition.c
      	* cgraph.h (symbol_partitioning_class): Likewise.
      	(symtab_get_symbol_partitioning_class): Declare.
      
      	* lto-partition.c (symbol_class): Move to cgraph.h
      	(get_symbol_class): Move to symtab.c
      	(add_references_to_partition, add_symbol_to_partition_1,
      	lto_max_map, lto_1_to_1_map, lto_balanced_map,
      	lto_promote_cross_file_statics): Update.
      
      From-SVN: r207589
      Jan Hubicka committed
  4. 05 Feb, 2014 2 commits
    • lto-cgraph.c (asm_nodes_output): Make global. · f300e7b8
      	* lto-cgraph.c (asm_nodes_output): Make global.
      	* lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
      	* gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA
      	parameter
      	(driver_handle_option): Handle OPT_fwpa.
      
      	* lto.c (lto_parallelism): New static var.
      	(do_stream_out, wait_for_child, stream_out): New static functions.
      	(lto_wpa_write_files): Add support for parallel streaming.
      	(do_whole_program_analysis): Set parallelism.
      	* lang.opt (fwpa): Add parameter.
      	* lto-lang.c (lto_handle_option): Handle flag_wpa.
      	(lto_init): Update use of flag_wpa.
      	* lto-streamer.h (asm_nodes_output): Declare.
      
      From-SVN: r207515
      Jan Hubicka committed
    • lto.h (lto_global_var_decls): Remove. · f0f91770
      2014-02-05  Richard Biener  <rguenther@suse.de>
      
      	lto/
      	* lto.h (lto_global_var_decls): Remove.
      	* lto-lang.c (lto_init): Do not allocate lto_global_var_decls.
      	(lto_write_globals): Do nothing in WPA stage, gather globals from
      	the varpool here ...
      	* lto.c (lto_main): ... not here.
      	(materialize_cgraph): Do not call rest_of_decl_compilation
      	on the empty lto_global_var_decls vector.
      	(lto_global_var_decls): Remove.
      
      From-SVN: r207510
      Richard Biener committed
  5. 04 Feb, 2014 3 commits
    • ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY groups when we… · d665f8dd
      ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY groups when we know they are controlled by LTO.
      
      	* ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
      	groups when we know they are controlled by LTO.
      	* varasm.c (default_binds_local_p_1): If object is in other partition,
      	it will be resolved locally.
      
      	* lto-partition.c (get_symbol_class): Only unforced DECL_ONE_ONLY 
      	needs duplicating, not generic COMDAT.
      
      From-SVN: r207489
      Jan Hubicka committed
    • re PR lto/59723 (ICE: in lto_output_tree, at lto-streamer-out.c:1390 when… · c39276b8
      re PR lto/59723 (ICE: in lto_output_tree, at lto-streamer-out.c:1390 when compiling some Fortran tests with -flto)
      
      2014-02-04  Richard Biener  <rguenther@suse.de>
      
      	PR lto/59723
      	* lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
      	in function context local.
      	(lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
      	* lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
      	similar to LTO_imported_decl_ref.
      
      	lto/
      	* lto.c (mentions_vars_p): Handle NAMELIST_DECL.
      	(lto_fixup_prevailing_decls): Handle fixing up CONSTRUCTOR values.
      
      From-SVN: r207471
      Richard Biener committed
    • re PR ipa/59469 (LLVM build failure with gcc LTO) · 5f876ae7
      	PR ipa/59469
      	* lto-symtab.c (lto_cgraph_replace_node, lto_varpool_replace_node):
      	merge force_output and forced_by_abi flags.
      
      From-SVN: r207449
      Jan Hubicka committed
  6. 24 Jan, 2014 1 commit
    • Replace flag_enable_cilkplus with flag_cilkplus. · b72271b9
      gcc/ChangeLog
      +2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
      +
      +       * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
      +       flag_cilkplus.
      +       * builtins.def: Likewise.
      +       * cilk.h (fn_contains_cilk_spawn_p): Likewise.
      +       * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
      +       * ira.c (ira_setup_eliminable_regset): Likewise.
      +       * omp-low.c (gate_expand_omp): Likewise.
      +       (execute_lower_omp): Likewise.
      +       (diagnose_sb_0): Likewise.
      +       (gate_diagnose_omp_blocks): Likewise.
      +       (simd_clone_clauses_extract): Likewise.
      +       (gate): Likewise.
      +
      
      gcc/c-family/ChangeLog
      +2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
      +
      +       * c-common.c (c_define_builtins): Replaced flag_enable_cilkplus with
      +       flag_cilkplus.
      +       * c-pragma.c (init_pragma): Likewise.
      +       * c.opt: Likewise.
      +
      
      gcc/c/ChangeLog
      +2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
      +
      +       * c-parser.c (c_parser_declaration_or_fndef): Replaced
      +       flag_enable_cilkplus with flag_cilkplus.
      +       (c_parser_direct_declarator_inner): Likewise.
      +       (c_parser_attribute_any_word): Likewise.
      +       (c_parser_attributes): Likewise.
      +       (c_parser_compound_statement): Likewise.
      +       (c_parser_statement_after_labels): Likewise.
      +       (c_parser_if_statement): Likewise.
      +       (c_parser_switch_statement): Likewise.
      +       (c_parser_do_statement): Likewise.
      +       (c_parser_for_statement): Likewise.
      +       (c_parser_unary_expression): Likewise.
      +       (c_parser_postfix_expression): Likewise.
      +       (c_parser_postfix_expression_after_primary): Likewise.
      +       (c_parser_postfix_expression_after_primary): Likewise.
      +       (c_parser_omp_clause_name): Likewise.
      +       (c_finish_omp_declare_simd): Likewise.
      +       (c_parser_cilk_verify_simd): Likewise.
      +       * c-typeck.c (build_array_ref): Likewise.
      +       (build_function_call_vec): Likewise.
      +       (convert_arguments): Likewise.
      +       (build_compound_expr): Likewise.
      +       (c_finish_return): Likewise.
      +       (c_finish_if_stmt): Likewise.
      +       (c_finish_loop): Likewise.
      +       (build_binary_op): Likewise.
      +
      
      gcc/lto/ChangeLog
      +2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
      +
      +       * lto-lang.c (lto_init): Replaced flag_enable_cilkplus with
      +       flag_cilkplus.
      +
      
      From-SVN: r207064
      Balaji V. Iyer committed
  7. 09 Jan, 2014 2 commits
  8. 02 Jan, 2014 1 commit
  9. 17 Dec, 2013 1 commit
  10. 06 Dec, 2013 1 commit
    • asan.c: Remove struct tags when referring to class varpool_node. · 2c8326a5
      	* asan.c: Remove struct tags when referring to class varpool_node.
      	* cgraph.h: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* dbxout.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-ref-inline.h: Likewise.
      	* ipa-ref.h: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* ipa.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* lto-streamer.h: Likewise.
      	* passes.c: Likewise.
      	* toplev.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-emutls.c: Likewise.
      	* tree-pass.h: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      
      	* cp/decl2.c: Remove struct tags when referring to class varpool_node.
      
      	* lto/lto.c: Remove struct tags when referring to class varpool_node.
      	* lto/lto-partition.c: Likewise.
      	* lto/lto-symtab.c: Likewise.
      
      From-SVN: r205733
      Oleg Endo committed
  11. 29 Nov, 2013 2 commits
    • re PR lto/59326 (FAIL: gcc.dg/vect/vect-simd-clone-*.c) · e06f9964
      	PR lto/59326
      	* omp-low.c (simd_clone_create): Return NULL if for definition
      	!cgraph_function_with_gimple_body_p (old_node).  Call cgraph_get_body
      	before calling cgraph_function_versioning.
      	(expand_simd_clones): Look for "omp declare simd" attribute first.
      	Don't check targetm.simd_clone.compute_vecsize_and_simdlen here.
      	Punt if node->global.inlined_to.
      	(pass_omp_simd_clone::gate): Also enable if in_lto_p && !flag_wpa.
      	Disable pass if targetm.simd_clone.compute_vecsize_and_simdlen is NULL.
      	* lto-streamer-out.c (hash_tree): Handle OMP_CLAUSE.
      lto/
      	* lto.c (compare_tree_sccs_1): Handle OMP_CLAUSE.
      testsuite/
      	* gcc.dg/vect/vect-simd-clone-12.c: New test.
      	* gcc.dg/vect/vect-simd-clone-12a.c: New test.
      	* gcc.dg/vect/vect-simd-clone-10a.c: Remove extern keywords.
      
      Co-Authored-By: Richard Biener <rguenther@suse.de>
      
      From-SVN: r205514
      Jakub Jelinek committed
    • re PR lto/59326 (FAIL: gcc.dg/vect/vect-simd-clone-*.c) · c193f58b
      	PR lto/59326
      	* tree-core.h (enum omp_clause_schedule_kind): Add
      	OMP_CLAUSE_SCHEDULE_LAST.
      	(enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_LAST.
      	(enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_LAST.
      	(enum omp_clause_map_kind): Add OMP_CLAUSE_MAP_LAST.
      	(enum omp_clause_proc_bind_kind): Add OMP_CLAUSE_PROC_BIND_LAST.
      	* lto-streamer-out.c (lto_is_streamable): Allow streaming
      	OMP_CLAUSE.
      	(DFS_write_tree_body): Handle OMP_CLAUSE.
      	* tree-streamer-out.c (pack_ts_omp_clause_value_fields): New
      	function.
      	(streamer_pack_tree_bitfields): Call it for OMP_CLAUSE.
      	(write_ts_omp_clause_tree_pointers): New function.
      	(streamer_write_tree_body): Call it for OMP_CLAUSE.
      	(streamer_write_tree_header): For OMP_CLAUSE stream OMP_CLAUSE_CODE.
      	* tree-streamer-in.c (unpack_ts_omp_clause_value_fields): New
      	function.
      	(unpack_value_fields): Call it for OMP_CLAUSE.
      	(streamer_alloc_tree): Handle OMP_CLAUSE.
      	(lto_input_ts_omp_clause_tree_pointers): New function.
      	(streamer_read_tree_body): Call it for OMP_CLAUSE.
      lto/
      	* lto.c (mentions_vars_p_omp_clause): New function.
      	(mentions_vars_p): Call it for OMP_CLAUSE.  Remove break;
      	after return stmts.
      
      From-SVN: r205512
      Jakub Jelinek committed
  12. 22 Nov, 2013 1 commit
    • gimple.h: Remove all includes. · 2fb9a547
      
      	* gimple.h: Remove all includes.
      	(recalculate_side_effects): Move prototype to gimplify.h.
      	* Makefile.in (PLUGIN_HEADERS): Add flattened gimple.h includes.
      	* gengtype.c (open_base_files): Add gimple.h include list.
      	* gimplify.h (recalculate_side_effects): Relocate prototype here.
      	* gimple.c: Adjust include list.
      	(recalculate_side_effects): Move to gimplify.c.
      	* gimplify.c: Adjust include list.
      	(recalculate_side_effects): Relocate from gimple.c.
      	* alias.c: Add required include files removed from gimple.h.
      	* asan.c: Likewise.
      	* builtins.c: Likewise.
      	* calls.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* cilk-common.c: Likewise.
      	* data-streamer.c: Likewise.
      	* data-streamer-in.c: Likewise.
      	* data-streamer-out.c: Likewise.
      	* dse.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* gimple-builder.c: Likewise.
      	* gimple-expr.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple-ssa-isolate-paths.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimple-streamer-in.c: Likewise.
      	* gimple-streamer-out.c: Likewise.
      	* gimple-walk.c: Likewise.
      	* gimplify-me.c: Likewise.
      	* graphite-blocking.c: Likewise.
      	* graphite.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* graphite-dependences.c: Likewise.
      	* graphite-interchange.c: Likewise.
      	* graphite-optimize-isl.c: Likewise.
      	* graphite-poly.c: Likewise.
      	* graphite-scop-detection.c: Likewise.
      	* graphite-sese-to-poly.c: Likewise.
      	* internal-fn.c: Likewise.
      	* ipa.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* langhooks.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-compress.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* omp-low.c: Likewise.
      	* opts-global.c: Likewise.
      	* passes.c: Likewise.
      	* predict.c: Likewise.
      	* profile.c: Likewise.
      	* sese.c: Likewise.
      	* stmt.c: Likewise.
      	* stor-layout.c: Likewise.
      	* symtab.c: Likewise.
      	* targhooks.c: Likewise.
      	* toplev.c: Likewise.
      	* tracer.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-emutls.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-stdarg.c: Likewise.
      	* tree-streamer.c: Likewise.
      	* tree-streamer-in.c: Likewise.
      	* tree-streamer-out.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tsan.c: Likewise.
      	* ubsan.c: Likewise.
      	* value-prof.c: Likewise.
      	* varpool.c: Likewise.
      	* var-tracking.c: Likewise.
      	* vtable-verify.c: Likewise.
      
      	* ada/gcc-interface/trans.c: Add required include files from gimple.h.
      
      	* c/c-typeck.c: Add required include files from gimple.h.
      
      	* c-family/c-common.c: Add required include files from gimple.h.
      	* c-family/c-gimplify.c: Likewise
      	* c-family/cilk.c: Likewise
      
      	* cp/class.c: Add required include files from gimple.h.
      	* cp/cp-gimplify.c: Likewise
      	* cp/decl2.c: Likewise
      	* cp/init.c: Likewise
      	* cp/optimize.c: Likewise
      	* cp/pt.c: Likewise
      	* cp/semantics.c: Likewise
      	* cp/tree.c: Likewise
      	* cp/typeck.c: Likewise
      	* cp/vtable-class-hierarchy.c: Likewise
      
      	* fortran/trans.c: Add required include files from gimple.h.
      	* fortran/trans-expr.c: Likewise
      	* fortran/trans-openmp.c: Likewise
      
      	* go/gofrontend/expressions.cc: Add required include files from
      	gimple.h.
      	* go/gofrontend/gogo-tree.cc: Likewise
      	* go/gofrontend/types.cc: Likewise
      	* go/go-gcc.cc: Likewise
      	* go/go-lang.c: Likewise
      
      	* java/java-gimplify.c: Add required include files from gimple.h.
      
      	* lto/lto.c: Add required include files from gimple.h.
      	* lto/lto-lang.c: Likewise
      	* lto/lto-object.c: Likewise
      	* lto/lto-partition.c: Likewise
      	* lto/lto-symtab.c: Likewise
      
      	* objc/objc-act.c: Add required include files from gimple.h.
      
      	* config/darwin.c: Add required include files removed from gimple.h.
      	* config/aarch64/aarch64-builtins.c: Likewise.
      	* config/aarch64/aarch64.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/i386/winnt.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/sh/sh.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/xtensa/xtensa.c: Likewise.
      
      	* testsuite/gcc.dg/plugin/finish_unit_plugin.c: Add required include
      	files removed from gimple.h.
      	* testsuite/gcc.dg/plugin/ggcplug.c: Likewise.
      	* testsuite/gcc.dg/plugin/one_time_plugin.c: Likewise.
      	* testsuite/gcc.dg/plugin/selfassign.c: Likewise.
      	* testsuite/gcc.dg/plugin/start_unit_plugin.c: Likewise.
      	* testsuite/g++.dg/plugin/selfassign.c: Likewise.
      
      From-SVN: r205272
      Andrew MacLeod committed
  13. 19 Nov, 2013 1 commit
    • Factor unrelated declarations out of tree.h. · d8a2d370
      This patch applies the rule that functions defined in FOO.c must be
      declared in FOO.h. One of the worst offenders in the code base is
      tree.h, unsurprisingly.
      
      The patch creates several new headers: attribs.h calls.h fold-const.h
      gcc-symtab.h print-rtl.h print-tree.h stmt.h stor-layout.h stringpool.h
      tree-nested.h tree-object-size.h varasm.h.
      
      Functions in each corresponding .c file got moved to those headers and
      others that already existed. I wanted to make this patch as mechanical
      as possible, so I made no attempt to fix problems like having
      build_addr defined in tree-inline.c. I left that for later.
      
      There were some declarations that I could not move out of tree.h
      because of header poisoning or the use of target macros. We forbid the
      inclusion of things like expr.h from FE files. While that's a
      reasonable idea, the FE file *still* manage to at expr.c functionality
      because the declarations they want to use were defined in tree.h.
      
      The affected files are builtins.h, emit-rtl.h and expr.h.
      
      If that functionality is allowed to be accessed from the FEs,
      then I will later move those functions out of expr.c into tree.c.
      I have moved these declarations to the bottom of tree.h so they
      are easy to identify later.
      
      There is a namespace collision with libcpp. The file gcc/symtab.c
      cannot use gcc/symtab.h because the #include command picks up
      libcpp/include/symtab.h first. So I named this file gcc-symtab.h
      for now.
      
      Finally, I added a new header to PLUGIN_HEADERS to account for the
      tree.h refactoring. I did not add all headers factored out of tree.h
      because it is unclear (and impossible to tell) what plugins need.
      This adds the one header used by the plugins in the testsuite.
      
      This will be changing quite dramatically as we progress with the header
      refactoring.
      
      This patch should offer some minimal incremental build advantages
      by reducing the size of tree.h. Changes that would otherwise
      affected tree.h, will now go to other headers which are less
      frequently included.
      
      	* tree.h: Include fold-const.h.
      	(aggregate_value_p): Moved to function.h.
      	(alloca_call_p): Moved to calls.h.
      	(allocate_struct_function): Moved to function.h.
      	(apply_tm_attr): Moved to attribs.h.
      	(array_at_struct_end_p): Moved to expr.h.
      	(array_ref_element_size): Moved to tree-dfa.h.
      	(array_ref_low_bound): Moved to tree-dfa.h.
      	(array_ref_up_bound): Moved to tree.h.
      	(assemble_alias): Moved to cgraph.h.
      	(bit_from_pos): Moved to stor-layout.h.
      	(build_addr): Moved to tree-nested.h.
      	(build_duplicate_type): Moved to tree-inline.h.
      	(build_fold_addr_expr): Moved to fold-const.h.
      	(build_fold_addr_expr_with_type): Moved to fold-const.h.
      	(build_fold_addr_expr_with_type_loc): Moved to fold-const.h.
      	(build_fold_indirect_ref): Moved to fold-const.h.
      	(build_fold_indirect_ref_loc): Moved to fold-const.h.
      	(build_personality_function): Moved to tree.h.
      	(build_range_check): Moved to fold-const.h.
      	(build_simple_mem_ref): Moved to fold-const.h.
      	(build_simple_mem_ref_loc): Moved to fold-const.h.
      	(build_tm_abort_call): Moved to trans-mem.h.
      	(byte_from_pos): Moved to stor-layout.h.
      	(call_expr_flags): Moved to calls.h.
      	(can_move_by_pieces): Moved to expr.h.
      	(categorize_ctor_elements): Moved to expr.h.
      	(change_decl_assembler_name): Moved to gcc-symtab.h.
      	(combine_comparisons): Moved to fold-const.h.
      	(complete_ctor_at_level_p): Moved to tree.h.
      	(component_ref_field_offset): Moved to tree-dfa.h.
      	(compute_builtin_object_size): Moved to tree-object-size.h.
      	(compute_record_mode): Moved to stor-layout.h.
      	(constant_boolean_node): Moved to fold-const.h.
      	(constructor_static_from_elts_p): Moved to varasm.h.
      	(cxx11_attribute_p): Moved to attribs.h.
      	(debug_body): Moved to print-tree.h.
      	(debug_find_tree): Moved to tree-inline.h.
      	(debug_fold_checksum): Moved to fold-const.h.
      	(debug_head): Moved to print-tree.h.
      	(debug_head): Moved to print-tree.h.
      	(debug_raw): Moved to print-tree.h.
      	(debug_tree): Moved to print-tree.h.
      	(debug_vec_tree): Moved to print-tree.h.
      	(debug_verbose): Moved to print-tree.h.
      	(debug_verbose): Moved to print-tree.h.
      	(decl_attributes): Moved to attribs.h.
      	(decl_binds_to_current_def_p): Moved to varasm.h.
      	(decl_default_tls_model): Moved to varasm.h.
      	(decl_replaceable_p): Moved to varasm.h.
      	(div_if_zero_remainder): Moved to fold-const.h.
      	(double_int mem_ref_offset): Moved to fold-const.h.
      	(dump_addr): Moved to print-tree.h.
      	(element_precision): Moved to machmode.h.
      	(expand_dummy_function_end): Moved to function.h.
      	(expand_function_end): Moved to function.h.
      	(expand_function_start): Moved to function.h.
      	(expand_label): Moved to stmt.h.
      	(expr_first): Moved to tree-iterator.h.
      	(expr_last): Moved to tree-iterator.h.
      	(finalize_size_functions): Moved to stor-layout.h.
      	(finish_builtin_struct): Moved to stor-layout.h.
      	(finish_record_layout): Moved to stor-layout.h.
      	(fixup_signed_type): Moved to stor-layout.h.
      	(fixup_unsigned_type): Moved to stor-layout.h.
      	(flags_from_decl_or_type): Moved to calls.h.
      	(fold): Moved to fold-const.h.
      	(fold_abs_const): Moved to fold-const.h.
      	(fold_binary): Moved to fold-const.h.
      	(fold_binary_loc): Moved to fold-const.h.
      	(fold_binary_to_constant): Moved to fold-const.h.
      	(fold_build1): Moved to fold-const.h.
      	(fold_build1_initializer_loc): Moved to fold-const.h.
      	(fold_build1_loc): Moved to fold-const.h.
      	(fold_build1_stat_loc): Moved to fold-const.h.
      	(fold_build2): Moved to fold-const.h.
      	(fold_build2_initializer_loc): Moved to fold-const.h.
      	(fold_build2_loc): Moved to fold-const.h.
      	(fold_build2_stat_loc): Moved to fold-const.h.
      	(fold_build3): Moved to fold-const.h.
      	(fold_build3_loc): Moved to fold-const.h.
      	(fold_build3_stat_loc): Moved to fold-const.h.
      	(fold_build_call_array): Moved to fold-const.h.
      	(fold_build_call_array_initializer): Moved to fold-const.h.
      	(fold_build_call_array_initializer_loc): Moved to fold-const.h.
      	(fold_build_call_array_loc): Moved to fold-const.h.
      	(fold_build_cleanup_point_expr): Moved to fold-const.h.
      	(fold_convert): Moved to fold-const.h.
      	(fold_convert_loc): Moved to fold-const.h.
      	(fold_convertible_p): Moved to fold-const.h.
      	(fold_defer_overflow_warnings): Moved to fold-const.h.
      	(fold_deferring_overflow_warnings_p): Moved to fold-const.h.
      	(fold_fma): Moved to fold-const.h.
      	(fold_ignored_result): Moved to fold-const.h.
      	(fold_indirect_ref): Moved to fold-const.h.
      	(fold_indirect_ref_1): Moved to fold-const.h.
      	(fold_indirect_ref_loc): Moved to fold-const.h.
      	(fold_read_from_constant_string): Moved to fold-const.h.
      	(fold_real_zero_addition_p): Moved to fold-const.h.
      	(fold_single_bit_test): Moved to fold-const.h.
      	(fold_strip_sign_ops): Moved to fold-const.h.
      	(fold_ternary): Moved to fold-const.h.
      	(fold_ternary_loc): Moved to fold-const.h.
      	(fold_unary): Moved to tree-data-ref.h.
      	(fold_unary_ignore_overflow): Moved to fold-const.h.
      	(fold_unary_ignore_overflow_loc): Moved to fold-const.h.
      	(fold_unary_loc): Moved to fold-const.h.
      	(fold_unary_to_constant): Moved to fold-const.h.
      	(fold_undefer_and_ignore_overflow_warnings): Moved to fold-const.h.
      	(fold_undefer_overflow_warnings): Moved to fold-const.h.
      	(folding_initializer): Moved to fold-const.h.
      	(free_temp_slots): Moved to function.h.
      	(generate_setjmp_warnings): Moved to function.h.
      	(get_attribute_name): Moved to attribs.h.
      	(get_identifier): Moved to stringpool.h.
      	(get_identifier_with_length): Moved to stringpool.h.
      	(get_inner_reference): Moved to tree.h.
      	(gimple_alloca_call_p): Moved to calls.h.
      	(gimplify_parameters): Moved to function.h.
      	(highest_pow2_factor): Moved to expr.h.
      	(indent_to): Moved to print-tree.h.
      	(init_attributes): Moved to attribs.h.
      	(init_dummy_function_start): Moved to function.h.
      	(init_function_start): Moved to function.h.
      	(init_inline_once): Moved to tree-inline.h.
      	(init_object_sizes): Moved to tree-object-size.h.
      	(init_temp_slots): Moved to function.h.
      	(init_tree_optimization_optabs): Moved to optabs.h.
      	(initialize_sizetypes): Moved to stor-layout.h.
      	(initializer_constant_valid_for_bitfield_p): Moved to varasm.h.
      	(initializer_constant_valid_p): Moved to varasm.h.
      	(int_const_binop): Moved to fold-const.h.
      	(internal_reference_types): Moved to stor-layout.h.
      	(invert_tree_comparison): Moved to fold-const.h.
      	(invert_truthvalue): Moved to fold-const.h.
      	(invert_truthvalue_loc): Moved to fold-const.h.
      	(is_tm_ending_fndecl): Moved to trans-mem.h.
      	(is_tm_may_cancel_outer): Moved to trans-mem.h.
      	(is_tm_pure): Moved to trans-mem.h.
      	(is_tm_safe): Moved to trans-mem.h.
      	(layout_decl): Moved to stor-layout.h.
      	(layout_type): Moved to stor-layout.h.
      	(lookup_attribute_spec): Moved to attribs.h.
      	(make_accum_type): Moved to stor-layout.h.
      	(make_decl_one_only): Moved to varasm.h.
      	(make_decl_rtl): Moved to tree.h.
      	(make_decl_rtl_for_debug): Moved to varasm.h.
      	(make_fract_type): Moved to stor-layout.h.
      	(make_or_reuse_sat_signed_accum_type): Moved to stor-layout.h.
      	(make_or_reuse_sat_signed_fract_type): Moved to stor-layout.h.
      	(make_or_reuse_sat_unsigned_accum_type): Moved to stor-layout.h.
      	(make_or_reuse_sat_unsigned_fract_type): Moved to stor-layout.h.
      	(make_or_reuse_signed_accum_type): Moved to stor-layout.h.
      	(make_or_reuse_signed_fract_type): Moved to stor-layout.h.
      	(make_or_reuse_unsigned_accum_type): Moved to stor-layout.h.
      	(make_or_reuse_unsigned_fract_type): Moved to stor-layout.h.
      	(make_range): Moved to fold-const.h.
      	(make_range_step): Moved to fold-const.h.
      	(make_sat_signed_accum_type): Moved to stor-layout.h.
      	(make_sat_signed_fract_type): Moved to stor-layout.h.
      	(make_sat_unsigned_accum_type): Moved to stor-layout.h.
      	(make_sat_unsigned_fract_type): Moved to stor-layout.h.
      	(make_signed_accum_type): Moved to stor-layout.h.
      	(make_signed_fract_type): Moved to stor-layout.h.
      	(make_signed_type): Moved to stor-layout.h.
      	(make_unsigned_accum_type): Moved to stor-layout.h.
      	(make_unsigned_fract_type): Moved to stor-layout.h.
      	(make_unsigned_type): Moved to stor-layout.h.
      	(mark_decl_referenced): Moved to varasm.h.
      	(mark_referenced): Moved to varasm.h.
      	(may_negate_without_overflow_p): Moved to fold-const.h.
      	(maybe_get_identifier): Moved to stringpool.h.
      	(merge_ranges): Moved to fold-const.h.
      	(merge_weak): Moved to varasm.h.
      	(mode_for_size_tree): Moved to stor-layout.h.
      	(multiple_of_p): Moved to fold-const.h.
      	(must_pass_in_stack_var_size): Moved to calls.h.
      	(must_pass_in_stack_var_size_or_pad): Moved to calls.h.
      	(native_encode_expr): Moved to fold-const.h.
      	(native_interpret_expr): Moved to fold-const.h.
      	(non_lvalue): Moved to fold-const.h.
      	(non_lvalue_loc): Moved to fold-const.h.
      	(normalize_offset): Moved to stor-layout.h.
      	(normalize_rli): Moved to stor-layout.h.
      	(notice_global_symbol): Moved to varasm.h.
      	(omit_one_operand): Moved to fold-const.h.
      	(omit_one_operand_loc): Moved to fold-const.h.
      	(omit_two_operands): Moved to fold-const.h.
      	(omit_two_operands_loc): Moved to fold-const.h.
      	(operand_equal_p): Moved to tree-data-ref.h.
      	(parse_input_constraint): Moved to stmt.h.
      	(parse_output_constraint): Moved to stmt.h.
      	(place_field): Moved to stor-layout.h.
      	(pop_function_context): Moved to function.h.
      	(pop_temp_slots): Moved to function.h.
      	(pos_from_bit): Moved to stor-layout.h.
      	(preserve_temp_slots): Moved to function.h.
      	(print_node): Moved to print-tree.h.
      	(print_node_brief): Moved to print-tree.h.
      	(print_rtl): Moved to rtl.h.
      	(process_pending_assemble_externals): Moved to varasm.h.
      	(ptr_difference_const): Moved to fold-const.h.
      	(push_function_context): Moved to function.h.
      	(push_struct_function): Moved to function.h.
      	(push_temp_slots): Moved to function.h.
      	(record_tm_replacement): Moved to trans-mem.h.
      	(relayout_decl): Moved to stor-layout.h.
      	(resolve_asm_operand_names): Moved to stmt.h.
      	(resolve_unique_section): Moved to varasm.h.
      	(rli_size_so_far): Moved to stor-layout.h.
      	(rli_size_unit_so_far): Moved to stor-layout.h.
      	(round_down): Moved to fold-const.h.
      	(round_down_loc): Moved to fold-const.h.
      	(round_up): Moved to fold-const.h.
      	(round_up_loc): Moved to fold-const.h.
      	(set_decl_incoming_rtl): Moved to emit-rtl.h.
      	(set_decl_rtl): Moved to tree.h.
      	(set_min_and_max_values_for_integral_type): Moved to stor-layout.h.
      	(set_user_assembler_name): Moved to varasm.h.
      	(setjmp_call_p): Moved to calls.h.
      	(size_binop): Moved to fold-const.h.
      	(size_binop_loc): Moved to fold-const.h.
      	(size_diffop): Moved to fold-const.h.
      	(size_diffop_loc): Moved to fold-const.h.
      	(size_int_kind): Moved to fold-const.h.
      	(stack_protect_epilogue): Moved to function.h.
      	(start_record_layout): Moved to stor-layout.h.
      	(supports_one_only): Moved to varasm.h.
      	(swap_tree_comparison): Moved to fold-const.h.
      	(tm_malloc_replacement): Moved to trans-mem.h.
      	(tree build_fold_addr_expr_loc): Moved to fold-const.h.
      	(tree build_invariant_address): Moved to fold-const.h.
      	(tree_binary_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_binary_nonzero_warnv_p): Moved to fold-const.h.
      	(tree_call_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_expr_nonnegative_p): Moved to fold-const.h.
      	(tree_expr_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_output_constant_def): Moved to varasm.h.
      	(tree_overlaps_hard_reg_set): Moved to stmt.h.
      	(tree_single_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_single_nonzero_warnv_p): Moved to fold-const.h.
      	(tree_swap_operands_p): Moved to fold-const.h.
      	(tree_unary_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_unary_nonzero_warnv_p): Moved to fold-const.h.
      	(update_alignment_for_field): Moved to stor-layout.h.
      	(use_register_for_decl): Moved to function.h.
      	(variable_size): Moved to rtl.h.
      	(vector_type_mode): Moved to stor-layout.h.
      	* cgraph.h: Corresponding changes.
      	* emit-rtl.h: Corresponding changes.
      	* expr.h: Corresponding changes.
      	* function.h: Corresponding changes.
      	* optabs.h: Corresponding changes.
      	* trans-mem.h: Corresponding changes.
      	Protect against multiple inclusion.
      	* tree-inline.h: Corresponding changes.
      	* tree-iterator.h: Corresponding changes.
      	* tree-dfa.h: Include expr.h.
      	* tree-ssanames.h: Include stringpool.h.
      	* attribs.h: New file.
      	* calls.h: New file.
      	* fold-const.h: New file.
      	* gcc-symtab.h: New file.
      	* print-rtl.h: New file.
      	* print-tree.h: New file.
      	* stmt.h: New file.
      	* stor-layout.h: New file.
      	* strinpool.h: New file.
      	* tree-nested.h: New file
      	* tree-object-size.h: New file.
      	* varasm.h: New file.
      	* Makefile.in (PLUGIN_HEADERS): Add stringpool.h.
      
      	* alias.c: Include varasm.h.
      	Include expr.h.
      	* asan.c: Include calls.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* attribs.c: Include stringpool.h.
      	Include attribs.h.
      	Include stor-layout.h.
      	* builtins.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	Include tree-object-size.h.
      	* calls.c: Include stor-layout.h.
      	Include varasm.h.
      	Include stringpool.h.
      	Include attribs.h.
      	* cfgexpand.c: Include stringpool.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	Include stmt.h.
      	Include print-tree.h.
      	* cgraph.c: Include varasm.h.
      	Include calls.h.
      	Include print-tree.h.
      	* cgraphclones.c: Include stringpool.h.
      	Include function.h.
      	Include emit-rtl.h.
      	Move inclusion of rtl.h earlier in the file.
      	* cgraphunit.c: Include varasm.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	* cilk-common.c: Include stringpool.h.
      	Include stor-layout.h.
      	* combine.c: Include stor-layout.h.
      	* config/aarch64/aarch64-builtins.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include calls.h.
      	* config/aarch64/aarch64.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/alpha/alpha.c: Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/arc/arc.c: Include varasm.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	Include calls.h.
      	* config/arm/arm.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/avr/avr-c.c: Include stor-layout.h.
      	* config/avr/avr-log.c: Include print-tree.h.
      	* config/avr/avr.c: Include print-tree.h.
      	Include calls.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	* config/bfin/bfin.c: Include varasm.h.
      	Include calls.h.
      	* config/c6x/c6x.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	Include stringpool.h.
      	* config/cr16/cr16.c: Include stor-layout.h.
      	Include calls.h.
      	* config/cris/cris.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include stmt.h.
      	* config/darwin.c: Include stringpool.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	* config/epiphany/epiphany.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	Include stringpool.h.
      	* config/fr30/fr30.c: Include stor-layout.h.
      	Include varasm.h.
      	* config/frv/frv.c: Include varasm.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	* config/h8300/h8300.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	Include stringpool.h.
      	* config/i386/i386.c: Include stringpool.h.
      	Include attribs.h.
      	Include calls.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* config/i386/winnt-cxx.c: Include stringpool.h.
      	Include attribs.h.
      	* config/i386/winnt.c: Include stringpool.h.
      	Include varasm.h.
      	* config/ia64/ia64-c.c: Include stringpool.h.
      	* config/ia64/ia64.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/iq2000/iq2000.c: Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/lm32/lm32.c: Include calls.h.
      	* config/m32c/m32c.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/m32r/m32r.c: Include stor-layout.h.
      	Include varasm.h.
      	Include stringpool.h.
      	Include calls.h.
      	* config/m68k/m68k.c: Include calls.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* config/mcore/mcore.c: Include stor-layout.h.
      	Include varasm.h.
      	Include stringpool.h.
      	Include calls.h.
      	* config/mep/mep.c: Include varasm.h.
      	Include calls.h.
      	Include stringpool.h.
      	Include stor-layout.h.
      	* config/microblaze/microblaze.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/mips/mips.c: Include varasm.h.
      	Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/mmix/mmix.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/mn10300/mn10300.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/moxie/moxie.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/msp430/msp430.c: Include stor-layout.h.
      	Include calls.h.
      	* config/nds32/nds32.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/pa/pa.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/pdp11/pdp11.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/picochip/picochip.c: Include calls.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	* config/rl78/rl78.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/rs6000/rs6000-c.c: Include stor-layout.h.
      	Include stringpool.h.
      	* config/rs6000/rs6000.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include print-tree.h.
      	Include varasm.h.
      	* config/rx/rx.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/s390/s390.c: Include print-tree.h.
      	Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/score/score.c: Include stringpool.h.
      	Include calls.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	* config/sh/sh-c.c: Include stringpool.h.
      	Include attribs.h.h.
      	* config/sh/sh.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/sol2-c.c: Include stringpool.h.
      	Include attribs.h.
      	* config/sol2-cxx.c: Include stringpool.h.
      	* config/sol2.c: Include stringpool.h.
      	Include varasm.h.
      	* config/sparc/sparc.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/spu/spu-c.c: Include stringpool.h.
      	* config/spu/spu.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/stormy16/stormy16.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/tilegx/tilegx.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/tilepro/tilepro.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/v850/v850-c.c: Include stringpool.h.
      	Include attribs.h.
      	* config/v850/v850.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/vax/vax.c: Include calls.h.
      	Include varasm.h.
      	* config/vms/vms.c: Include stringpool.h.
      	* config/vxworks.c: Include stringpool.h.
      	* config/xtensa/xtensa.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* convert.c: Include stor-layout.h.
      	* coverage.c: Include stringpool.h.
      	Include stor-layout.h.
      	* dbxout.c: Include varasm.h.
      	Include stor-layout.h.
      	* dojump.c: Include stor-layout.h.
      	* dse.c: Include stor-layout.h.
      	* dwarf2asm.c: Include stringpool.h.
      	Include varasm.h.
      	* dwarf2cfi.c: Include stor-layout.h.
      	* dwarf2out.c: Include rtl.h.
      	Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include function.h.
      	Include emit-rtl.h.
      	Move inclusion of rtl.h earlier in the file.
      	* emit-rtl.c: Include varasm.h.
      	* except.c: Include stringpool.h.
      	Include stor-layout.h.
      	* explow.c: Include stor-layout.h.
      	* expmed.c: Include stor-layout.h.
      	* expr.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include attribs.h.
      	Include varasm.h.
      	* final.c: Include varasm.h.
      	* fold-const.c: Include stor-layout.h.
      	Include calls.h.
      	Include tree-iterator.h.
      	* function.c: Include stor-layout.h.
      	Include varasm.h.
      	Include stringpool.h.
      	* genattrtab.c (write_header): Emit includes for varasm.h,
      	stor-layout.h and calls.h.
      	* genautomata.c (main): Likewise.
      	* genemit.c: Likewise.
      	* genopinit.c: Likewise.
      	* genoutput.c (output_prologue): Likewise.
      	* genpeep.c: Likewise.
      	* genpreds.c (write_insn_preds_c): Likewise.
      	* gengtype.c (open_base_files): Add stringpool.h.
      	* gimple-expr.c: Include stringpool.h.
      	Include stor-layout.h.
      	* gimple-fold.c: Include stringpool.h.
      	Include expr.h.
      	Include stmt.h.
      	Include stor-layout.h.
      	* gimple-low.c: Include tree-nested.h.
      	Include calls.h.
      	* gimple-pretty-print.c: Include stringpool.h.
      	* gimple-ssa-strength-reduction.c: Include stor-layout.h.
      	Include expr.h.
      	* gimple-walk.c: Include stmt.h.
      	* gimple.c: Include calls.h.
      	Include stmt.h.
      	Include stor-layout.h.
      	* gimplify.c: Include stringpool.h.
      	Include calls.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	Include stmt.h.
      	Include print-tree.h.
      	Include expr.h.
      	* gimplify-me.c: Include stmt.h
      	Include stor-layout.h
      	* internal-fn.c: Include stor-layout.h.
      	* ipa-devirt.c: Include print-tree.h.
      	Include calls.h.
      	* ipa-inline-analysis.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include print-tree.h.
      	* ipa-inline.c: Include trans-mem.h.
      	Include calls.h.
      	* ipa-prop.c: Include expr.h.
      	Include stor-layout.h.
      	Include print-tree.h.
      	* ipa-pure-const.c: Include print-tree.h.
      	Include calls.h.
      	* ipa-reference.c: Include calls.h.
      	* ipa-split.c: Include stringpool.h.
      	Include expr.h.
      	Include calls.h.
      	* ipa.c: Include calls.h.
      	Include stringpool.h.
      	* langhooks.c: Include stringpool.h.
      	Include attribs.h.
      	* lto-cgraph.c: Include stringpool.h.
      	* lto-streamer-in.c: Include stringpool.h.
      	* lto-streamer-out.c: Include stor-layout.h.
      	Include stringpool.h.
      	* omp-low.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include expr.h.
      	* optabs.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	* passes.c: Include varasm.h.
      	* predict.c: Include calls.h.
      	* print-rtl.c: Include print-tree.h.
      	* print-tree.c: Include varasm.h.
      	Include print-rtl.h.
      	Include stor-layout.h.
      	* realmpfr.c: Include stor-layout.h.
      	* reg-stack.c: Include varasm.h.
      	* sdbout.c: Include varasm.h.
      	Include stor-layout.h.
      	* simplify-rtx.c: Include varasm.h.
      	* stmt.c: Include varasm.h.
      	Include stor-layout.h.
      	* stor-layout.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	Include print-tree.h.
      	* symtab.c: Include rtl.h.
      	Include print-tree.h.
      	Include varasm.h.
      	Include function.h.
      	Include emit-rtl.h.
      	* targhooks.c: Include stor-layout.h.
      	Include varasm.h.
      	* toplev.c: Include varasm.h.
      	Include tree-inline.h.
      	* trans-mem.c: Include calls.h.
      	Include function.h.
      	Include rtl.h.
      	Include emit-rtl.h.
      	* tree-affine.c: Include expr.h.
      	* tree-browser.c: Include print-tree.h.
      	* tree-call-cdce.c: Include stor-layout.h.
      	* tree-cfg.c: Include trans-mem.h.
      	Include stor-layout.h.
      	Include print-tree.h.
      	* tree-complex.c: Include stor-layout.h.
      	* tree-data-ref.c: Include expr.h.
      	* tree-dfa.c: Include stor-layout.h.
      	* tree-eh.c: Include expr.h.
      	Include calls.h.
      	* tree-emutls.c: Include stor-layout.h.
      	Include varasm.h.
      	* tree-if-conv.c: Include stor-layout.h.
      	* tree-inline.c: Include stor-layout.h.
      	Include calls.h.
      	* tree-loop-distribution.c: Include stor-layout.h.
      	* tree-nested.c: Include stringpool.h.
      	Include stor-layout.h.
      	* tree-object-size.c: Include tree-object-size.h.
      	* tree-outof-ssa.c: Include stor-layout.h.
      	* tree-parloops.c: Include stor-layout.h.
      	Include tree-nested.h.
      	* tree-pretty-print.c: Include stor-layout.h.
      	Include expr.h.
      	* tree-profile.c: Include varasm.h.
      	Include tree-nested.h.
      	* tree-scalar-evolution.c: Include expr.h.
      	* tree-sra.c: Include stor-layout.h.
      	* tree-ssa-address.c: Include stor-layout.h.
      	* tree-ssa-ccp.c: Include stor-layout.h.
      	* tree-ssa-dce.c: Include calls.h.
      	* tree-ssa-dom.c: Include stor-layout.h.
      	* tree-ssa-forwprop.c: Include stor-layout.h.
      	* tree-ssa-ifcombine.c: Include stor-layout.h.
      	* tree-ssa-loop-ivopts.c: Include stor-layout.h.
      	* tree-ssa-loop-niter.c: Include calls.h.
      	Include expr.h.
      	* tree-ssa-loop-prefetch.c: Include stor-layout.h.
      	* tree-ssa-math-opts.c: Include stor-layout.h.
      	* tree-ssa-operands.c: Include stmt.h.
      	Include print-tree.h.
      	* tree-ssa-phiopt.c: Include stor-layout.h.
      	* tree-ssa-reassoc.c: Include stor-layout.h.
      	* tree-ssa-sccvn.c: Include stor-layout.h.
      	* tree-ssa-sink.c: Include stor-layout.h.
      	* tree-ssa-strlen.c: Include stor-layout.h.
      	* tree-ssa-structalias.c: Include stor-layout.h.
      	Include stmt.h.
      	* tree-ssa-tail-merge.c: Include stor-layout.h.
      	Include trans-mem.h.
      	* tree-ssa-uncprop.c: Include stor-layout.h.
      	* tree-ssa.c: Include stor-layout.h.
      	* tree-ssanames.c: Include stor-layout.h.
      	* tree-streamer-in.c: Include stringpool.h.
      	* tree-streamer-out.c: Include stor-layout.h.
      	* tree-switch-conversion.c: Include varasm.h.
      	Include stor-layout.h.
      	* tree-tailcall.c: Include stor-layout.h.
      	* tree-vect-data-refs.c: Include stor-layout.h.
      	* tree-vect-generic.c: Include stor-layout.h.
      	* tree-vect-loop.c: Include stor-layout.h.
      	* tree-vect-patterns.c: Include stor-layout.h.
      	* tree-vect-slp.c: Include stor-layout.h.
      	* tree-vect-stmts.c: Include stor-layout.h.
      	* tree-vectorizer.c: Include stor-layout.h.
      	* tree-vrp.c: Include stor-layout.h.
      	Include calls.h.
      	* tree.c: Include stor-layout.h.
      	Include calls.h.
      	Include attribs.h.
      	Include varasm.h.
      	* tsan.c: Include expr.h.
      	* ubsan.c: Include stor-layout.h.
      	Include stringpool.h.
      	* value-prof.c: Include tree-nested.h.
      	Include calls.h.
      	* var-tracking.c: Include varasm.h.
      	Include stor-layout.h.
      	* varasm.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include gcc-symtab.h.
      	Include varasm.h.
      	* varpool.c: Include varasm.h.
      	* vmsdbgout.c: Include varasm.h.
      	* xcoffout.c: Include varasm.h.
      
      ada/ChangeLog
      
      	* gcc-interface/decl.c: Include stringpool.h
      	Include stor-layout.h
      	* gcc-interface/misc.c: Include stor-layout.h
      	Include print-tree.h
      	* gcc-interface/trans.c: Include stringpool.h
      	Include stor-layout.h
      	Include stmt.h
      	Include varasm.h
      	* gcc-interface/utils.c: Include stringpool.h
      	Include stor-layout.h
      	Include attribs.h
      	Include varasm.h
      	* gcc-interface/utils2.c: Include stringpool.h
      	Include stor-layout.h
      	Include attribs.h
      	Include varasm.h
      
      c-family/ChangeLog
      
      	* c-common.c: Include fold-const.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include stringpool.h.
      	Include attribs.h.
      	Include varasm.h.
      	Include trans-mem.h.
      	* c-cppbuiltin.c: Include stor-layout.h.
      	Include stringpool.h.
      	* c-format.c: Include stringpool.h.
      	* c-lex.c: Include stringpool.h.
      	Include stor-layout.h.
      	* c-pragma.c: Include stringpool.h.
      	Include attribs.h.
      	Include varasm.h.
      	Include gcc-symtab.h.
      	* c-pretty-print.c: Include stor-layout.h.
      	Include attribs.h.
      	* cilk.c: Include stringpool.h.
      	Include calls.h.
      
      c/ChangeLog
      
      	* c-decl.c: Include print-tree.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include attribs.h.
      	Include stringpool.h.
      	* c-lang.c: Include fold-const.h.
      	* c-parser.c: Include stringpool.h.
      	Include attribs.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include trans-mem.h.
      	* c-typeck.c: Include stor-layout.h.
      	Include trans-mem.h.
      	Include varasm.h.
      	Include stmt.h.
      
      cp/ChangeLog
      
      	* call.c: Include stor-layout.h.
      	Include trans-mem.h.
      	Include stringpool.h.
      	* class.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include attribs.h.
      	* cp-gimplify.c: Include stor-layout.h.
      	* cvt.c: Include stor-layout.h.
      	* decl.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include attribs.h.
      	Include calls.h.
      	* decl2.c: Include stringpool.h.
      	Include varasm.h.
      	Include attribs.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* error.c: Include stringpool.h.
      	* except.c: Include stringpool.h.
      	Include trans-mem.h.
      	Include attribs.h.
      	* init.c: Include stringpool.h.
      	Include varasm.h.
      	* lambda.c: Include stringpool.h.
      	* lex.c: Include stringpool.h.
      	* mangle.c: Include stor-layout.h.
      	Include stringpool.h.
      	* method.c: Include stringpool.h.
      	Include varasm.h.
      	* name-lookup.c: Include stringpool.h.
      	Include print-tree.h.
      	Include attribs.h.
      	* optimize.c: Include stringpool.h.
      	* parser.c: Include print-tree.h.
      	Include stringpool.h.
      	Include attribs.h.
      	Include trans-mem.h.
      	* pt.c: Include stringpool.h.
      	Include varasm.h.
      	Include attribs.h.
      	Include stor-layout.h.
      	* ptree.c: Include print-tree.h.
      	* repo.c: Include stringpool.h.
      	* rtti.c: Include stringpool.h.
      	Include stor-layout.h.
      	* semantics.c: Include stmt.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	* tree.c: Include stor-layout.h.
      	Include print-tree.h.
      	Include tree-iterator.h.
      	* typeck.c: Include stor-layout.h.
      	Include varasm.h.
      	* typeck2.c: Include stor-layout.h.
      	Include varasm.h.
      	* vtable-class-hierarchy.c: Include stringpool.h.
      	Include stor-layout.h.
      
      fortran/ChangeLog
      
      	* decl.c: Include stringpool.h.
      	* iresolve.c: Include stringpool.h.
      	* match.c: Include stringpool.h.
      	* module.c: Include stringpool.h.
      	* target-memory.c: Include stor-layout.h.
      	* trans-common.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* trans-const.c: Include stor-layout.h.
      	* trans-decl.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include attribs.h.
      	* trans-expr.c: Include stringpool.h.
      	* trans-intrinsic.c: Include stringpool.h.
      	Include tree-nested.h.
      	Include stor-layout.h.
      	* trans-io.c: Include stringpool.h.
      	Include stor-layout.h.
      	* trans-openmp.c: Include stringpool.h.
      	* trans-stmt.c: Include stringpool.h.
      	* trans-types.c: Include stor-layout.h.
      	Include stringpool.h.
      	* trans.c: Include stringpool.h.
      
      go/ChangeLog
      
      	* go-backend.c: Include stor-layout.h.
      	* go-gcc.cc: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* go-lang.c: Include stor-layout.h.
      
      java/ChangeLog
      
      	* builtins.c: Include stor-layout.h.
      	Include stringpool.h.
      	* class.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* constants.c: Include stringpool.h.
      	Include stor-layout.h.
      	* decl.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	* except.c: Include stringpool.h.
      	Include stor-layout.h.
      	* expr.c: Include stringpool.h.
      	Include stor-layout.h.
      	* jcf-parse.c: Include stringpool.h.
      	* mangle.c: Include stringpool.h.
      	* resource.c: Include stringpool.h.
      	Include stor-layout.h.
      	* typeck.c: Include stor-layout.h.
      	Include stringpool.h.
      	* verify-glue.c: Include stringpool.h.
      
      lto/ChangeLog
      	* lto-lang.c: Include stringpool.h.
      	Include stor-layout.h.
      	* lto-partition.c: Include gcc-symtab.h.
      	* lto.c: Include stor-layout.h.
      
      objc/ChangeLog
      	* objc-act.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include attribs.h.
      	* objc-encoding.c: Include stringpool.h.
      	Include stor-layout.h.
      	* objc-gnu-runtime-abi-01.c: Include stringpool.h.
      	* objc-next-runtime-abi-01.c:
      	Include stringpool.h.
      	* objc-next-runtime-abi-02.c: Include stringpool.h.
      	* objc-runtime-shared-support.c: Include stringpool.h.
      
      testsuite/ChangeLog
      
      	* gcc.dg/plugin/selfassign.c: Include stringpool.h.
      	* gcc.dg/plugin/start_unit_plugin.c: Likewise.
      
      From-SVN: r205023
      Diego Novillo committed
  14. 18 Nov, 2013 1 commit
  15. 11 Nov, 2013 1 commit
  16. 31 Oct, 2013 1 commit
    • Automated part of renaming of symtab_node_base to symtab_node. · 5e20cdc9
      gcc/
      
      	Patch autogenerated by rename_symtab.py from
      	https://github.com/davidmalcolm/gcc-refactoring-scripts
      	revision 58bb219cc090b2f4516a9297d868c245495ee622
      	with ChangeLog entry fixed up by hand.
      
      	* cgraph.c (x_cgraph_nodes_queue): Rename symtab_node_base to
      	symtab_node.
      	(cgraph_node_for_asm): Likewise.
      	* cgraph.h (symtab_node_base): Likewise.
      	(cgraph_node): Likewise.
      	(varpool_node): Likewise.
      	(is_a_helper <cgraph_node>::test): Likewise.
      	(is_a_helper <varpool_node>::test): Likewise.
      	(symtab_nodes): Likewise.
      	(symtab_register_node): Likewise.
      	(symtab_unregister_node): Likewise.
      	(symtab_remove_node): Likewise.
      	(symtab_get_node): Likewise.
      	(symtab_node_for_asm): Likewise.
      	(symtab_node_asm_name): Likewise.
      	(symtab_node_name): Likewise.
      	(symtab_insert_node_to_hashtable): Likewise.
      	(symtab_add_to_same_comdat_group): Likewise.
      	(symtab_dissolve_same_comdat_group_list): Likewise.
      	(dump_symtab_node): Likewise.
      	(debug_symtab_node): Likewise.
      	(dump_symtab_base): Likewise.
      	(verify_symtab_node): Likewise.
      	(verify_symtab_base): Likewise.
      	(symtab_used_from_object_file_p): Likewise.
      	(symtab_alias_ultimate_target): Likewise.
      	(symtab_resolve_alias): Likewise.
      	(fixup_same_cpp_alias_visibility): Likewise.
      	(symtab_for_node_and_aliases): Likewise.
      	(symtab_nonoverwritable_alias): Likewise.
      	(availability symtab_node_availability): Likewise.
      	(symtab_semantically_equivalent_p): Likewise.
      	(fixup_same_cpp_alias_visibility): Likewise.
      	(symtab_prevail_in_asm_name_hash): Likewise.
      	(cgraph): Likewise.
      	(varpool): Likewise.
      	(varpool_first_variable): Likewise.
      	(varpool_next_variable): Likewise.
      	(varpool_first_static_initializer): Likewise.
      	(varpool_next_static_initializer): Likewise.
      	(varpool_first_defined_variable): Likewise.
      	(varpool_next_defined_variable): Likewise.
      	(cgraph_first_defined_function): Likewise.
      	(cgraph_next_defined_function): Likewise.
      	(cgraph_first_function): Likewise.
      	(cgraph_next_function): Likewise.
      	(cgraph_first_function_with_gimple_body): Likewise.
      	(cgraph_next_function_with_gimple_body): Likewise.
      	(symtab_alias_target): Likewise.
      	(symtab_real_symbol_p): Likewise.
      	(symtab_can_be_discarded): Likewise.
      	* cgraphbuild.c (mark_address): Likewise.
      	(mark_load): Likewise.
      	(mark_store): Likewise.
      	* cgraphunit.c (decide_is_symbol_needed): Likewise.
      	(first): Likewise.
      	(enqueue_node): Likewise.
      	(referred_to_p): Likewise.
      	(cgraph_process_same_body_aliases): Likewise.
      	(analyze_functions): Likewise.
      	(handle_alias_pairs): Likewise.
      	(output_weakrefs): Likewise.
      	(compile): Likewise.
      	* gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
      	* ipa-inline-analysis.c (inline_write_summary): Likewise.
      	* ipa-prop.c (remove_described_reference): Likewise.
      	(try_decrement_rdesc_refcount): Likewise.
      	(ipa_edge_duplication_hook): Likewise.
      	* ipa-ref.c (ipa_record_reference): Likewise.
      	(ipa_maybe_record_reference): Likewise.
      	(ipa_clone_ref): Likewise.
      	(ipa_clone_references): Likewise.
      	(ipa_clone_referring): Likewise.
      	(ipa_find_reference): Likewise.
      	(ipa_remove_stmt_references): Likewise.
      	(ipa_clear_stmts_in_references): Likewise.
      	* ipa-ref.h (symtab_node_base): Likewise.
      	(ipa_ref): Likewise.
      	(ipa_record_reference): Likewise.
      	(ipa_maybe_record_reference): Likewise.
      	(ipa_clone_references): Likewise.
      	(ipa_clone_referring): Likewise.
      	(ipa_clone_ref): Likewise.
      	(ipa_find_reference): Likewise.
      	(ipa_remove_stmt_references): Likewise.
      	(ipa_clear_stmts_in_references): Likewise.
      	* ipa-reference.c (ipa_reference_write_optimization_summary):
      	Likewise.
      	* ipa.c (enqueue_node): Likewise.
      	(process_references): Likewise.
      	(walk_polymorphic_call_targets): Likewise.
      	(symtab_remove_unreachable_nodes): Likewise.
      	(address_taken_from_non_vtable_p): Likewise.
      	(comdat_can_be_unshared_p_1): Likewise.
      	(comdat_can_be_unshared_p): Likewise.
      	(can_replace_by_local_alias): Likewise.
      	(function_and_variable_visibility): Likewise.
      	* is-a.h: Likewise (within example in comment).
      	* lto-cgraph.c (input_cgraph_opt_summary): Likewise.
      	(lto_symtab_encoder_encode): Likewise.
      	(lto_symtab_encoder_delete_node): Likewise.
      	(lto_symtab_encoder_in_partition_p): Likewise.
      	(lto_set_symtab_encoder_in_partition): Likewise.
      	(output_refs): Likewise.
      	(compute_ltrans_boundary): Likewise.
      	(output_symtab): Likewise.
      	(input_node): Likewise.
      	(input_ref): Likewise.
      	(input_edge): Likewise.
      	(input_cgraph_1): Likewise.
      	(input_refs): Likewise.
      	(output_cgraph_opt_summary): Likewise.
      	(input_node_opt_summary): Likewise.
      	(input_cgraph_opt_section): Likewise.
      	* lto-section-in.c (lto_free_function_in_decl_state_for_node):
      	Likewise.
      	* lto-streamer-out.c (lto_output): Likewise.
      	(output_symbol_p): Likewise.
      	(produce_symtab): Likewise.
      	* lto-streamer.h (lto_encoder_entry): Likewise.
      	(lto_free_function_in_decl_state_for_node): Likewise.
      	(lto_symtab_encoder_encode): Likewise.
      	(lto_symtab_encoder_delete_node): Likewise.
      	(lto_symtab_encoder_in_partition_p): Likewise.
      	(lto_set_symtab_encoder_in_partition): Likewise.
      	(lto_symtab_encoder_lookup): Likewise.
      	(lsei_node): Likewise.
      	(lto_symtab_encoder_deref): Likewise.
      	* symtab.c (symtab_hash): Likewise.
      	(assembler_name_hash): Likewise.
      	(symtab_nodes): Likewise.
      	(hash_node): Likewise.
      	(eq_node): Likewise.
      	(hash_node_by_assembler_name): Likewise.
      	(eq_assembler_name): Likewise.
      	(insert_to_assembler_name_hash): Likewise.
      	(unlink_from_assembler_name_hash): Likewise.
      	(symtab_prevail_in_asm_name_hash): Likewise.
      	(symtab_register_node): Likewise.
      	(symtab_insert_node_to_hashtable): Likewise.
      	(symtab_unregister_node): Likewise.
      	(symtab_get_node): Likewise.
      	(symtab_remove_node): Likewise.
      	(symtab_initialize_asm_name_hash): Likewise.
      	(symtab_node_for_asm): Likewise.
      	(symtab_add_to_same_comdat_group): Likewise.
      	(symtab_dissolve_same_comdat_group_list): Likewise.
      	(symtab_node_asm_name): Likewise.
      	(symtab_node_name): Likewise.
      	(dump_symtab_base): Likewise.
      	(dump_symtab_node): Likewise.
      	(dump_symtab): Likewise.
      	(debug_symtab_node): Likewise.
      	(verify_symtab_base): Likewise.
      	(verify_symtab_node): Likewise.
      	(verify_symtab): Likewise.
      	(symtab_used_from_object_file_p): Likewise.
      	(symtab_node_availability): Likewise.
      	(symtab_alias_ultimate_target): Likewise.
      	(fixup_same_cpp_alias_visibility): Likewise.
      	(symtab_resolve_alias): Likewise.
      	(symtab_for_node_and_aliases): Likewise.
      	(symtab_for_node_and_aliases): Likewise.
      	(symtab_nonoverwritable_alias_1): Likewise.
      	(symtab_nonoverwritable_alias): Likewise.
      	(symtab_semantically_equivalent_p): Likewise.
      	* value-prof.c (init_node_map): Likewise.
      	* varasm.c (find_decl): Likewise.
      	* varpool.c (varpool_node_for_asm): Likewise.
      	(varpool_remove_unreferenced_decls): Likewise.
      
      gcc/c-family/
      
      	Patch autogenerated by rename_symtab.py from
      	https://github.com/davidmalcolm/gcc-refactoring-scripts
      	revision 58bb219cc090b2f4516a9297d868c245495ee622
      
      	* c-pragma.c (maybe_apply_pending_pragma_weaks): Rename
      	symtab_node_base to symtab_node.
      
      gcc/lto/
      
      	Patch autogenerated by rename_symtab.py from
      	https://github.com/davidmalcolm/gcc-refactoring-scripts
      	revision 58bb219cc090b2f4516a9297d868c245495ee622
      
      	* lto-partition.c (add_symbol_to_partition): Rename
      	symtab_node_base to symtab_node.
      	(get_symbol_class): Likewise.
      	(symbol_partitioned_p): Likewise.
      	(add_references_to_partition): Likewise.
      	(add_symbol_to_partition_1): Likewise.
      	(contained_in_symbol): Likewise.
      	(add_symbol_to_partition): Likewise.
      	(lto_1_to_1_map): Likewise.
      	(lto_max_map): Likewise.
      	(lto_balanced_map): Likewise.
      	(privatize_symbol_name): Likewise.
      	(promote_symbol): Likewise.
      	(may_need_named_section_p): Likewise.
      	(rename_statics): Likewise.
      	(lto_promote_statics_nonwpa): Likewise.
      	* lto-symtab.c (lto_symtab_merge): Likewise.
      	(lto_symtab_resolve_replaceable_p): Likewise.
      	(lto_symtab_symbol_p): Likewise.
      	(lto_symtab_resolve_can_prevail_p): Likewise.
      	(lto_symtab_resolve_symbols): Likewise.
      	(lto_symtab_merge_decls_2): Likewise.
      	(lto_symtab_merge_decls_1): Likewise.
      	(lto_symtab_merge_decls): Likewise.
      	(lto_symtab_merge_symbols_1): Likewise.
      	(lto_symtab_merge_symbols): Likewise.
      	(lto_symtab_prevailing_decl): Likewise.
      	* lto.c (lto_wpa_write_files): Likewise.
      	(read_cgraph_and_symbols): Likewise.
      	(do_whole_program_analysis): Likewise.
      
      From-SVN: r204279
      David Malcolm committed
  17. 30 Oct, 2013 1 commit
    • Split symtab_node declarations onto multiple lines · 378cd6b1
      gcc/
      	* cgraphunit.c (analyze_functions): Split symtab_node
      	declarations onto multiple lines to make things easier
      	for rename_symtab.py.
      
      	* symtab.c (symtab_dissolve_same_comdat_group_list): Likewise.
      	(symtab_semantically_equivalent_p): Likewise.
      
      gcc/lto
      	* lto-symtab.c (lto_symtab_merge_decls_2): Split symtab_node
      	declarations onto multiple lines to make things easier for
      	rename_symtab.py.
      	(lto_symtab_merge_decls_1): Likewise.
      	(lto_symtab_merge_symbols_1): Likewise.
      
      From-SVN: r204216
      David Malcolm committed
  18. 29 Oct, 2013 3 commits
    • Added _Cilk_spawn and _Cilk_sync (2 cilk keywords) for C. · 939b37da
      gcc/ChangeLog:
      2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>
      
      	* builtins.c (is_builtin_name): Added a check for __cilkrts_detach and
      	__cilkrts_pop_frame.  If matched, then return true for built-in
      	function name.
      	(expand_builtin): Added BUILT_IN_CILK_DETACH and
      	BUILT_IN_CILK_POP_FRAME case.
      	* langhooks-def.h (lhd_install_body_with_frame_cleanup): New prototype.
      	(lhs_cilk_detect_spawn): Likewise.
      	(LANG_HOOKS_DECLS): Added LANG_HOOKS_CILKPLUS.
      	(LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): New #define.
      	(LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
      	(LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
      	(LANG_HOOKS_CILKPLUS): Likewise.
      	* tree.h (CILK_SPAWN_FN): Likewise.
      	* builtin.def (DEF_CILK_BUILTIN_STUB): Likewise.
      	* Makefile.in (C_COMMON_OBJS): Added c-family/cilk.o.
      	(OBJS): Added cilk-common.o.
      	(CILK_H): Added a new define.
      	(gimplify.o): Added CILK_H into dependency list.
      	(builtins.o): Likewise.
      	(ipa-inline.o): Likewise.
      	(ipa-inline-analysis.o): Likewise.
      	(BUILTINS_DEF): Added cilk-builtins.def.
      	* langhooks.c (lhd_install_body_with_frame_cleanup): New function.
      	(lhd_cilk_detect_spawn): Likewise.
      	* langhooks.h (lang_hooks_for_cilkplus): New struct.
      	(struct lang_hooks): Added new field called "cilkplus."
      	* cilk-common.c: New file.
      	* cilk.h: Likewise.
      	* cilk-builtins.def: Likewise.
      	* cppbuiltin.c (define_builtin_macros_for_compilation_flags): Added
      	"__cilk" macro and set it to 200.
      	* function.h (struct function::cilk_frame_decl): New field.
      	(struct function::is_cilk_function): Likewise.
      	(struct function::calls_cilk_spawn): Likewise.
      	* gimplify.c (gimplify_call_expr): Added a check if the function call
      	being gimplified is a spawn detach point.  If so, then add pop_frame
      	and detach function calls.
      	(gimplify_expr): Added a CILK_SPAWN_STMT and CILK_SYNC_STMT case
      	for gimplifying _Cilk_spawn and _Cilk_sync statements.
      	(gimplify_return_expr): Added a check for _Cilk_spawn usage in
      	function.  If so, added a _Cilk_sync and gimplified it.
      	(gimplify_modify_expr): Added a check for _Cilk_spawn in MODIFY and
      	INIT_EXPRs.  If so, then call gimplify_cilk_spawn.
      	* ipa-inline-analysis (initialize_inline_failed): Prevent inlining of
      	spawner function.
      	(can_inline_edge_p): Prevent inling of spawnee function.
      	* ira.c (ira_setup_eliminable_regset): Force usage of frame pointer
      	for functions that use Cilk keywords.
      	* tree-inline.h (struct copy_body_data::remap_var_for_cilk): New field.
      	* tree-pretty-print.c (dump_generic_node): Added CILK_SPAWN_STMT and
      	CILK_SYNC_STMT cases.
      	* tree.def (DEFTREECODE): Added CILK_SPAWN_STMT and CILK_SYNC_STMT
      	trees.
      	* generic.texi (CILK_SPAWN_STMT): Added documentation for _Cilk_spawn.
      	(CILK_SYNC_STMT): Added documentation for _Cilk_sync.
      	* passes.texi (Cilk Keywords): New section that describes the compiler
      	code changes for handling Cilk Keywords.
      
      gcc/c/ChangeLog:
      2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>
      
      	* c-decl.c (finish_function): Added a call for insert_cilk_frame when
      	a spawning function is found.
      	* c-objc-common.h (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): New #define.
      	(LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
      	(LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): Likewise.
      	* c-parser.c (c_parser_statement_after_labels): Added RID_CILK_SYNC
      	case.
      	(c_parser_postfix_expression): Added RID_CILK_SPAWN case.
      	* c-typeck.c (build_compound_expr): Reject _Cilk_spawn in a comma
      	expr.
      	(c_finish_return): Added a check to reject _Cilk_spawn in return
      	expression.
      	(build_cilk_spawn): New function.
      	(build_cilk_sync): Likewise.
      	* Makefile.in (c-decl.o): Added cilk.h in dependency list.
      
      gcc/c-family/ChangeLog
      2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>
      
      	* c-common.c (c_common_reswords[]): Added _Cilk_spawn and _Cilk_sync
      	fields.
      	(c_define_builtins): Called cilk_init_builtins if Cilk Plus is
      	enabled.
      	* c-common.h (enum rid): Added RID_CILK_SPAWN and RID_CILK_SYNC.
      	(insert_cilk_frame): New prototype.
      	(cilk_init_builtins): Likewise.
      	(gimplify_cilk_spawn): Likewise.
      	(c_cilk_install_body_w_frame_cleanup): Likewise.
      	(cilk_detect_spawn_and_unwrap): Likewise.
      	(cilk_set_spawn_marker): Likewise.
      	(build_cilk_sync): Likewise.
      	(build_cilk_spawn): Likewise.
      	* cilk.c: New file.
      
      gcc/lto/ChangeLog
      2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>
      
      	* Make-lang.in (lto/lto-lang.o): Added cilk.h in dependency list.
      	* lto-lang.c (lto_init): Added a call to cilk_init_builtins if Cilk
      	Plus is enabled.
      
      gcc/testsuite/ChangeLog
      2013-10-29  Balaji V. Iyer  <balaji.v.iyer@intel.com>
      
      	* c-c++-common/cilk-plus/CK/compound_cilk_spawn.c: New test.
      	* c-c++-common/cilk-plus/CK/concec_cilk_spawn.c: Likewise.
      	* c-c++-common/cilk-plus/CK/fib.c: Likewise.
      	* c-c++-common/cilk-plus/CK/no_args_error.c: Likewise.
      	* c-c++-common/cilk-plus/CK/spawnee_inline.c: Likewise.
      	* c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise.
      	* c-c++-common/cilk-plus/CK/spawning_arg.c: Likewise.
      	* c-c++-common/cilk-plus/CK/steal_check.c: Likewise.
      	* c-c++-common/cilk-plus/CK/test__cilk.c: Likewise.
      	* c-c++-common/cilk-plus/CK/varargs_test.c: Likewise.
      	* c-c++-common/cilk-plus/CK/sync_wo_spawn.c: Likewise.
      	* c-c++-common/cilk-plus/CK/invalid_spawn.c: Likewise.
      	* c-c++-common/cilk-plus/CK/spawn_in_return.c: Likewise.
      	* c-c++-common/cilk-plus/CK/fib_init_expr_xy.c: Likewise.
      	* c-c++-common/cilk-plus/CK/fib_no_sync.c: Likewise.
      	* c-c++-common/cilk-plus/CK/fib_no_return.c: Likewise.
      	* gcc.dg/cilk-plus/cilk-plus.exp: Added support to run Cilk Keywords
      	test stored in c-c++-common.  Also, added the Cilk runtime's library
      	to the ld_library_path.
      
      From-SVN: r204172
      Balaji V. Iyer committed
    • Autogenerated fixes of "->symbol." to "->" · 67348ccc
      This is the autogenerated part of the conversion of the symtable types
      to a C++ class hierarchy.
      
      gcc/
      
      	Patch autogenerated by refactor_symtab.py from
      	https://github.com/davidmalcolm/gcc-refactoring-scripts
      	revision 58bb219cc090b2f4516a9297d868c245495ee622
      
      	* asan.c (asan_finish_file): Update for conversion of symtab types to
      	a true class hierarchy.
      	* cfgexpand.c (estimated_stack_frame_size): Likewise.
      	* cgraph.c (cgraph_get_body): Likewise.
      	(cgraph_get_create_real_symbol_node): Likewise.
      	(verify_cgraph_node): Likewise.
      	(verify_edge_corresponds_to_fndecl): Likewise.
      	(verify_edge_count_and_frequency): Likewise.
      	(cgraph_will_be_removed_from_program_if_no_direct_calls): Likewise.
      	(cgraph_can_remove_if_no_direct_calls_p): Likewise.
      	(cgraph_can_remove_if_no_direct_calls_and_refs_p): Likewise.
      	(cgraph_node_cannot_return): Likewise.
      	(cgraph_set_pure_flag_1): Likewise.
      	(cgraph_set_const_flag_1): Likewise.
      	(cgraph_set_nothrow_flag_1): Likewise.
      	(cgraph_make_node_local_1): Likewise.
      	(cgraph_for_node_and_aliases): Likewise.
      	(cgraph_for_node_thunks_and_aliases): Likewise.
      	(cgraph_node_can_be_local_p): Likewise.
      	(cgraph_node_cannot_be_local_p_1): Likewise.
      	(cgraph_function_body_availability): Likewise.
      	(dump_cgraph_node): Likewise.
      	(cgraph_rtl_info): Likewise.
      	(cgraph_mark_address_taken_node): Likewise.
      	(cgraph_remove_node): Likewise.
      	(cgraph_release_function_body): Likewise.
      	(cgraph_update_edges_for_call_stmt_node): Likewise.
      	(cgraph_redirect_edge_call_stmt_to_callee): Likewise.
      	(cgraph_make_edge_direct): Likewise.
      	(cgraph_resolve_speculation): Likewise.
      	(cgraph_speculative_call_info): Likewise.
      	(cgraph_turn_edge_to_speculative): Likewise.
      	(cgraph_create_edge_1): Likewise.
      	(cgraph_set_call_stmt): Likewise.
      	(cgraph_node_for_asm): Likewise.
      	(cgraph_add_thunk): Likewise.
      	(cgraph_same_body_alias): Likewise.
      	(cgraph_create_function_alias): Likewise.
      	(cgraph_create_node): Likewise.
      	(cgraph_create_empty_node): Likewise.
      	(record_function_versions): Likewise.
      	(used_from_object_file_p): Likewise.
      	* cgraph.h (symtab_can_be_discarded): Likewise.
      	(symtab_real_symbol_p): Likewise.
      	(cgraph_mark_force_output_node): Likewise.
      	(cgraph_edge_recursive_p): Likewise.
      	(symtab_alias_target): Likewise.
      	(varpool_all_refs_explicit_p): Likewise.
      	(varpool_can_remove_if_no_refs): Likewise.
      	(cgraph_only_called_directly_or_aliased_p): Likewise.
      	(cgraph_next_function_with_gimple_body): Likewise.
      	(cgraph_first_function_with_gimple_body): Likewise.
      	(cgraph_function_with_gimple_body_p): Likewise.
      	(cgraph_next_function): Likewise.
      	(cgraph_first_function): Likewise.
      	(cgraph_next_defined_function): Likewise.
      	(cgraph_first_defined_function): Likewise.
      	(varpool_next_defined_variable): Likewise.
      	(varpool_first_defined_variable): Likewise.
      	(varpool_next_static_initializer): Likewise.
      	(varpool_first_static_initializer): Likewise.
      	(varpool_next_variable): Likewise.
      	(varpool_first_variable): Likewise.
      	(varpool_node_name): Likewise.
      	(varpool): Likewise.
      	(cgraph): Likewise.
      	(is_a_helper <varpool_node>::test): Likewise.
      	(is_a_helper <cgraph_node>::test): Likewise.
      	(varpool_variable_node): Likewise.
      	(cgraph_function_or_thunk_node): Likewise.
      	(varpool_alias_target): Likewise.
      	(cgraph_alias_target): Likewise.
      	(cgraph_node_name): Likewise.
      	(varpool_node_asm_name): Likewise.
      	(cgraph_node_asm_name): Likewise.
      	* cgraphbuild.c (remove_cgraph_callee_edges): Likewise.
      	(cgraph_rebuild_references): Likewise.
      	(rebuild_cgraph_edges): Likewise.
      	(record_eh_tables): Likewise.
      	(build_cgraph_edges): Likewise.
      	(mark_store): Likewise.
      	(mark_load): Likewise.
      	(mark_address): Likewise.
      	(record_type_list): Likewise.
      	(record_reference): Likewise.
      	* cgraphclones.c (cgraph_materialize_all_clones): Likewise.
      	(cgraph_materialize_clone): Likewise.
      	(cgraph_function_versioning): Likewise.
      	(cgraph_copy_node_for_versioning): Likewise.
      	(update_call_expr): Likewise.
      	(cgraph_find_replacement_node): Likewise.
      	(cgraph_create_virtual_clone): Likewise.
      	(cgraph_clone_node): Likewise.
      	* cgraphunit.c (compile): Likewise.
      	(output_weakrefs): Likewise.
      	(output_in_order): Likewise.
      	(expand_function): Likewise.
      	(assemble_thunks_and_aliases): Likewise.
      	(expand_thunk): Likewise.
      	(mark_functions_to_output): Likewise.
      	(handle_alias_pairs): Likewise.
      	(analyze_functions): Likewise.
      	(walk_polymorphic_call_targets): Likewise.
      	(varpool_finalize_decl): Likewise.
      	(process_function_and_variable_attributes): Likewise.
      	(cgraph_process_same_body_aliases): Likewise.
      	(analyze_function): Likewise.
      	(cgraph_add_new_function): Likewise.
      	(cgraph_finalize_function): Likewise.
      	(referred_to_p): Likewise.
      	(cgraph_reset_node): Likewise.
      	(cgraph_process_new_functions): Likewise.
      	(enqueue_node): Likewise.
      	(decide_is_symbol_needed): Likewise.
      	* coverage.c (coverage_compute_profile_id): Likewise.
      	* dbxout.c (dbxout_expand_expr): Likewise.
      	* dwarf2out.c (premark_types_used_by_global_vars_helper): Likewise.
      	(reference_to_unused): Likewise.
      	* gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
      	* gimplify.c (unvisit_body): Likewise.
      	(unshare_body): Likewise.
      	* ipa-cp.c (ipcp_generate_summary): Likewise.
      	(ipcp_decision_stage): Likewise.
      	(identify_dead_nodes): Likewise.
      	(decide_whether_version_node): Likewise.
      	(decide_about_value): Likewise.
      	(perhaps_add_new_callers): Likewise.
      	(create_specialized_node): Likewise.
      	(update_profiling_info): Likewise.
      	(ipcp_propagate_stage): Likewise.
      	(estimate_local_effects): Likewise.
      	(good_cloning_opportunity_p): Likewise.
      	(devirtualization_time_bonus): Likewise.
      	(propagate_constants_accross_call): Likewise.
      	(initialize_node_lattices): Likewise.
      	(ipcp_cloning_candidate_p): Likewise.
      	(determine_versionability): Likewise.
      	(print_all_lattices): Likewise.
      	(print_lattice): Likewise.
      	(ipcp_discover_new_direct_edges): Likewise.
      	* ipa-devirt.c (ipa_devirt): Likewise.
      	(likely_target_p): Likewise.
      	(update_type_inheritance_graph): Likewise.
      	(possible_polymorphic_call_target_p): Likewise.
      	(dump_possible_polymorphic_call_targets): Likewise.
      	(devirt_variable_node_removal_hook): Likewise.
      	(record_binfo): Likewise.
      	(maybe_record_node): Likewise.
      	(build_type_inheritance_graph): Likewise.
      	* ipa-inline-analysis.c (inline_write_summary): Likewise.
      	(inline_generate_summary): Likewise.
      	(inline_analyze_function): Likewise.
      	(do_estimate_growth): Likewise.
      	(simple_edge_hints): Likewise.
      	(estimate_node_size_and_time): Likewise.
      	(estimate_edge_devirt_benefit): Likewise.
      	(compute_inline_parameters): Likewise.
      	(estimate_function_body_sizes): Likewise.
      	(compute_bb_predicates): Likewise.
      	(initialize_inline_failed): Likewise.
      	(dump_inline_summary): Likewise.
      	(dump_inline_edge_summary): Likewise.
      	* ipa-inline-transform.c (inline_transform): Likewise.
      	(preserve_function_body_p): Likewise.
      	(save_inline_function_body): Likewise.
      	(inline_call): Likewise.
      	(clone_inlined_nodes): Likewise.
      	(can_remove_node_now_p): Likewise.
      	(can_remove_node_now_p_1): Likewise.
      	* ipa-inline.c (early_inliner): Likewise.
      	(early_inline_small_functions): Likewise.
      	(inline_always_inline_functions): Likewise.
      	(ipa_inline): Likewise.
      	(flatten_function): Likewise.
      	(inline_small_functions): Likewise.
      	(speculation_useful_p): Likewise.
      	(recursive_inlining): Likewise.
      	(update_caller_keys): Likewise.
      	(reset_edge_caches): Likewise.
      	(update_edge_key): Likewise.
      	(edge_badness): Likewise.
      	(relative_time_benefit): Likewise.
      	(want_inline_self_recursive_call_p): Likewise.
      	(want_inline_small_function_p): Likewise.
      	(want_early_inline_function_p): Likewise.
      	(num_calls): Likewise.
      	(can_early_inline_edge_p): Likewise.
      	(can_inline_edge_p): Likewise.
      	(report_inline_failed_reason): Likewise.
      	* ipa-profile.c (ipa_profile): Likewise.
      	(ipa_propagate_frequency): Likewise.
      	(ipa_propagate_frequency_1): Likewise.
      	(ipa_profile_generate_summary): Likewise.
      	* ipa-prop.c (ipcp_transform_function): Likewise.
      	(read_replacements_section): Likewise.
      	(ipa_prop_read_section): Likewise.
      	(ipa_modify_call_arguments): Likewise.
      	(ipa_print_node_params): Likewise.
      	(propagate_controlled_uses): Likewise.
      	(update_indirect_edges_after_inlining): Likewise.
      	(remove_described_reference): Likewise.
      	(ipa_make_edge_direct_to_target): Likewise.
      	(ipa_analyze_node): Likewise.
      	(ipa_analyze_params_uses): Likewise.
      	(ipa_compute_jump_functions): Likewise.
      	(ipa_get_callee_param_type): Likewise.
      	(ipa_print_node_jump_functions): Likewise.
      	(ipa_initialize_node_params): Likewise.
      	(ipa_populate_param_decls): Likewise.
      	(ipa_func_spec_opts_forbid_analysis_p): Likewise.
      	(write_agg_replacement_chain): Likewise.
      	(ipa_write_node_info): Likewise.
      	(ipa_edge_duplication_hook): Likewise.
      	(try_decrement_rdesc_refcount): Likewise.
      	* ipa-pure-const.c (propagate_nothrow): Likewise.
      	(propagate_pure_const): Likewise.
      	(pure_const_read_summary): Likewise.
      	(pure_const_write_summary): Likewise.
      	(analyze_function): Likewise.
      	* ipa-ref-inline.h (ipa_ref_referred_ref_list): Likewise.
      	(ipa_ref_referring_ref_list): Likewise.
      	* ipa-ref.c (ipa_clear_stmts_in_references): Likewise.
      	(ipa_remove_stmt_references): Likewise.
      	(ipa_find_reference): Likewise.
      	(ipa_dump_referring): Likewise.
      	(ipa_dump_references): Likewise.
      	(ipa_record_reference): Likewise.
      	* ipa-reference.c (ipa_reference_read_optimization_summary): Likewise.
      	(ipa_reference_write_optimization_summary): Likewise.
      	(write_node_summary_p): Likewise.
      	(propagate): Likewise.
      	(read_write_all_from_decl): Likewise.
      	(generate_summary): Likewise.
      	(analyze_function): Likewise.
      	(propagate_bits): Likewise.
      	(ipa_reference_get_not_written_global): Likewise.
      	(ipa_reference_get_not_read_global): Likewise.
      	* ipa-split.c (execute_split_functions): Likewise.
      	(split_function): Likewise.
      	* ipa-utils.c (ipa_merge_profiles): Likewise.
      	(dump_cgraph_node_set): Likewise.
      	(ipa_reverse_postorder): Likewise.
      	(ipa_edge_within_scc): Likewise.
      	(ipa_get_nodes_in_cycle): Likewise.
      	(ipa_free_postorder_info): Likewise.
      	(ipa_reduced_postorder): Likewise.
      	(searchc): Likewise.
      	(recursive_call_p): Likewise.
      	* ipa.c (ipa_cdtor_merge): Likewise.
      	(record_cdtor_fn): Likewise.
      	(function_and_variable_visibility): Likewise.
      	(varpool_externally_visible_p): Likewise.
      	(cgraph_externally_visible_p): Likewise.
      	(comdat_can_be_unshared_p): Likewise.
      	(comdat_can_be_unshared_p_1): Likewise.
      	(address_taken_from_non_vtable_p): Likewise.
      	(ipa_discover_readonly_nonaddressable_vars): Likewise.
      	(symtab_remove_unreachable_nodes): Likewise.
      	(walk_polymorphic_call_targets): Likewise.
      	(process_references): Likewise.
      	(enqueue_node): Likewise.
      	(has_addr_references_p): Likewise.
      	(cgraph_non_local_node_p_1): Likewise.
      	* is-a.h (varpool_analyze_node): Likewise.
      	* lto-cgraph.c (input_symtab): Likewise.
      	(merge_profile_summaries): Likewise.
      	(input_cgraph_1): Likewise.
      	(input_edge): Likewise.
      	(input_varpool_node): Likewise.
      	(input_node): Likewise.
      	(input_overwrite_node): Likewise.
      	(compute_ltrans_boundary): Likewise.
      	(output_refs): Likewise.
      	(lto_output_varpool_node): Likewise.
      	(lto_output_node): Likewise.
      	(reachable_from_other_partition_p): Likewise.
      	(referenced_from_other_partition_p): Likewise.
      	(lto_output_edge): Likewise.
      	(output_node_opt_summary): Likewise.
      	(add_node_to): Likewise.
      	(reachable_from_this_partition_p): Likewise.
      	(lto_set_symtab_encoder_in_partition): Likewise.
      	(lto_symtab_encoder_in_partition_p): Likewise.
      	(lto_set_symtab_encoder_encode_initializer): Likewise.
      	(lto_symtab_encoder_encode_initializer_p): Likewise.
      	(lto_set_symtab_encoder_encode_body): Likewise.
      	(lto_symtab_encoder_encode_body_p): Likewise.
      	* lto-section-in.c (lto_free_function_in_decl_state_for_node):
      	Likewise.
      	* lto-streamer-in.c (lto_read_body): Likewise.
      	(fixup_call_stmt_edges): Likewise.
      	(fixup_call_stmt_edges_1): Likewise.
      	* lto-streamer-out.c (produce_symtab): Likewise.
      	(output_symbol_p): Likewise.
      	(write_symbol): Likewise.
      	(lto_output): Likewise.
      	(copy_function): Likewise.
      	(output_function): Likewise.
      	* passes.c (function_called_by_processed_nodes_p): Likewise.
      	(ipa_write_optimization_summaries): Likewise.
      	(ipa_write_summaries): Likewise.
      	(do_per_function_toporder): Likewise.
      	(do_per_function): Likewise.
      	(dump_passes): Likewise.
      	* symtab.c (symtab_semantically_equivalent_p): Likewise.
      	(symtab_nonoverwritable_alias): Likewise.
      	(symtab_nonoverwritable_alias_1): Likewise.
      	(symtab_for_node_and_aliases): Likewise.
      	(symtab_resolve_alias): Likewise.
      	(fixup_same_cpp_alias_visibility): Likewise.
      	(symtab_alias_ultimate_target): Likewise.
      	(symtab_used_from_object_file_p): Likewise.
      	(verify_symtab_base): Likewise.
      	(dump_symtab_base): Likewise.
      	(symtab_node_name): Likewise.
      	(symtab_node_asm_name): Likewise.
      	(symtab_dissolve_same_comdat_group_list): Likewise.
      	(symtab_add_to_same_comdat_group): Likewise.
      	(symtab_unregister_node): Likewise.
      	(symtab_insert_node_to_hashtable): Likewise.
      	(symtab_register_node): Likewise.
      	(unlink_from_assembler_name_hash): Likewise.
      	(insert_to_assembler_name_hash): Likewise.
      	(eq_assembler_name): Likewise.
      	(hash_node_by_assembler_name): Likewise.
      	(eq_node): Likewise.
      	(hash_node): Likewise.
      	* toplev.c (wrapup_global_declaration_2): Likewise.
      	* trans-mem.c (ipa_tm_execute): Likewise.
      	(ipa_tm_transform_clone): Likewise.
      	(ipa_tm_transform_transaction): Likewise.
      	(ipa_tm_transform_calls_redirect): Likewise.
      	(ipa_tm_insert_gettmclone_call): Likewise.
      	(ipa_tm_insert_irr_call): Likewise.
      	(ipa_tm_create_version): Likewise.
      	(ipa_tm_create_version_alias): Likewise.
      	(ipa_tm_mark_forced_by_abi_node): Likewise.
      	(ipa_tm_mark_force_output_node): Likewise.
      	(ipa_tm_diagnose_tm_safe): Likewise.
      	(ipa_tm_mayenterirr_function): Likewise.
      	(ipa_tm_scan_irr_function): Likewise.
      	(ipa_tm_note_irrevocable): Likewise.
      	(ipa_tm_scan_calls_clone): Likewise.
      	(get_cg_data): Likewise.
      	* tree-eh.c (tree_could_trap_p): Likewise.
      	* tree-emutls.c (ipa_lower_emutls): Likewise.
      	(create_emultls_var): Likewise.
      	(lower_emutls_function_body): Likewise.
      	(gen_emutls_addr): Likewise.
      	(emutls_decl): Likewise.
      	(new_emutls_decl): Likewise.
      	* tree-inline.c (tree_function_versioning): Likewise.
      	(optimize_inline_calls): Likewise.
      	(expand_call_inline): Likewise.
      	(estimate_num_insns): Likewise.
      	(copy_bb): Likewise.
      	(delete_unreachable_blocks_update_callgraph): Likewise.
      	* tree-nested.c (gimplify_all_functions): Likewise.
      	(create_nesting_tree): Likewise.
      	(check_for_nested_with_variably_modified): Likewise.
      	* tree-pretty-print.c (dump_function_header): Likewise.
      	* tree-profile.c (tree_profiling): Likewise.
      	* tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
      	(modify_function): Likewise.
      	(convert_callers): Likewise.
      	(convert_callers_for_node): Likewise.
      	* tree-ssa-structalias.c (ipa_pta_execute): Likewise.
      	(associate_varinfo_to_alias): Likewise.
      	(create_variable_info_for): Likewise.
      	(get_constraint_for_ssa_var): Likewise.
      	* tree-vectorizer.c (increase_alignment): Likewise.
      	* tree.c (find_decls_types_in_var): Likewise.
      	(find_decls_types_in_node): Likewise.
      	(free_lang_data_in_decl): Likewise.
      	* value-prof.c (gimple_ic_transform): Likewise.
      	(gimple_ic): Likewise.
      	(check_ic_target): Likewise.
      	(init_node_map): Likewise.
      	* varasm.c (decl_binds_to_current_def_p): Likewise.
      	(default_binds_local_p_1): Likewise.
      	(dump_tm_clone_pairs): Likewise.
      	(assemble_alias): Likewise.
      	(find_decl): Likewise.
      	(mark_decl_referenced): Likewise.
      	* varpool.c (varpool_for_node_and_aliases): Likewise.
      	(varpool_extra_name_alias): Likewise.
      	(varpool_create_variable_alias): Likewise.
      	(add_new_static_var): Likewise.
      	(varpool_finalize_named_section_flags): Likewise.
      	(varpool_remove_unreferenced_decls): Likewise.
      	(enqueue_node): Likewise.
      	(varpool_assemble_decl): Likewise.
      	(assemble_aliases): Likewise.
      	(varpool_analyze_node): Likewise.
      	(cgraph_variable_initializer_availability): Likewise.
      	(varpool_add_new_variable): Likewise.
      	(ctor_for_folding): Likewise.
      	(dump_varpool_node): Likewise.
      	(varpool_remove_initializer): Likewise.
      	(varpool_remove_node): Likewise.
      	(varpool_node_for_decl): Likewise.
      	(varpool_create_empty_node): Likewise.
      	* config/i386/i386.c (ix86_generate_version_dispatcher_body):
      	Likewise.
      	(ix86_get_function_versions_dispatcher): Likewise.
      
      gcc/ada/
      
      	Patch autogenerated by refactor_symtab.py from
      	https://github.com/davidmalcolm/gcc-refactoring-scripts
      	revision 58bb219cc090b2f4516a9297d868c245495ee622
      
      	* gcc-interface/trans.c (finalize_nrv): Update for conversion of
      	symtab types to a true class hierarchy.
      	* gcc-interface/utils.c (gnat_write_global_declarations): Likewise.
      
      gcc/c-family/
      
      	Patch autogenerated by refactor_symtab.py from
      	https://github.com/davidmalcolm/gcc-refactoring-scripts
      	revision 58bb219cc090b2f4516a9297d868c245495ee622
      
      	* c-gimplify.c (c_genericize): Update for conversion of symtab types
      	to a true class hierarchy.
      	* c-pragma.c (maybe_apply_pending_pragma_weaks): Likewise.
      
      gcc/cp/
      
      	Patch autogenerated by refactor_symtab.py from
      	https://github.com/davidmalcolm/gcc-refactoring-scripts
      	revision 58bb219cc090b2f4516a9297d868c245495ee622
      
      	* call.c (mark_versions_used): Update for conversion of symtab types
      	to a true class hierarchy.
      	* decl2.c (cp_write_global_declarations): Likewise.
      	(clear_decl_external): Likewise.
      	(build_java_method_aliases): Likewise.
      	(collect_candidates_for_java_method_aliases): Likewise.
      	(mark_needed): Likewise.
      	(var_finalized_p): Likewise.
      	(maybe_make_one_only): Likewise.
      	(maybe_emit_vtables): Likewise.
      	* lambda.c (maybe_add_lambda_conv_op): Likewise.
      	* method.c (use_thunk): Likewise.
      	* optimize.c (maybe_clone_body): Likewise.
      	* tree.c (cp_fix_function_decl_p): Likewise.
      
      gcc/java/
      
      	Patch autogenerated by refactor_symtab.py from
      	https://github.com/davidmalcolm/gcc-refactoring-scripts
      	revision 58bb219cc090b2f4516a9297d868c245495ee622
      
      	* decl.c (java_mark_decl_local): Update for conversion of symtab types
      	to a true class hierarchy.
      
      gcc/lto/
      
      	Patch autogenerated by refactor_symtab.py from
      	https://github.com/davidmalcolm/gcc-refactoring-scripts
      	revision 58bb219cc090b2f4516a9297d868c245495ee622
      
      	* lto-partition.c (lto_promote_cross_file_statics): Update for
      	conversion of symtab types to a true class hierarchy.
      	(rename_statics): Likewise.
      	(promote_symbol): Likewise.
      	(privatize_symbol_name): Likewise.
      	(lto_balanced_map): Likewise.
      	(varpool_node_cmp): Likewise.
      	(node_cmp): Likewise.
      	(lto_1_to_1_map): Likewise.
      	(undo_partition): Likewise.
      	(add_symbol_to_partition): Likewise.
      	(contained_in_symbol): Likewise.
      	(add_symbol_to_partition_1): Likewise.
      	(add_references_to_partition): Likewise.
      	(symbol_partitioned_p): Likewise.
      	(get_symbol_class): Likewise.
      	(lto_max_map): Likewise.
      	* lto-symtab.c (lto_symtab_prevailing_decl): Likewise.
      	(lto_symtab_merge_symbols): Likewise.
      	(lto_symtab_merge_symbols_1): Likewise.
      	(lto_symtab_merge_decls): Likewise.
      	(lto_symtab_merge_decls_1): Likewise.
      	(lto_symtab_merge_decls_2): Likewise.
      	(lto_symtab_resolve_symbols): Likewise.
      	(lto_symtab_resolve_can_prevail_p): Likewise.
      	(lto_symtab_symbol_p): Likewise.
      	(lto_symtab_resolve_replaceable_p): Likewise.
      	(lto_symtab_merge): Likewise.
      	(lto_varpool_replace_node): Likewise.
      	(lto_cgraph_replace_node): Likewise.
      	* lto.c (lto_main): Likewise.
      	(do_whole_program_analysis): Likewise.
      	(materialize_cgraph): Likewise.
      	(read_cgraph_and_symbols): Likewise.
      	(cmp_partitions_order): Likewise.
      	(lto_materialize_function): Likewise.
      	(has_analyzed_clone_p): Likewise.
      
      From-SVN: r204171
      David Malcolm committed
    • tree-outof-ssa.h: Remove include files. · 8e9055ae
      	* tree-outof-ssa.h: Remove include files.
      	* tree-outof-ssa.c: Add required include files from tree-outof-ssa.h.
      	* expr.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* ipa-prop.h: Remove gimple.h and tree-core.h from include list.
      	* lto-streamer.h: Likewise.
      	* cgraphbuild.c: Add gimple.h to include list.
      	* data-streamer-in.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* tree-streamer.c: Likewise.
      	* lto-compress.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* data-streamer-out.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* cgraphclones.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* data-streamer.c: Likewise.
      	* ipa-split.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* tree-streamer-out.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* tree-streamer-in.c: Likewise.
      	* symtab.c: Likewise.
      	* opts-global.c: Likewise.
      	* lto-opts.c: Likewise.
      	* lto-section-out.c: Likewise.
      	* lto-streamer.c: Likewise.
      	* rtl.h: Add tree-core.h to include list.
      	* expr.h: Remove tree-core.h from include list.
      	* gimple.h: Likewise.
      	* ipa-utils.h: Likewise.
      	* streamer-hooks.h: Likewise.
      	* streamer-hooks.c: Include input.h.
      
      	* lto/lto-object.c: Add gimple.h to include list.
      	* lto/lto-partition.c: Likewise.
      
      From-SVN: r204158
      Andrew MacLeod committed
  19. 23 Oct, 2013 1 commit
  20. 21 Oct, 2013 1 commit
    • Re-factor inclusion of tree.h. · 4d648807
      This moves tree.h out of every header. This exposes dependencies of
      tree.h in files that should probably not need it after tree and gimple
      are separated.
      
      After this change, no header should include tree.h directly. It should
      only be included by a .c file. Unfortunately, I did not find an
      automatic way of forcing this.
      
      Tested on x86_64 with all languages enabled and using
      contrib/config-list.mk.
      
      2013-10-21  Diego Novillo  <dnovillo@google.com>
      
      	* asan.c: Include tree.h
      	* bb-reorder.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* data-streamer-in.c: Likewise.
      	* data-streamer-out.c: Likewise.
      	* data-streamer.c: Likewise.
      	* dwarf2cfi.c: Likewise.
      	* graphite-blocking.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* graphite-dependences.c: Likewise.
      	* graphite-interchange.c: Likewise.
      	* graphite-optimize-isl.c: Likewise.
      	* graphite-poly.c: Likewise.
      	* graphite-scop-detection.c: Likewise.
      	* graphite-sese-to-poly.c: Likewise.
      	* graphite.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa.c: Likewise.
      	* ira.c: Likewise.
      	* loop-init.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lower-subreg.c: Likewise.
      	* lto/lto-object.c: Likewise.
      	* recog.c: Likewise.
      	* reginfo.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-streamer.c: Likewise.
      	* value-prof.c: Likewise.
      	* target-globals.c: Likewise.
      	* expr.h: Include tree-core.h instead of tree.h.
      	* gimple.h: Likewise.
      	* ipa-prop.h: Likewise.
      	* ipa-utils.h: Likewise.
      	* lto-streamer.h: Likewise.
      	* streamer-hooks.h: Likewise.
      	* ipa-reference.h: Include cgraph.h instead of tree.h.
      	* cgraph.h: Include basic-block.h instead of tree.h.
      	* tree-streamer.h: Do not include tree.h.
      	* genattrtab.c (write_header): Generate inclusion of
      	tree.h.
      	* genautomata.c (main): Likewise.
      	* genemit.c: Likewise.
      	* genopinit.c: Likewise.
      	* genoutput.c (output_prologue): Likewise.
      	* genpeep.c: Likewise.
      
      testsuite/ChangeLog
      
      	* g++.dg/plugin/selfassign.c: Include tree.h.
      	* gcc.dg/plugin/finish_unit_plugin.c: Likewise.
      	* gcc.dg/plugin/ggcplug.c: Likewise.
      	* gcc.dg/plugin/one_time_plugin.c: Likewise.
      	* gcc.dg/plugin/selfassign.c: Likewise.
      	* gcc.dg/plugin/start_unit_plugin.c: Likewise.
      
      From-SVN: r203908
      Diego Novillo committed
  21. 18 Oct, 2013 1 commit
    • tree-cfg.h: Rename from tree-flow.h. · 377d9792
      	* tree-cfg.h: Rename from tree-flow.h.  Remove #includes.
      	* tree-ssa.h: Relocate required #includes from tree-cfg.h.
      	* tree-ssa-operands.h: Remove prototype.
      	* tree-ssa-operands.c (virtual_operand_p): Move to gimple.c.
      	* gimple.c (virtual_operand_p): Relocate from gimple.c.
      	* gimple.h: Add prototype.
      	* gimple-ssa.h: Include tree-ssa-operands.h.
      	* tree-dump.c: Add tree-cfg.h to include list.
      	* tree-ssa-alias.c: Add ipa-reference.h to include list.
      	* config/alpha/alpha.c: Include gimple-ssa.h instead of tree-flow.h.
      	* config/i386/i386.c: Don't include tree-flow.h.
      	* config/rs6000/rs6000.c: Likewise.
      
      	* lto/lto.c: Remove tree-flow.h from include list.
      
      	* testsuite/g++.dg/plugin/header_plugin.c: Don't include tree-flow.h.
      
      From-SVN: r203817
      Andrew Macleod committed
  22. 15 Oct, 2013 1 commit
    • lto.c (hash_canonical_type): Split out from ... · fffda8d7
      2013-10-15  Richard Biener  <rguenther@suse.de>
      
      	lto/
      	* lto.c (hash_canonical_type): Split out from ...
      	(iterative_hash_canonical_type): ... here.  Register types
      	we recurse to.
      	(gimple_canonical_type_hash): Adjust.
      	(gimple_register_canonical_type_1): Split out from ...
      	(gimple_register_canonical_type): ... here.  Cache computed
      	hash value.
      	(lto_register_canonical_types): Split into two modes,
      	clearing and computing TYPE_CANONICAL.
      	(lto_read_decls): Adjust.
      	(read_cgraph_and_symbols): Do two passes over global trees,
      	first clearing then computing TYPE_CANONICAL.
      
      From-SVN: r203600
      Richard Biener committed
  23. 14 Oct, 2013 3 commits
    • lto.c (gimple_canonical_types): Move out-of GC space. · 1394237e
      2013-10-14  Richard Biener  <rguenther@suse.de>
      
      	lto/
      	* lto.c (gimple_canonical_types): Move out-of GC space.
      	(canonical_type_hash_cache): Make a pointer-map.
      	(num_canonical_type_hash_entries, num_canonical_type_hash_queries):
      	New counters.
      	(iterative_hash_canonical_type): Adjust.
      	(read_cgraph_and_symbols): Likewise.
      	(print_lto_report_1): Likewise.
      
      From-SVN: r203566
      Richard Biener committed
    • lto.c (gimple_types, [...]): Remove old merging code and statistics. · 0a387eca
      2013-10-14  Richard Biener  <rguenther@suse.de>
      
      	lto/
      	* lto.c (gimple_types, type_hash_cache, struct type_pair_d,
      	type_pair_cache, lookup_type_pair, struct sccs, next_dfs_num,
      	gtc_next_dfs_num, compare_type_names_p, gtc_visit,
      	gimple_types_compatible_p_1, gimple_types_compatible_p,
      	visit, iterative_hash_name, struct type_hash_pair,
      	type_hash_pair_compare, iterative_hash_gimple_type, gimple_type_hash,
      	gimple_type_eq, gimple_register_type, num_not_merged_types,
      	num_not_merged_types_in_same_scc, num_not_merged_types_trees,
      	num_not_merged_types_in_same_scc_trees): Remove old merging code
      	and statistics.
      	(lto_read_decls): Do not run old merging code in parallel.
      	(read_cgraph_and_symbols): Do not init/free old merging
      	data structures.
      	(print_lto_report_1): Do not report differences of old vs. new
      	merging code.
      
      From-SVN: r203533
      Richard Biener committed
    • gimple.c (gimple_canonical_types, [...]): Move to lto/lto.c · 83fd5d11
      2013-10-14  Richard Biener  <rguenther@suse.de>
      
      	* gimple.c (gimple_canonical_types, canonical_type_hash_cache,
      	iterative_hash_canonical_type, gimple_canonical_type_hash,
      	gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
      	gimple_register_canonical_type, print_gimple_types_stats,
      	free_gimple_type_tables): Move to lto/lto.c
      	(gt-gimple.h): Do not include.
      	* gimple.h (gimple_register_canonical_type,
      	print_gimple_types_stats, free_gimple_type_tables): Remove.
      	* Makefile.in (GTFILES): Remove gimple.c.
      
      	lto/
      	* lto-lang.c (lto_init): Do not re-init canonical types here.
      	(lto_register_canonical_types): Move to ...
      	* lto.c (lto_register_canonical_types): ... here.
      	(gimple_canonical_types, canonical_type_hash_cache,
      	iterative_hash_canonical_type, gimple_canonical_type_hash,
      	gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
      	gimple_register_canonical_type): Add canonical type merging machinery
      	moved from gimple.c.
      	(read_cgraph_and_symbols): Init and free canonical type tables
      	here.
      	(print_lto_report_1): Report canonical type table stats here.
      
      From-SVN: r203521
      Richard Biener committed
  24. 11 Oct, 2013 1 commit
    • target.c: New file. · acf0174b
      libgomp/
      	* target.c: New file.
      	* Makefile.am (libgomp_la_SOURCES): Add target.c.
      	* Makefile.in: Regenerated.
      	* libgomp_g.h (GOMP_task): Add depend argument.
      	(GOMP_barrier_cancel, GOMP_loop_end_cancel,
      	GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
      	GOMP_target_end_data, GOMP_target_update, GOMP_teams,
      	GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
      	GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
      	GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
      	GOMP_taskgroup_start, GOMP_taskgroup_end,
      	GOMP_parallel_sections): New prototypes.
      	* fortran.c (omp_is_initial_device): Add ialias_redirect.
      	(omp_is_initial_device_): New function.
      	(ULP, STR1, STR2, ialias_redirect): Removed.
      	(omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
      	omp_set_default_device_8_, omp_get_default_device_,
      	omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
      	functions.
      	* libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
      	GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
      	GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
      	@@GOMP_4.0.
      	(omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
      	omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
      	omp_set_default_device, omp_set_default_device_,
      	omp_set_default_device_8_, omp_get_default_device,
      	omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
      	omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
      	omp_get_team_num_): Export @@OMP_4.0.
      	* team.c (struct gomp_thread_start_data): Add place field.
      	(gomp_thread_start): Clear thr->thread_pool and
      	thr->task before returning.  Use gomp_team_barrier_wait_final
      	instead of gomp_team_barrier_wait.  Initialize thr->place.
      	(gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
      	team_cancelled and task_queued_count fields.
      	(gomp_free_pool_helper): Clear thr->thread_pool and thr->task
      	before calling pthread_exit.
      	(gomp_free_thread): No longer static.  Use
      	gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
      	(gomp_team_start): Add flags argument.  Set
      	thr->thread_pool->threads_busy to nthreads immediately after creating
      	new pool.  Use gomp_managed_threads_lock instead of
      	gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
      	(gomp_team_end): Use gomp_managed_threads_lock instead of
      	gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
      	of gomp_team_barrier_wait.  If team->team_cancelled, call
      	gomp_fini_worshare on ws chain starting at team->work_shares_to_free
      	rather than thr->ts.work_share.
      	(initialize_team): Don't call gomp_sem_init here.
      	* sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
      	caller.
      	(GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
      	* env.c (gomp_global_icv): Add default_device_var, target_data and
      	bind_var initializers.
      	(gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
      	(gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
      	gomp_places_list_len): New variables.
      	(parse_bind_var, parse_one_place, parse_places_var): New functions.
      	(parse_affinity): Rewritten to construct OMP_PLACES list with unit
      	sized places.
      	(gomp_cancel_var): New global variable.
      	(parse_int): New function.
      	(handle_omp_display_env): New function.
      	(initialize_env): Use it.  Initialize default_device_var.
      	Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
      	OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
      	OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
      	been successfully parsed (and call gomp_init_affinity in that case).
      	(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
      	omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
      	omp_get_team_num, omp_is_initial_device): New functions.
      	* libgomp.h: Include stdlib.h.
      	(ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
      	Define.
      	(struct target_mem_desc): Forward declare.
      	(struct gomp_task_icv): Add default_device_var, target_data, bind_var
      	and thread_limit_var fields.
      	(gomp_get_num_devices): New prototype.
      	(gomp_cancel_var): New extern decl.
      	(struct gomp_team): Add work_shares_to_free, work_share_cancelled,
      	team_cancelled and task_queued_count fields.  Add comments about
      	task_{,queued_,running_}count.
      	(gomp_cancel_kind): New enum.
      	(gomp_work_share_end_cancel): New prototype.
      	(struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
      	copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
      	and depend fields.
      	(struct gomp_taskgroup): New type.
      	(struct gomp_task_depend_entry,
      	struct gomp_dependers_vec): New types.
      	(gomp_finish_task): Free depend_hash if non-NULL.
      	(struct gomp_team_state): Add place_partition_off
      	and place_partition_len fields.
      	(gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
      	gomp_places_list_len): New extern decls.
      	(struct gomp_thread): Add place field.
      	(gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
      	(gomp_init_thread_affinity): Add place argument.
      	(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
      	gomp_affinity_remove_cpu, gomp_affinity_copy_place,
      	gomp_affinity_same_place, gomp_affinity_finalize_place_list,
      	gomp_affinity_init_level, gomp_affinity_print_place): New
      	prototypes.
      	(gomp_team_start): Add flags argument.
      	(gomp_thread_limit_var, gomp_remaining_threads_count,
      	gomp_remaining_threads_lock): Remove.
      	(gomp_managed_threads_lock): New variable.
      	(struct gomp_thread_pool): Add threads_busy field.
      	(gomp_free_thread): New prototype.
      	* task.c: Include hashtab.h.
      	(hash_entry_type): New typedef.
      	(htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
      	(gomp_init_task): Clear dependers, depend_hash, depend_count,
      	copy_ctors_done and taskgroup fields.
      	(GOMP_task): Add depend argument, handle depend clauses.  If
      	gomp_team_barrier_cancelled or if it's taskgroup has been
      	cancelled, don't queue or start new tasks.  Set copy_ctors_done
      	field if needed.  Initialize taskgroup field.  If copy_ctors_done
      	and already cancelled, don't discard the task.  If taskgroup is
      	non-NULL, enqueue the task into taskgroup queue.  Increment
      	num_children field in taskgroup.  Increment task_queued_count.
      	(gomp_task_run_pre, gomp_task_run_post_remove_parent,
      	gomp_task_run_post_remove_taskgroup): New inline functions.
      	(gomp_task_run_post_handle_depend_hash,
      	gomp_task_run_post_handle_dependers,
      	gomp_task_run_post_handle_depend): New functions.
      	(GOMP_taskwait): Use them.  If more than one new tasks
      	have been queued, wake other threads if needed.
      	(gomp_barrier_handle_tasks): Likewise.  If
      	gomp_team_barrier_cancelled, don't start any new tasks, just free
      	all tasks.
      	(GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
      	* omp_lib.f90.in
      	(omp_proc_bind_kind, omp_proc_bind_false,
      	omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
      	omp_proc_bind_spread): New params.
      	(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
      	omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
      	omp_get_team_num, omp_is_initial_device): New interfaces.
      	(omp_get_dynamic, omp_get_nested, omp_in_parallel,
      	omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
      	omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
      	omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
      	omp_get_team_size, omp_get_active_level, omp_in_final): Remove
      	useless use omp_lib_kinds.
      	* omp.h.in (omp_proc_bind_t): New typedef.
      	(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
      	omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
      	omp_get_team_num, omp_is_initial_device): New prototypes.
      	* loop.c (gomp_parallel_loop_start): Add flags argument, pass it
      	through to gomp_team_start.
      	(GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
      	GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
      	Adjust gomp_parallel_loop_start callers.
      	(GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
      	GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
      	GOMP_loop_end_cancel): New functions.
      	(GOMP_parallel_end): Add ialias_redirect.
      	* hashtab.h: New file.
      	* libgomp.texi (Environment Variables): Minor cleanup,
      	update section refs to OpenMP 4.0rc2.
      	(OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
      	environment variables.
      	* work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
      	team->work_shares_to_free to thr->ts.work_share before calling
      	free_work_share.
      	(gomp_work_share_end_cancel): New function.
      	* config/linux/proc.c: Include errno.h.
      	(gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
      	(gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
      	sizeof (cpu_set_t) to determine number of iterations.  Fix up check
      	extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
      	gomp_cpuset_size is sizeof (cpu_set_t).
      	(gomp_init_num_threads): Initialize gomp_cpuset_size,
      	gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
      	of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
      	to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
      	contain any logical CPUs.
      	(get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
      	is NULL.  Use gomp_cpusetp instead of &cpuset and pass
      	gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
      	pthread_getaffinity_np.  Check gomp_places_list instead of
      	gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
      	* config/linux/bar.c (gomp_barrier_wait_end,
      	gomp_barrier_wait_last): Use BAR_* defines.
      	(gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
      	from state where needed.  Set work_share_cancelled to 0 on last
      	thread.
      	(gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
      	gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
      	functions.
      	* config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
      	Add cpusetsize argument.
      	(gomp_cpuset_size, gomp_cpusetp): Declare.
      	* config/linux/affinity.c: Include errno.h, stdio.h and string.h.
      	(affinity_counter): Remove.
      	(CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
      	if CPU_ALLOC_SIZE isn't defined.
      	(gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
      	silently create OMP_PLACES=threads, if it is non-NULL afterwards,
      	bind current thread to the first place.
      	(gomp_init_thread_affinity): Rewritten.  Add place argument, just
      	pthread_setaffinity_np to gomp_places_list[place].
      	(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
      	gomp_affinity_remove_cpu, gomp_affinity_copy_place,
      	gomp_affinity_same_place, gomp_affinity_finalize_place_list,
      	gomp_affinity_init_level, gomp_affinity_print_place): New functions.
      	* config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
      	BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
      	(gomp_barrier_t): Add awaited_final field.
      	(gomp_barrier_init): Initialize awaited_final field.
      	(gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
      	gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
      	prototypes.
      	(gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
      	defines.
      	(gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
      	gomp_team_barrier_cancelled): New inline functions.
      	(gomp_barrier_last_thread,
      	gomp_team_barrier_set_task_pending,
      	gomp_team_barrier_clear_task_pending,
      	gomp_team_barrier_set_waiting_for_tasks,
      	gomp_team_barrier_waiting_for_tasks,
      	gomp_team_barrier_done): Use BAR_* defines.
      	* config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
      	(gomp_barrier_wait_end): Use BAR_* defines.
      	(gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
      	Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
      	Use BAR_* defines.
      	(gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
      	gomp_team_barrier_cancel): New functions.
      	* config/posix/affinity.c (gomp_init_thread_affinity): Add place
      	argument.
      	(gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
      	gomp_affinity_remove_cpu, gomp_affinity_copy_place,
      	gomp_affinity_same_place, gomp_affinity_finalize_place_list,
      	gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
      	* config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
      	BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
      	(gomp_barrier_t): Add cancellable field.
      	(gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
      	gomp_team_barrier_cancel): New prototypes.
      	(gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
      	(gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
      	gomp_team_barrier_cancelled): New inline functions.
      	(gomp_barrier_wait_start, gomp_barrier_last_thread,
      	gomp_team_barrier_set_task_pending,
      	gomp_team_barrier_clear_task_pending,
      	gomp_team_barrier_set_waiting_for_tasks,
      	gomp_team_barrier_waiting_for_tasks,
      	gomp_team_barrier_done): Use BAR_* defines.
      	* barrier.c (GOMP_barrier_cancel): New function.
      	* omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
      	omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
      	omp_proc_bind_spread): New params.
      	(omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
      	omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
      	omp_get_team_num, omp_is_initial_device): New externals.
      	* parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
      	New functions.
      	(gomp_resolve_num_threads): Adjust for thread_limit now being in
      	icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
      	infinity.  If not nested, just return minimum of max_num_threads
      	and icv->thread_limit_var and if thr->thread_pool, set threads_busy
      	to the returned value.  Otherwise, don't update atomically
      	gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
      	(GOMP_parallel_end): Adjust for thread_limit now being in
      	icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
      	infinity.  Adjust threads_busy in the pool rather than
      	gomp_remaining_threads_count.  Remember team->nthreads and call
      	gomp_team_end before adjusting threads_busy, if not nested
      	afterwards, just set it to 1 non-atomically.  Add ialias.
      	(GOMP_parallel_start): Adjust gomp_team_start caller.
      	* testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
      	* testsuite/libgomp.c/affinity-1.c: New test.
      	* testsuite/libgomp.c/atomic-15.c: New test.
      	* testsuite/libgomp.c/atomic-16.c: New test.
      	* testsuite/libgomp.c/atomic-17.c: New test.
      	* testsuite/libgomp.c/cancel-for-1.c: New test.
      	* testsuite/libgomp.c/cancel-for-2.c: New test.
      	* testsuite/libgomp.c/cancel-parallel-1.c: New test.
      	* testsuite/libgomp.c/cancel-parallel-2.c: New test.
      	* testsuite/libgomp.c/cancel-parallel-3.c: New test.
      	* testsuite/libgomp.c/cancel-sections-1.c: New test.
      	* testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
      	* testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
      	* testsuite/libgomp.c/depend-1.c: New test.
      	* testsuite/libgomp.c/depend-2.c: New test.
      	* testsuite/libgomp.c/depend-3.c: New test.
      	* testsuite/libgomp.c/depend-4.c: New test.
      	* testsuite/libgomp.c/for-1.c: New test.
      	* testsuite/libgomp.c/for-1.h: New file.
      	* testsuite/libgomp.c/for-2.c: New test.
      	* testsuite/libgomp.c/for-2.h: New file.
      	* testsuite/libgomp.c/for-3.c: New test.
      	* testsuite/libgomp.c/pr58392.c: New test.
      	* testsuite/libgomp.c/simd-1.c: New test.
      	* testsuite/libgomp.c/simd-2.c: New test.
      	* testsuite/libgomp.c/simd-3.c: New test.
      	* testsuite/libgomp.c/simd-4.c: New test.
      	* testsuite/libgomp.c/simd-5.c: New test.
      	* testsuite/libgomp.c/simd-6.c: New test.
      	* testsuite/libgomp.c/target-1.c: New test.
      	* testsuite/libgomp.c/target-2.c: New test.
      	* testsuite/libgomp.c/target-3.c: New test.
      	* testsuite/libgomp.c/target-4.c: New test.
      	* testsuite/libgomp.c/target-5.c: New test.
      	* testsuite/libgomp.c/target-6.c: New test.
      	* testsuite/libgomp.c/target-7.c: New test.
      	* testsuite/libgomp.c/taskgroup-1.c: New test.
      	* testsuite/libgomp.c/thread-limit-1.c: New test.
      	* testsuite/libgomp.c/thread-limit-2.c: New test.
      	* testsuite/libgomp.c/thread-limit-3.c: New test.
      	* testsuite/libgomp.c/udr-1.c: New test.
      	* testsuite/libgomp.c/udr-2.c: New test.
      	* testsuite/libgomp.c/udr-3.c: New test.
      	* testsuite/libgomp.c++/affinity-1.C: New test.
      	* testsuite/libgomp.c++/atomic-10.C: New test.
      	* testsuite/libgomp.c++/atomic-11.C: New test.
      	* testsuite/libgomp.c++/atomic-12.C: New test.
      	* testsuite/libgomp.c++/atomic-13.C: New test.
      	* testsuite/libgomp.c++/atomic-14.C: New test.
      	* testsuite/libgomp.c++/atomic-15.C: New test.
      	* testsuite/libgomp.c++/cancel-for-1.C: New test.
      	* testsuite/libgomp.c++/cancel-for-2.C: New test.
      	* testsuite/libgomp.c++/cancel-parallel-1.C: New test.
      	* testsuite/libgomp.c++/cancel-parallel-2.C: New test.
      	* testsuite/libgomp.c++/cancel-parallel-3.C: New test.
      	* testsuite/libgomp.c++/cancel-sections-1.C: New test.
      	* testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
      	* testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
      	* testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
      	* testsuite/libgomp.c++/cancel-test.h: New file.
      	* testsuite/libgomp.c++/for-9.C: New test.
      	* testsuite/libgomp.c++/for-10.C: New test.
      	* testsuite/libgomp.c++/for-11.C: New test.
      	* testsuite/libgomp.c++/simd-1.C: New test.
      	* testsuite/libgomp.c++/simd-2.C: New test.
      	* testsuite/libgomp.c++/simd-3.C: New test.
      	* testsuite/libgomp.c++/simd-4.C: New test.
      	* testsuite/libgomp.c++/simd-5.C: New test.
      	* testsuite/libgomp.c++/simd-6.C: New test.
      	* testsuite/libgomp.c++/simd-7.C: New test.
      	* testsuite/libgomp.c++/simd-8.C: New test.
      	* testsuite/libgomp.c++/target-1.C: New test.
      	* testsuite/libgomp.c++/target-2.C: New test.
      	* testsuite/libgomp.c++/target-2-aux.cc: New file.
      	* testsuite/libgomp.c++/target-3.C: New test.
      	* testsuite/libgomp.c++/taskgroup-1.C: New test.
      	* testsuite/libgomp.c++/udr-1.C: New test.
      	* testsuite/libgomp.c++/udr-2.C: New test.
      	* testsuite/libgomp.c++/udr-3.C: New test.
      	* testsuite/libgomp.c++/udr-4.C: New test.
      	* testsuite/libgomp.c++/udr-5.C: New test.
      	* testsuite/libgomp.c++/udr-6.C: New test.
      	* testsuite/libgomp.c++/udr-7.C: New test.
      	* testsuite/libgomp.c++/udr-8.C: New test.
      	* testsuite/libgomp.c++/udr-9.C: New test.
      gcc/
      	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
      	and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
      	formatting fixes, use pp_colon instead of pp_character (..., ':'),
      	similarly pp_right_paren.
      	(dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
      	OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
      	allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
      	* tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
      	clauses.
      	(omp_declare_simd_clauses_equal,
      	omp_remove_redundant_declare_simd_attrs): New functions.
      	(attribute_value_equal): Use omp_declare_simd_clauses_equal.
      	(walk_tree_1): Handle new OpenMP 4.0 clauses.
      	* tree.h (OMP_LOOP_CHECK): Define.
      	(OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
      	OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
      	(OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
      	OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
      	OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
      	OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
      	OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
      	OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
      	OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
      	OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
      	OMP_CLAUSE_SIMDLEN_EXPR): Define.
      	(OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
      	(omp_remove_redundant_declare_simd_attrs): New prototype.
      	* gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
      	GIMPLE_OMP_TEAMS): New codes.
      	(GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
      	* omp-low.c (struct omp_context): Add cancel_label and cancellable
      	fields.
      	(target_nesting_level): New variable.
      	(extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
      	OMP_CLAUSE_DIST_SCHEDULE.  Don't fallback to library implementation
      	for collapse > 1 static schedule unless ordered.
      	(get_ws_args_for): Add par_stmt argument.  Handle combined loops.
      	(determine_parallel_type): Adjust get_ws_args_for caller.
      	(install_var_field): Handle mask & 4 for double indirection.
      	(scan_sharing_clauses): Ignore shared clause on teams construct.
      	Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
      	(create_omp_child_function): If inside target or declare target
      	constructs, set "omp declare target" attribute on the child
      	function.
      	(find_combined_for): New function.
      	(scan_omp_parallel): Handle combined loops.
      	(scan_omp_target, scan_omp_teams): New functions.
      	(check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
      	restrictions and set ctx->cancellable for cancellable constructs.
      	(scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
      	selected builtin calls.  Handle GIMPLE_OMP_TASKGROUP,
      	GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
      	(build_omp_barrier): Add lhs argument, return gimple rather than
      	tree.
      	(omp_clause_aligned_alignment): New function.
      	(lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR
      	on decls.
      	(lower_rec_input_clauses): Add FD argument.  Ignore shared clauses
      	on teams constructs.  Handle user defined reductions and new
      	OpenMP 4.0 clauses.
      	(lower_reduction_clauses): Don't set placeholder to address of ref
      	if it has already the right type.
      	(lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
      	(expand_parallel_call): Use the new non-_start suffixed builtins,
      	handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
      	and GOMP_parallel_end after the call.
      	(expand_task_call): Handle OMP_CLAUSE_DEPEND.
      	(expand_omp_for_init_counts): Handle combined loops.
      	(expand_omp_for_init_vars): Add inner_stmt argument, handle combined
      	loops.
      	(expand_omp_for_generic): Likewise.  Use GOMP_loop_end_cancel at the
      	end of cancellable loops.
      	(expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
      	Likewise.  Handle collapse > 1 loops.
      	(expand_omp_simd): Handle combined loops.
      	(expand_omp_for): Add inner_stmt argument, adjust callers of
      	expand_omp_for* functions, use expand_omp_for_static*chunk even
      	for collapse > 1 unless ordered.
      	(expand_omp_sections): Use GOMP_sections_end_cancel at the end
      	of cancellable sections.
      	(expand_omp_single): Remove need_barrier variable, just rely on
      	gimple_omp_return_nowait_p.  Adjust build_omp_barrier caller.
      	(expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
      	(expand_omp_atomic_load, expand_omp_atomic_store,
      	expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
      	(expand_omp_target): New function.
      	(expand_omp): Handle combined loops.  Handle GIMPLE_OMP_TASKGROUP,
      	GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
      	(build_omp_regions_1): Immediately close region for
      	GF_OMP_TARGET_KIND_UPDATE.
      	(maybe_add_implicit_barrier_cancel): New function.
      	(lower_omp_sections): Adjust lower_rec_input_clauses caller.  Handle
      	cancellation.
      	(lower_omp_single): Likewise.  Add clobber after the barrier.
      	(lower_omp_taskgroup): New function.
      	(lower_omp_for): Handle combined loops.  Adjust
      	lower_rec_input_clauses caller.  Handle cancellation.
      	(lower_depend_clauses): New function.
      	(lower_omp_taskreg): Lower depend clauses.  Adjust
      	lower_rec_input_clauses caller.  Add clobber after the call.  Handle
      	cancellation.
      	(lower_omp_target, lower_omp_teams): New functions.
      	(lower_omp_1): Handle cancellation.  Handle GIMPLE_OMP_TASKGROUP,
      	GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
      	and GOMP_cancellation_point calls.
      	(lower_omp): Fold stmts inside of target region.
      	(diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
      	GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
      	* builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
      	(BT_FN_VOID_OMPFN_PTR_UINT,
      	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
      	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
      	(BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
      	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
      	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
      	BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
      	BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
      	BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
      	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
      	call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
      	BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
      	BUILT_IN_GOMP_SECTIONS_END_CANCEL.  Don't handle
      	BUILT_IN_GOMP_PARALLEL_END.
      	* gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
      	GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
      	* gimple-pretty-print.c (dump_gimple_omp_for): Handle
      	GF_OMP_FOR_KIND_DISTRIBUTE.
      	(dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
      	(dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
      	(dump_gimple_omp_return): Print lhs if it has any.
      	(dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
      	gimple_omp_atomic_seq_cst_p.
      	(pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
      	and GIMPLE_OMP_TEAMS.
      	* langhooks.c (lhd_omp_mappable_type): New function.
      	* tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
      	* langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
      	hook.
      	* gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
      	GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
      	(enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and
      	ORT_TARGET.
      	(struct gimplify_omp_ctx): Add combined_loop field.
      	(gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
      	on stmts inside of target region.
      	(is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
      	(omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
      	ORT_TARGET and ORT_TARGET_DATA.
      	(omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
      	Handle GOVD_MAP.
      	(omp_notice_threadprivate_variable): Complain about threadprivate
      	variables in target region.
      	(omp_notice_variable): Complain about vars with non-mappable type
      	in target region.  Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
      	(omp_check_private): Ignore ORT_TARGET* regions.
      	(gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
      	gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
      	(find_combined_omp_for): New function.
      	(gimplify_omp_for): Handle gimplification of combined loops.
      	(gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
      	OMP_TEAMS.
      	(gimplify_omp_target_update): New function.
      	(gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
      	(gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
      	OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
      	(gimplify_body): If fndecl has "omp declare target" attribute, add
      	implicit ORT_TARGET context around it.
      	* tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
      	OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
      	* tree-nested.c (convert_nonlocal_reference_stmt,
      	convert_local_reference_stmt, convert_gimple_call): Handle
      	GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
      	* omp-builtins.def (BUILT_IN_GOMP_TASK): Use
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
      	instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
      	(BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
      	BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
      	BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
      	BUILT_IN_GOMP_LOOP_END_CANCEL,
      	BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
      	BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
      	BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
      	BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
      	BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
      	BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
      	BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
      	BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
      	(BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
      	BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
      	BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
      	BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
      	BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
      	BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
      	* tree-inline.c (remap_gimple_stmt, estimate_num_insns):
      	Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
      	* gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
      	gimple_build_omp_teams): New functions.
      	(walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
      	GIMPLE_OMP_TASKGROUP.  Walk optional lhs on GIMPLE_OMP_RETURN.
      	(walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
      	GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
      	* gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
      	GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
      	GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
      	GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
      	GF_OMP_ATOMIC_SEQ_CST): New.
      	(gimple_build_omp_taskgroup, gimple_build_omp_target,
      	gimple_build_omp_teams): New prototypes.
      	(gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
      	GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
      	(gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
      	GIMPLE_OMP_SINGLE as end of range.
      	(gimple_omp_return_set_lhs, gimple_omp_return_lhs,
      	gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
      	gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
      	gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
      	gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
      	gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
      	gimple_omp_target_kind, gimple_omp_target_set_kind,
      	gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
      	gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
      	gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
      	gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
      	gimple_omp_teams_set_clauses): New inlines.
      	(CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
      	and GIMPLE_OMP_TASKGROUP.
      	* tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause
      	codes.
      	(enum omp_clause_depend_kind, enum omp_clause_map_kind,
      	enum omp_clause_proc_bind_kind): New.
      	(union omp_clause_subcode): Add depend_kind, map_kind and
      	proc_bind_kind fields.
      	* tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
      	GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
      	* langhooks-def.h (lhd_omp_mappable_type): New prototype.
      	(LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
      	(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
      gcc/c-family/
      	* c-cppbuiltin.c (c_cpp_builtins): Predefine _OPENMP to
      	201307 instead of 201107.
      	* c-common.c (DEF_FUNCTION_TYPE_8): Define.
      	(c_common_attribute_table): Add "omp declare target" and
      	"omp declare simd" attributes.
      	(handle_omp_declare_target_attribute,
      	handle_omp_declare_simd_attribute): New functions.
      	* c-omp.c: Include c-pragma.h.
      	(c_finish_omp_taskgroup): New function.
      	(c_finish_omp_atomic): Add swapped argument, if true,
      	build the operation first with rhs, lhs arguments and use NOP_EXPR
      	build_modify_expr.
      	(c_finish_omp_for): Add code argument, pass it down to make_code.
      	(c_omp_split_clauses): New function.
      	(c_split_parallel_clauses): Removed.
      	(c_omp_declare_simd_clause_cmp, c_omp_declare_simd_clauses_to_numbers,
      	c_omp_declare_simd_clauses_to_decls): New functions.
      	* c-common.h (omp_clause_mask): New type.
      	(OMP_CLAUSE_MASK_1): Define.
      	(omp_clause_mask::omp_clause_mask, omp_clause_mask::operator &=,
      	omp_clause_mask::operator |=, omp_clause_mask::operator ~,
      	omp_clause_mask::operator |, omp_clause_mask::operator &,
      	omp_clause_mask::operator <<, omp_clause_mask::operator >>,
      	omp_clause_mask::operator ==): New methods.
      	(enum c_omp_clause_split): New.
      	(c_finish_omp_taskgroup): New prototype.
      	(c_finish_omp_atomic): Add swapped argument.
      	(c_finish_omp_for): Add code argument.
      	(c_omp_split_clauses): New prototype.
      	(c_split_parallel_clauses): Removed.
      	(c_omp_declare_simd_clauses_to_numbers,
      	c_omp_declare_simd_clauses_to_decls): New prototypes.
      	* c-pragma.c (omp_pragmas): Add new OpenMP 4.0 constructs.
      	* c-pragma.h (enum pragma_kind): Add PRAGMA_OMP_CANCEL,
      	PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION,
      	PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_SIMD,
      	PRAGMA_OMP_TARGET, PRAGMA_OMP_TASKGROUP and PRAGMA_OMP_TEAMS.
      	Remove PRAGMA_OMP_PARALLEL_FOR and PRAGMA_OMP_PARALLEL_SECTIONS.
      	(enum pragma_omp_clause): Add PRAGMA_OMP_CLAUSE_ALIGNED,
      	PRAGMA_OMP_CLAUSE_DEPEND, PRAGMA_OMP_CLAUSE_DEVICE,
      	PRAGMA_OMP_CLAUSE_DIST_SCHEDULE, PRAGMA_OMP_CLAUSE_FOR,
      	PRAGMA_OMP_CLAUSE_FROM, PRAGMA_OMP_CLAUSE_INBRANCH,
      	PRAGMA_OMP_CLAUSE_LINEAR, PRAGMA_OMP_CLAUSE_MAP,
      	PRAGMA_OMP_CLAUSE_NOTINBRANCH, PRAGMA_OMP_CLAUSE_NUM_TEAMS,
      	PRAGMA_OMP_CLAUSE_PARALLEL, PRAGMA_OMP_CLAUSE_PROC_BIND,
      	PRAGMA_OMP_CLAUSE_SAFELEN, PRAGMA_OMP_CLAUSE_SECTIONS,
      	PRAGMA_OMP_CLAUSE_SIMDLEN, PRAGMA_OMP_CLAUSE_TASKGROUP,
      	PRAGMA_OMP_CLAUSE_THREAD_LIMIT, PRAGMA_OMP_CLAUSE_TO and
      	PRAGMA_OMP_CLAUSE_UNIFORM.
      gcc/ada/
      	* gcc-interface/utils.c (DEF_FUNCTION_TYPE_8): Define.
      gcc/fortran/
      	* trans-openmp.c (gfc_omp_clause_default_ctor,
      	gfc_omp_clause_dtor): Return NULL for OMP_CLAUSE_REDUCTION.
      	* f95-lang.c (ATTR_NULL, DEF_FUNCTION_TYPE_8): Define.
      	* types.def (DEF_FUNCTION_TYPE_8): Document.
      	(BT_FN_VOID_OMPFN_PTR_UINT,
      	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
      	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
      	(BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
      	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
      	BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
      	BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
      	BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
      	BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
      	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
      gcc/lto/
      	* lto-lang.c (DEF_FUNCTION_TYPE_8): Define.
      gcc/c/
      	* c-lang.h (current_omp_declare_target_attribute): New extern
      	decl.
      	* c-parser.c: Include c-lang.h.
      	(struct c_parser): Change tokens to c_token *.
      	Add tokens_buf field.  Change tokens_avail type to unsigned int.
      	(c_parser_consume_token): If parser->tokens isn't
      	&parser->tokens_buf[0], increment parser->tokens.
      	(c_parser_consume_pragma): Likewise.
      	(enum pragma_context): Add pragma_struct and pragma_param.
      	(c_parser_external_declaration): Adjust
      	c_parser_declaration_or_fndef caller.
      	(c_parser_declaration_or_fndef): Add omp_declare_simd_clauses
      	argument, if it is non-vNULL vector, call c_finish_omp_declare_simd.
      	Adjust recursive call.
      	(c_parser_struct_or_union_specifier): Use pragma_struct instead
      	of pragma_external.
      	(c_parser_parameter_declaration): Use pragma_param instead of
      	pragma_external.
      	(c_parser_compound_statement_nostart, c_parser_label,
      	c_parser_for_statement): Adjust
      	c_parser_declaration_or_fndef callers.
      	(c_parser_expr_no_commas): Add omp_atomic_lhs argument, pass
      	it through to c_parser_conditional_expression.
      	(c_parser_conditional_expression): Add omp_atomic_lhs argument,
      	pass it through to c_parser_binary_expression.  Adjust recursive
      	call.
      	(c_parser_binary_expression): Remove prec argument, add
      	omp_atomic_lhs argument instead.  Always start from PREC_NONE, if
      	omp_atomic_lhs is non-NULL and one of the arguments of toplevel
      	binop matches it, use build2 instead of parser_build_binary_op.
      	(c_parser_pragma): Handle PRAGMA_OMP_CANCEL,
      	PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_TARGET,
      	PRAGMA_OMP_END_DECLARE_TARGET, PRAGMA_OMP_DECLARE_REDUCTION.
      	Handle pragma_struct and pragma_param the same as pragma_external.
      	(c_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
      	(c_parser_omp_variable_list): Parse array sections for
      	OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.
      	(c_parser_omp_clause_collapse): Fully fold collapse expression.
      	(c_parser_omp_clause_reduction): Handle user defined reductions.
      	(c_parser_omp_clause_branch, c_parser_omp_clause_cancelkind,
      	c_parser_omp_clause_num_teams, c_parser_omp_clause_thread_limit,
      	c_parser_omp_clause_aligned, c_parser_omp_clause_linear,
      	c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen,
      	c_parser_omp_clause_depend, c_parser_omp_clause_map,
      	c_parser_omp_clause_device, c_parser_omp_clause_dist_schedule,
      	c_parser_omp_clause_proc_bind, c_parser_omp_clause_to,
      	c_parser_omp_clause_from, c_parser_omp_clause_uniform): New functions.
      	(c_parser_omp_all_clauses): Add finish_p argument.  Don't call
      	c_finish_omp_clauses if it is false.  Handle new OpenMP 4.0 clauses.
      	(c_parser_omp_atomic): Parse seq_cst clause, pass true if it is
      	present to c_finish_omp_atomic.  Handle OpenMP 4.0 atomic forms.
      	(c_parser_omp_for_loop): Add CODE argument, pass it through
      	to c_finish_omp_for.  Change last argument to cclauses,
      	and adjust uses to grab parallel clauses from the array of all
      	the split clauses.  Adjust c_parser_binary_expression,
      	c_parser_declaration_or_fndef and c_finish_omp_for callers.
      	(omp_split_clauses): New function.
      	(c_parser_omp_simd): New function.
      	(c_parser_omp_for): Add p_name, mask and cclauses arguments.
      	Allow the function to be called also when parsing combined constructs,
      	and call c_parser_omp_simd when parsing for simd.
      	(c_parser_omp_sections_scope): If section-sequence doesn't start with
      	#pragma omp section, require exactly one structured-block instead of
      	sequence of statements.
      	(c_parser_omp_sections): Add p_name, mask and cclauses arguments.
      	Allow the function to be called also when parsing combined constructs.
      	(c_parser_omp_parallel): Add p_name, mask and cclauses arguments.
      	Allow the function to be called also when parsing combined
      	constructs.
      	(c_parser_omp_taskgroup, c_parser_omp_cancel,
      	c_parser_omp_cancellation_point, c_parser_omp_distribute,
      	c_parser_omp_teams, c_parser_omp_target_data,
      	c_parser_omp_target_update, c_parser_omp_target,
      	c_parser_omp_declare_simd, c_finish_omp_declare_simd,
      	c_parser_omp_declare_target, c_parser_omp_end_declare_target,
      	c_parser_omp_declare_reduction, c_parser_omp_declare): New functions.
      	(c_parser_omp_construct): Add p_name and mask vars.  Handle
      	PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
      	PRAGMA_OMP_TEAMS.  Adjust c_parser_omp_for, c_parser_omp_parallel
      	and c_parser_omp_sections callers.
      	(c_parse_file): Initialize tparser.tokens and the_parser->tokens here.
      	(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
      	OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
      	(OMP_PARALLEL_CLAUSE_MASK): Likewise.  Add OMP_CLAUSE_PROC_BIND.
      	(OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.  Add
      	OMP_CLAUSE_DEPEND.
      	(OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
      	OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
      	OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
      	OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
      	OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
      	* c-typeck.c: Include tree-inline.h.
      	(c_finish_omp_cancel, c_finish_omp_cancellation_point,
      	handle_omp_array_sections_1, handle_omp_array_sections,
      	c_clone_omp_udr, c_find_omp_placeholder_r): New functions.
      	(c_finish_omp_clauses): Handle new OpenMP 4.0 clauses and
      	user defined reductions.
      	(c_tree_equal): New function.
      	* c-tree.h (temp_store_parm_decls, temp_pop_parm_decls,
      	c_finish_omp_cancel, c_finish_omp_cancellation_point, c_tree_equal,
      	c_omp_reduction_id, c_omp_reduction_decl, c_omp_reduction_lookup,
      	c_check_omp_declare_reduction_r): New prototypes.
      	* c-decl.c (current_omp_declare_target_attribute): New variable.
      	(c_decl_attributes): New function.
      	(start_decl, start_function): Use it instead of decl_attributes.
      	(temp_store_parm_decls, temp_pop_parm_decls, c_omp_reduction_id,
      	c_omp_reduction_decl, c_omp_reduction_lookup,
      	c_check_omp_declare_reduction_r): New functions.
      gcc/cp/
      	* decl.c (duplicate_decls): Error out for redeclaration of UDRs.
      	(declare_simd_adjust_this): New function.
      	(grokfndecl): If "omp declare simd" attribute is present,
      	call declare_simd_adjust_this if needed and
      	c_omp_declare_simd_clauses_to_numbers.
      	* cp-array-notation.c (expand_array_notation_exprs): Handle
      	OMP_TASKGROUP.
      	* cp-gimplify.c (cp_gimplify_expr): Handle OMP_SIMD and
      	OMP_DISTRIBUTE.  Handle is_invisiref_parm decls in
      	OMP_CLAUSE_REDUCTION.
      	(cp_genericize_r): Handle OMP_SIMD and OMP_DISTRIBUTE like
      	OMP_FOR.
      	(cxx_omp_privatize_by_reference): Return true for
      	is_invisiref_parm decls.
      	(cxx_omp_finish_clause): Adjust cxx_omp_create_clause_info
      	caller.
      	* pt.c (apply_late_template_attributes): For "omp declare simd"
      	attribute call tsubst_omp_clauses,
      	c_omp_declare_simd_clauses_to_decls, finish_omp_clauses
      	and c_omp_declare_simd_clauses_to_numbers.
      	(instantiate_class_template_1): Call cp_check_omp_declare_reduction
      	for UDRs.
      	(tsubst_decl): Handle UDRs.
      	(tsubst_omp_clauses): Add declare_simd argument, if true don't
      	call finish_omp_clauses.  Handle new OpenMP 4.0 clauses.
      	Handle non-NULL OMP_CLAUSE_REDUCTION_PLACEHOLDER on
      	OMP_CLAUSE_REDUCTION.
      	(tsubst_expr): For UDRs call pushdecl and
      	cp_check_omp_declare_reduction.  Adjust tsubst_omp_clauses
      	callers.  Handle OMP_SIMD, OMP_DISTRIBUTE, OMP_TEAMS,
      	OMP_TARGET_DATA, OMP_TARGET_UPDATE, OMP_TARGET, OMP_TASKGROUP.
      	Adjust finish_omp_atomic caller.
      	(tsubst_omp_udr): New function.
      	(instantiate_decl): For UDRs at block scope, don't call
      	start_preparsed_function/finish_function.  Call tsubst_omp_udr.
      	* semantics.c (cxx_omp_create_clause_info): Add need_dtor argument,
      	use it instead of need_default_ctor || need_copy_ctor.
      	(struct cp_check_omp_declare_reduction_data): New type.
      	(handle_omp_array_sections_1, handle_omp_array_sections,
      	omp_reduction_id, omp_reduction_lookup,
      	cp_remove_omp_priv_cleanup_stmt, cp_check_omp_declare_reduction_r,
      	cp_check_omp_declare_reduction, clone_omp_udr,
      	find_omp_placeholder_r, finish_omp_reduction_clause): New functions.
      	(finish_omp_clauses): Handle new OpenMP 4.0 clauses and user defined
      	reductions.
      	(finish_omp_for): Add CODE argument, use it instead of hardcoded
      	OMP_FOR.  Adjust c_finish_omp_for caller.
      	(finish_omp_atomic): Add seq_cst argument, adjust
      	c_finish_omp_atomic callers, handle seq_cst and new OpenMP 4.0
      	atomic variants.
      	(finish_omp_cancel, finish_omp_cancellation_point): New functions.
      	* decl2.c (mark_used): Force immediate instantiation of
      	DECL_OMP_DECLARE_REDUCTION_P decls.
      	(is_late_template_attribute): Return true for "omp declare simd"
      	attribute.
      	(cp_omp_mappable_type): New function.
      	(cplus_decl_attributes): Add implicit "omp declare target" attribute
      	if requested.
      	* parser.c (cp_debug_parser): Print
      	parser->colon_doesnt_start_class_def_p.
      	(cp_ensure_no_omp_declare_simd, cp_finalize_omp_declare_simd): New
      	functions.
      	(enum pragma_context): Add pragma_member and pragma_objc_icode.
      	(cp_parser_binary_expression): Handle no_toplevel_fold_p
      	even for binary operations other than comparison.
      	(cp_parser_linkage_specification): Call
      	cp_ensure_no_omp_declare_simd if needed.
      	(cp_parser_namespace_definition): Likewise.
      	(cp_parser_init_declarator): Call cp_finalize_omp_declare_simd.
      	(cp_parser_direct_declarator): Pass declarator to
      	cp_parser_late_return_type_opt.
      	(cp_parser_late_return_type_opt): Add declarator argument,
      	call cp_parser_late_parsing_omp_declare_simd for declare simd.
      	(cp_parser_class_specifier_1): Call cp_ensure_no_omp_declare_simd.
      	Parse UDRs before all other methods.
      	(cp_parser_member_specification_opt): Use pragma_member instead of
      	pragma_external.
      	(cp_parser_member_declaration): Call cp_finalize_omp_declare_simd.
      	(cp_parser_function_definition_from_specifiers_and_declarator,
      	cp_parser_save_member_function_body): Likewise.
      	(cp_parser_late_parsing_for_member): Handle UDRs specially.
      	(cp_parser_next_token_starts_class_definition_p): Don't allow
      	CPP_COLON if colon_doesnt_start_class_def_p flag is true.
      	(cp_parser_objc_interstitial_code): Use pragma_objc_icode
      	instead of pragma_external.
      	(cp_parser_omp_clause_name): Parse new OpenMP 4.0 clause names.
      	(cp_parser_omp_var_list_no_open): Parse array sections for
      	OMP_CLAUSE_{DEPEND,MAP,TO,FROM} clauses.  Add COLON argument,
      	if non-NULL, allow parsing to end with a colon rather than close
      	paren.
      	(cp_parser_omp_var_list): Adjust cp_parser_omp_var_list_no_open
      	caller.
      	(cp_parser_omp_clause_reduction): Handle user defined reductions.
      	(cp_parser_omp_clause_branch, cp_parser_omp_clause_cancelkind,
      	cp_parser_omp_clause_num_teams, cp_parser_omp_clause_thread_limit,
      	cp_parser_omp_clause_aligned, cp_parser_omp_clause_linear,
      	cp_parser_omp_clause_safelen, cp_parser_omp_clause_simdlen,
      	cp_parser_omp_clause_depend, cp_parser_omp_clause_map,
      	cp_parser_omp_clause_device, cp_parser_omp_clause_dist_schedule,
      	cp_parser_omp_clause_proc_bind, cp_parser_omp_clause_to,
      	cp_parser_omp_clause_from, cp_parser_omp_clause_uniform): New
      	functions.
      	(cp_parser_omp_all_clauses): Add finish_p argument.  Don't call
      	finish_omp_clauses if it is false.  Handle new OpenMP 4.0 clauses.
      	(cp_parser_omp_atomic): Parse seq_cst clause, pass
      	true if it is present to finish_omp_atomic.  Handle new OpenMP 4.0
      	atomic forms.
      	(cp_parser_omp_for_loop): Add CODE argument, pass it through
      	to finish_omp_for.  Change last argument to cclauses,
      	and adjust uses to grab parallel clauses from the array of all
      	the split clauses.
      	(cp_omp_split_clauses): New function.
      	(cp_parser_omp_simd): New function.
      	(cp_parser_omp_for): Add p_name, mask and cclauses arguments.
      	Allow the function to be called also when parsing combined constructs,
      	and call c_parser_omp_simd when parsing for simd.
      	(cp_parser_omp_sections_scope): If section-sequence doesn't start with
      	#pragma omp section, require exactly one structured-block instead of
      	sequence of statements.
      	(cp_parser_omp_sections): Add p_name, mask and cclauses arguments.
      	Allow the function to be called also when parsing combined constructs.
      	(cp_parser_omp_parallel): Add p_name, mask and cclauses arguments.
      	Allow the function to be called also when parsing combined
      	constructs.
      	(cp_parser_omp_taskgroup, cp_parser_omp_cancel,
      	cp_parser_omp_cancellation_point, cp_parser_omp_distribute,
      	cp_parser_omp_teams, cp_parser_omp_target_data,
      	cp_parser_omp_target_update, cp_parser_omp_target,
      	cp_parser_omp_declare_simd, cp_parser_late_parsing_omp_declare_simd,
      	cp_parser_omp_declare_target, cp_parser_omp_end_declare_target,
      	cp_parser_omp_declare_reduction_exprs, cp_parser_omp_declare_reduction,
      	cp_parser_omp_declare): New functions.
      	(cp_parser_omp_construct): Add p_name and mask vars.  Handle
      	PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
      	PRAGMA_OMP_TEAMS.  Adjust cp_parser_omp_for, cp_parser_omp_parallel
      	and cp_parser_omp_sections callers.
      	(cp_parser_pragma): Handle PRAGMA_OMP_CANCEL,
      	PRAGMA_OMP_CANCELLATION_POINT, PRAGMA_OMP_DECLARE_REDUCTION,
      	PRAGMA_OMP_DISTRIBUTE, PRAGMA_OMP_SIMD, PRAGMA_OMP_TASKGROUP,
      	PRAGMA_OMP_TEAMS, PRAGMA_OMP_TARGET, PRAGMA_OMP_END_DECLARE_TARGET.
      	Handle pragma_member and pragma_objc_icode like pragma_external.
      	(OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
      	OMP_SINGLE_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.
      	(OMP_PARALLEL_CLAUSE_MASK): Likewise.  Add OMP_CLAUSE_PROC_BIND.
      	(OMP_TASK_CLAUSE_MASK): Use OMP_CLAUSE_MASK_1 instead of 1.  Add
      	OMP_CLAUSE_DEPEND.
      	(OMP_SIMD_CLAUSE_MASK, OMP_CANCEL_CLAUSE_MASK,
      	OMP_CANCELLATION_POINT_CLAUSE_MASK, OMP_DISTRIBUTE_CLAUSE_MASK,
      	OMP_TEAMS_CLAUSE_MASK, OMP_TARGET_DATA_CLAUSE_MASK,
      	OMP_TARGET_UPDATE_CLAUSE_MASK, OMP_TARGET_CLAUSE_MASK,
      	OMP_DECLARE_SIMD_CLAUSE_MASK): Define.
      	* parser.h (struct cp_omp_declare_simd_data): New type.
      	(struct cp_parser): Add colon_doesnt_start_class_def_p and
      	omp_declare_simd fields.
      	* cp-objcp-common.h (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
      	* cp-tree.h (struct lang_decl_fn): Add omp_declare_reduction_p
      	bit.
      	(DECL_OMP_DECLARE_REDUCTION_P): Define.
      	(OMP_FOR_GIMPLIFYING_P): Use OMP_LOOP_CHECK macro.
      	(struct saved_scope): Add omp_declare_target_attribute field.
      	(cp_omp_mappable_type, omp_reduction_id,
      	cp_remove_omp_priv_cleanup_stmt, cp_check_omp_declare_reduction,
      	finish_omp_cancel, finish_omp_cancellation_point): New prototypes.
      	(finish_omp_for): Add CODE argument.
      	(finish_omp_atomic): Add seq_cst argument.
      	(cxx_omp_create_clause_info): Add need_dtor argument.
      gcc/testsuite/
      	* c-c++-common/gomp/atomic-15.c: Adjust for C diagnostics.
      	Remove error test that is now valid in OpenMP 4.0.
      	* c-c++-common/gomp/atomic-16.c: New test.
      	* c-c++-common/gomp/cancel-1.c: New test.
      	* c-c++-common/gomp/depend-1.c: New test.
      	* c-c++-common/gomp/depend-2.c: New test.
      	* c-c++-common/gomp/map-1.c: New test.
      	* c-c++-common/gomp/pr58472.c: New test.
      	* c-c++-common/gomp/sections1.c: New test.
      	* c-c++-common/gomp/simd1.c: New test.
      	* c-c++-common/gomp/simd2.c: New test.
      	* c-c++-common/gomp/simd3.c: New test.
      	* c-c++-common/gomp/simd4.c: New test.
      	* c-c++-common/gomp/simd5.c: New test.
      	* c-c++-common/gomp/single1.c: New test.
      	* g++.dg/gomp/block-0.C: Adjust for stricter #pragma omp sections
      	parser.
      	* g++.dg/gomp/block-3.C: Likewise.
      	* g++.dg/gomp/clause-3.C: Adjust error messages.
      	* g++.dg/gomp/declare-simd-1.C: New test.
      	* g++.dg/gomp/declare-simd-2.C: New test.
      	* g++.dg/gomp/depend-1.C: New test.
      	* g++.dg/gomp/depend-2.C: New test.
      	* g++.dg/gomp/target-1.C: New test.
      	* g++.dg/gomp/target-2.C: New test.
      	* g++.dg/gomp/taskgroup-1.C: New test.
      	* g++.dg/gomp/teams-1.C: New test.
      	* g++.dg/gomp/udr-1.C: New test.
      	* g++.dg/gomp/udr-2.C: New test.
      	* g++.dg/gomp/udr-3.C: New test.
      	* g++.dg/gomp/udr-4.C: New test.
      	* g++.dg/gomp/udr-5.C: New test.
      	* g++.dg/gomp/udr-6.C: New test.
      	* gcc.dg/autopar/outer-1.c: Expect 4 instead of 5 loopfn matches.
      	* gcc.dg/autopar/outer-2.c: Likewise.
      	* gcc.dg/autopar/outer-3.c: Likewise.
      	* gcc.dg/autopar/outer-4.c: Likewise.
      	* gcc.dg/autopar/outer-5.c: Likewise.
      	* gcc.dg/autopar/outer-6.c: Likewise.
      	* gcc.dg/autopar/parallelization-1.c: Likewise.
      	* gcc.dg/gomp/block-3.c: Adjust for stricter #pragma omp sections
      	parser.
      	* gcc.dg/gomp/clause-1.c: Adjust error messages.
      	* gcc.dg/gomp/combined-1.c: Look for GOMP_parallel_loop_runtime
      	instead of GOMP_parallel_loop_runtime_start.
      	* gcc.dg/gomp/declare-simd-1.c: New test.
      	* gcc.dg/gomp/declare-simd-2.c: New test.
      	* gcc.dg/gomp/nesting-1.c: Adjust for stricter #pragma omp sections
      	parser.  Add further #pragma omp sections nesting tests.
      	* gcc.dg/gomp/target-1.c: New test.
      	* gcc.dg/gomp/target-2.c: New test.
      	* gcc.dg/gomp/taskgroup-1.c: New test.
      	* gcc.dg/gomp/teams-1.c: New test.
      	* gcc.dg/gomp/udr-1.c: New test.
      	* gcc.dg/gomp/udr-2.c: New test.
      	* gcc.dg/gomp/udr-3.c: New test.
      	* gcc.dg/gomp/udr-4.c: New test.
      	* gfortran.dg/gomp/appendix-a/a.35.5.f90: Add dg-error.
      
      Co-Authored-By: Richard Henderson <rth@redhat.com>
      Co-Authored-By: Tobias Burnus <burnus@net-b.de>
      
      From-SVN: r203408
      Jakub Jelinek committed
  25. 25 Sep, 2013 1 commit
  26. 06 Sep, 2013 1 commit
    • lto-streamer.h (lto_global_var_decls): Remove. · 35f32ad4
      2013-09-06  Richard Biener  <rguenther@suse.de>
      
      	* lto-streamer.h (lto_global_var_decls): Remove.
      	* Makefile.in (OBJS): Remove lto-symtab.o.
      	(lto-symtab.o): Remove.
      	(GTFILES): Remove lto-symtab.c
      	* lto-symtab.c: Move to lto/
      
      	lto/
      	* lto-symtab.c: Move from gcc/
      	* lto.h: Include vec.h.
      	(lto_global_var_decls): Declare.
      	* lto.c (lto_global_var_decls): Move definition here.
      	* Make-lang.in (LTO_OBJS): Add lto-symtab.o.
      	(lto-symtab.o): Add.
      	* config-lang.in (gtfiles): Add lto.h.
      
      From-SVN: r202313
      Richard Biener committed
  27. 02 Sep, 2013 1 commit
  28. 01 Sep, 2013 1 commit
    • lto.c (tree_with_vars): Turn into vector. · 31f1f73b
      	* lto.c (tree_with_vars): Turn into vector.
      	(MAYBE_REMEMBER_WITH_VARS): Change to...
      	(CHECK_VAR): ... this one.
      	(CHECK_NO_VAR): New macro.
      	(maybe_remember_with_vars_typed): Turn to ...
      	(mentions_vars_p_typed): ... this one.
      	(maybe_remember_with_vars_common): Turn to ...
      	(mentions_vars_p_comon): ... this one.
      	(maybe_remember_with_vars_decl_minimal): Turn to ...
      	(mentions_vars_p_decl_minmal): ... this one.
      	(maybe_remember_with_vars_decl_common): Turn to ...
      	(mentions_vars_p_decl_common): ... this one.
      	(maybe_remember_with_vars_decl_with_vis): Turn to ...
      	(mentions_vars_p_decl_with_vis): ... this one.
      	(maybe_remember_with_vars_decl_non_common): Turn to ...
      	(mentions_vars_p_decl_non_common): ... this one.
      	(maybe_remember_with_vars_function): Turn to ...
      	(mentions_vars_p_function): ... this one.
      	(maybe_remember_with_vars_field_decl): Turn to ...
      	(mentions_vars_p_field_decl): ... this one.
      	(maybe_remember_with_vars_type): Turn to ...
      	(mentions_vars_p_type): ... this one.
      	(maybe_remember_with_vars_binfo): Turn to ...
      	(mentions_vars_p_binfo): ... this one.
      	(maybe_remember_with_vars_constructor): Turn to ...
      	(mentions_vars_p_constructor): ... this one.
      	(maybe_remember_with_vars_expr): Turn to ...
      	(mentions_vars_p_expr): ... this one.
      	(maybe_remember_with_vars): Turn to ...
      	(mentions_vars_p): ... this one.
      	(lto_read_decls): Update.
      	(LTO_SET_PREVAIL): Do not call function for internal decls.
      	(lto_fixup_prevailing_decls): Update to match mentions_vars_p;
      	check that something was updated.
      	(lto_fixup_state): Do not care about internal decls.
      	(lto_fixup_decls): Update.
      	(read_cgraph_and_symbols): Update.
      
      From-SVN: r202143
      Jan Hubicka committed
  29. 30 Aug, 2013 1 commit
    • lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state. · 256eefa9
      	* lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
      	* cgraph.c (cgraph_release_function_body): Free decl_in_state.
      	* lto-section-in.c (lto_free_function_in_decl_state): New function.
      	(lto_free_function_in_decl_state_for_node): New function.
      
      	* lto.c (read_cgraph_and_symbols): Remove ggc_collect;
      	clear section node; add comment why we do not collect.
      
      From-SVN: r202093
      Jan Hubicka committed
  30. 29 Aug, 2013 1 commit
    • lto.c (compare_tree_sccs_1): Compare DECL_FINAL_P... · 0170f33c
      	* lto.c (compare_tree_sccs_1): Compare  DECL_FINAL_P,
      	DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and
      	TYPE_FINAL_P.
      
      	* lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P.
      	DECL_CXX_CONSTRUCTOR_P. DECL_CXX_DESTRUCTOR_P.
      	TYPE_FINAL_P.
      	* lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields):
      	DECL_FINAL_P. DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
      	(unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
      	* tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
      	Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P
      	(pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
      
      From-SVN: r202079
      Jan Hubicka committed