1. 02 Aug, 2019 1 commit
    • vec.h (vec::sort): Add gcc_qsort_r support. · 8c228993
      2019-08-02  Richard Biener  <rguenther@suse.de>
      
      	* vec.h (vec::sort): Add gcc_qsort_r support.
      	(vec::bsearch): Add an overload with gcc_qsort_r style callbacks.
      	* tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust
      	to gcc_qsort_r style callback.
      	(sort_locs_in_loop_postorder_cmp): Likewise.
      	(analyze_memory_references): Use gcc_sort_r interfaces.
      	(find_ref_loc_in_loop_cmp): Use new bsearch overload.
      
      From-SVN: r274004
      Richard Biener committed
  2. 26 Feb, 2019 1 commit
    • Improve memory statistics report readability. · 60448173
      2019-02-26  Martin Liska  <mliska@suse.cz>
      
      	* alloc-pool.h (struct pool_usage): Remove extra
      	print_dash_line.
      	* bitmap.h (struct bitmap_usage): Likewise.
      	* ggc-common.c (struct ggc_usage): Likewise.
      	* mem-stats.h (struct mem_usage): Likewise.
      	(mem_alloc_description::dump): Print dash lines
      	here and repeat header at the end of a table report.
      	It's then more readable.
      	* tree-phinodes.c (phinodes_print_statistics): Make
      	horizontal alignment.
      	* tree-ssanames.c (ssanames_print_statistics): Likewise.
      	* vec.c (struct vec_usage): Remove extra print_dash_line.
      	* vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
      2019-02-26  Martin Liska  <mliska@suse.cz>
      
      	* symtab.c (ht_dump_statistics): Make
      	horizontal alignment for statistics.
      
      From-SVN: r269221
      Martin Liska committed
  3. 18 Feb, 2019 1 commit
    • Come up with fast {function,call}_summary classes (PR ipa/89306). · db30281f
      2019-02-18  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/89306
      	* cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
      	by default.
      	(symbol_table::free_edge): Recycle m_summary_id.
      	* cgraph.h (get_summary_id): New.
      	(symbol_table::release_symbol): Set m_summary_id to -1
      	by default.
      	(symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
      	* ipa-fnsummary.c (ipa_fn_summary_t): Switch from
      	function_summary to fast_function_summary.
      	* ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
      	* ipa-pure-const.c (class funct_state_summary_t):
      	Switch from function_summary to fast_function_summary.
      	* ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
      	(class ipa_ref_opt_summary_t): Switch from function_summary
      	to fast_function_summary.
      	* symbol-summary.h (class function_summary_base): New class
      	that is created from base of former function_summary.
      	(function_summary_base::unregister_hooks): New.
      	(class function_summary): Inherit from function_summary_base.
      	(class call_summary_base): New class
      	that is created from base of former call_summary.
      	(class call_summary): Inherit from call_summary_base.
      	(struct is_same): New.
      	(class fast_function_summary): New summary class.
      	(class fast_call_summary): New summary class.
      	* vec.h (vec_safe_grow_cleared): New function.
      
      From-SVN: r268979
      Martin Liska committed
  4. 01 Jan, 2019 1 commit
  5. 06 Nov, 2018 1 commit
  6. 05 Nov, 2018 1 commit
    • Fix vector memory statistics. · 00e6775a
      2018-11-05  Martin Liska  <mliska@suse.cz>
      
      	* mem-stats.h (mem_alloc_description::release_instance_overhead):
      	Return T *.
      	* vec.c (struct vec_usage): Register m_element_size.
      	(vec_prefix::register_overhead): New arguments: elements and
      	element_size.
      	(vec_prefix::release_overhead): Subtract elements.
      	* vec.h (struct vec_prefix): Change signature.
      	(va_heap::reserve): Pass proper arguments.
      	(va_heap::release): Likewise.
      
      From-SVN: r265799
      Martin Liska committed
  7. 28 Jun, 2018 1 commit
    • Introduce auto_string_vec class. · 3de37a5d
      2018-06-28  Martin Liska  <mliska@suse.cz>
      
      	* vec.h (class auto_string_vec): New (moved from auto_argvec).
      	(auto_string_vec::~auto_string_vec): Likewise.
      2018-06-28  Martin Liska  <mliska@suse.cz>
      
      	* jit-playback.c (class auto_argvec): Moved to vec.h.
      	(auto_argvec::~auto_argvec): Likewise.
      	(compile): Use the renamed name.
      	(invoke_driver): Likewise.
      
      From-SVN: r262208
      Martin Liska committed
  8. 29 May, 2018 1 commit
    • Add vec::reverse. · c04f6480
      2018-05-29  Martin Liska  <mliska@suse.cz>
      	    David Malcolm  <dmalcolm@redhat.com>
      
      	* vec.c (test_reverse): New.
      	(vec_c_tests): Add new test.
      	* vec.h (vl_ptr>::reverse): New function.
      
      Co-Authored-By: David Malcolm <dmalcolm@redhat.com>
      
      From-SVN: r260890
      Martin Liska committed
  9. 01 May, 2018 1 commit
    • Add VEC_ORDERED_REMOVE_IF · b94c2dc1
      2018-05-01  Tom de Vries  <tom@codesourcery.com>
      
      	PR other/83786
      	* vec.h	(VEC_ORDERED_REMOVE_IF, VEC_ORDERED_REMOVE_IF_FROM_TO): Define.
      	* vec.c (test_ordered_remove_if): New function.
      	(vec_c_tests): Call test_ordered_remove_if.
      	* dwarf2cfi.c (connect_traces): Use VEC_ORDERED_REMOVE_IF_FROM_TO.
      	* lto-streamer-out.c (prune_offload_funcs): Use VEC_ORDERED_REMOVE_IF.
      	* tree-vect-patterns.c (vect_pattern_recog_1): Use
      	VEC_ORDERED_REMOVE_IF.
      
      From-SVN: r259808
      Tom de Vries committed
  10. 26 Feb, 2018 1 commit
  11. 16 Feb, 2018 1 commit
    • re PR bootstrap/84405 (Fails to bootstrap with GCC 4.1.2, GCC 4.2.4) · ab67039c
      	PR bootstrap/84405
      	* system.h (BROKEN_VALUE_INITIALIZATION): Define for GCC < 4.3.
      	* vec.h (vec_default_construct): Use memset instead of placement new
      	if BROKEN_VALUE_INITIALIZATION is defined.
      	* hash-table.h (hash_table<Descriptor, Allocator>::empty_slow): Use
      	memset instead of value initialization if BROKEN_VALUE_INITIALIZATION
      	is defined.
      
      From-SVN: r257726
      Jakub Jelinek committed
  12. 03 Jan, 2018 1 commit
  13. 27 Nov, 2017 1 commit
  14. 20 Nov, 2017 1 commit
    • vec.h (debug_helper): New function. · 19a30b71
      	* vec.h (debug_helper): New function.
      	(DEFINE_DEBUG_VEC): New macro.
      	* hash-set.h (debug_helper): New function.
      	(DEFINE_DEBUG_HASH_SET): New macro.
      	* cfg.c (debug_slim (edge)): New function.
      	Call DEFINE_DEBUG_VEC for edges.
      	Call DEFINE_DEBUG_HASH_SET for edges.
      	* cfghooks.c (debug_slim (basic_block)): New function.
      	Call DEFINE_DEBUG_VEC for basic blocks.
      	Call DEFINE_DEBUG_HASH_SET for basic blocks.
      	* print-tree.c (debug_slim): New function to handle trees.
      	Call DEFINE_DEBUG_VEC for trees.
      	Call DEFINE_DEBUG_HASH_SET for trees.
      	(debug (vec<tree, va_gc>) &): Remove.
      	(debug (<vec<tree, va_gc>) *): Remove.
      	* print-rtl.c (debug_slim): New function to handle const_rtx.
      	Call DEFINE_DEBUG_VEC for rtx_def.
      	Call DEFINE_DEBUG_VEC for rtx_insn.
      	Call DEFINE_DEBUG_HASH_SET for rtx_def.
      	Call DEFINE_DEBUG_HASH_SET for rtx_insn.
      	* sel-sched-dump.c (debug (vec<rtx_insn *> &): Remove.
      	(debug (vec<rtx_insn *> *ptr): Remove.
      	(debug_insn_vector): Remove.
      	* stor-layout.c (debug_rli): Call debug() instead of debug_vec_tree.
      
      From-SVN: r254945
      Aldy Hernandez committed
  15. 16 Jun, 2017 1 commit
    • PR c++/80560 - warn on undefined memory operations involving non-trivial types · c3684b7b
      gcc/c-family/ChangeLog:
      
      	PR c++/80560
      	* c.opt (-Wclass-memaccess): New option.
      
      gcc/cp/ChangeLog:
      
      	PR c++/80560
      	* call.c (first_non_public_field, maybe_warn_class_memaccess): New
      	functions.
      	(has_trivial_copy_assign_p, has_trivial_copy_p): Ditto.
      	(build_cxx_call): Call maybe_warn_class_memaccess.
      
      gcc/ChangeLog:
      
      	PR c++/80560
      	* dumpfile.c (dump_register): Avoid calling memset to initialize
      	a class with a default ctor.
      	* gcc.c (struct compiler): Remove const qualification.
      	* genattrtab.c (gen_insn_reserv): Replace memset with initialization.
      	* hash-table.h: Ditto.
      	* ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
      	  assignment.
      	* ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
      	* omp-low.c (lower_omp_ordered_clauses): Replace memset with
      	default ctor.
      	* params.h (struct param_info): Make struct members non-const.
      	* tree-switch-conversion.c (emit_case_bit_tests): Replace memset
      	with default initialization.
      	* vec.h (vec_copy_construct, vec_default_construct): New helper
      	functions.
      	(vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
      	with vec_copy_construct.
      	(vect<T>::quick_grow_cleared): Replace memset with default ctor.
      	(vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
      	* doc/invoke.texi (-Wclass-memaccess): Document.
      
      libcpp/ChangeLog:
      
      	PR c++/80560
      	* line-map.c (line_maps::~line_maps): Avoid calling htab_delete
      	with a null pointer.
      	(linemap_init): Avoid calling memset on an object of a non-trivial
      	type.
      
      libitm/ChangeLog:
      
      	PR c++/80560
      	* beginend.cc (GTM::gtm_thread::rollback): Avoid calling memset
      	on an object of a non-trivial type.
      	(GTM::gtm_transaction_cp::commit): Use assignment instead of memcpy
      	to copy an object.
      	* method-ml.cc (orec_iterator::reinit): Avoid -Wclass-memaccess.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/80560
      	* g++.dg/Wclass-memaccess.C: New test.
      
      From-SVN: r249234
      Martin Sebor committed
  16. 18 May, 2017 1 commit
  17. 14 May, 2017 1 commit
  18. 01 Jan, 2017 1 commit
  19. 22 Dec, 2016 1 commit
  20. 16 Dec, 2016 1 commit
  21. 01 Dec, 2016 1 commit
  22. 23 Sep, 2016 2 commits
  23. 24 Apr, 2016 1 commit
  24. 04 Jan, 2016 1 commit
  25. 27 Nov, 2015 1 commit
    • Fix memory leak in cilk · b58d3df2
      	PR c++/68312
      	* c-array-notation.c (fix_builtin_array_notation_fn):
      	Use release_vec_vec instead of vec::release.
      	(build_array_notation_expr): Likewise.
      	(fix_conditional_array_notations_1): Likewise.
      	(fix_array_notation_expr): Likewise.
      	(fix_array_notation_call_expr): Likewise.
      	PR c++/68312
      	* cp-array-notation.c (expand_sec_reduce_builtin):
      	Likewise.
      	(create_array_refs): Replace argument with const reference.
      	(expand_an_in_modify_expr): Likewise.
      	(cp_expand_cond_array_notations): Likewise.
      	(expand_unary_array_notation_exprs): Likewise.
      	PR c++/68312
      	* array-notation-common.c (cilkplus_extract_an_triplets):
      	Release vector of vectors.
      	* cilk.c (gimplify_cilk_spawn): Free allocated memory.
      	PR c++/68312
      	* vec.h (release_vec_vec): New function.
      
      From-SVN: r231001
      Martin Liska committed
  26. 13 Jul, 2015 1 commit
  27. 08 Jun, 2015 1 commit
    • coretypes.h: Include hash-table.h and hash-set.h for host files. · 13fdf2e2
      2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
      
      	* coretypes.h: Include hash-table.h and hash-set.h for host files.
      	* ggc.h: Don't include statistics.h>
      	* hash-map.h: Remove all includes.
      	* hash-set.h: Likewise.
      	* hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
      	the include list. Remove <new>.
      	* inchash.h: Remove all includes.
      	* mem-stats.h: Likewise.
      	* vec.h: No special processing for generators or ggc.  
      	* alias.c : Adjust include files.
      	* alloc-pool.c : Likewise.
      	* alloc-pool.h : Likewise.
      	* asan.c : Likewise.
      	* attribs.c : Likewise.
      	* auto-inc-dec.c : Likewise.
      	* auto-profile.c : Likewise.
      	* bb-reorder.c : Likewise.
      	* bitmap.c : Likewise.
      	* bitmap.h : Likewise.
      	* bt-load.c : Likewise.
      	* builtins.c : Likewise.
      	* caller-save.c : Likewise.
      	* calls.c : Likewise.
      	* ccmp.c : Likewise.
      	* cfg.c : Likewise.
      	* cfganal.c : Likewise.
      	* cfgbuild.c : Likewise.
      	* cfgcleanup.c : Likewise.
      	* cfgexpand.c : Likewise.
      	* cfghooks.c : Likewise.
      	* cfgloop.c : Likewise.
      	* cfgloop.h : Likewise.
      	* cfgloopanal.c : Likewise.
      	* cfgloopmanip.c : Likewise.
      	* cfgrtl.c : Likewise.
      	* cgraph.c : Likewise.
      	* cgraphbuild.c : Likewise.
      	* cgraphclones.c : Likewise.
      	* cgraphunit.c : Likewise.
      	* cilk-common.c : Likewise.
      	* combine-stack-adj.c : Likewise.
      	* combine.c : Likewise.
      	* compare-elim.c : Likewise.
      	* context.c : Likewise.
      	* convert.c : Likewise.
      	* coverage.c : Likewise.
      	* cppbuiltin.c : Likewise.
      	* cprop.c : Likewise.
      	* cse.c : Likewise.
      	* cselib.c : Likewise.
      	* data-streamer-in.c : Likewise.
      	* data-streamer-out.c : Likewise.
      	* data-streamer.c : Likewise.
      	* data-streamer.h : Likewise.
      	* dbxout.c : Likewise.
      	* dce.c : Likewise.
      	* ddg.c : Likewise.
      	* debug.c : Likewise.
      	* df-core.c : Likewise.
      	* df-problems.c : Likewise.
      	* df-scan.c : Likewise.
      	* df.h : Likewise.
      	* dfp.c : Likewise.
      	* dojump.c : Likewise.
      	* dominance.c : Likewise.
      	* domwalk.c : Likewise.
      	* double-int.c : Likewise.
      	* dse.c : Likewise.
      	* dumpfile.c : Likewise.
      	* dwarf2asm.c : Likewise.
      	* dwarf2cfi.c : Likewise.
      	* dwarf2out.c : Likewise.
      	* emit-rtl.c : Likewise.
      	* et-forest.c : Likewise.
      	* except.c : Likewise.
      	* except.h : Likewise.
      	* explow.c : Likewise.
      	* expmed.c : Likewise.
      	* expr.c : Likewise.
      	* final.c : Likewise.
      	* fixed-value.c : Likewise.
      	* fold-const.c : Likewise.
      	* function.c : Likewise.
      	* fwprop.c : Likewise.
      	* gcc-plugin.h : Likewise.
      	* gcc.c : Likewise.
      	* gcse-common.c : Likewise.
      	* gcse.c : Likewise.
      	* genattrtab.c : Likewise.
      	* genautomata.c : Likewise.
      	* genconditions.c : Likewise.
      	* genemit.c : Likewise.
      	* generic-match-head.c : Likewise.
      	* genextract.c : Likewise.
      	* gengtype-state.c : Likewise.
      	* gengtype.c : Likewise.
      	* genhooks.c : Likewise.
      	* genmatch.c : Likewise.
      	* genmodes.c : Likewise.
      	* genrecog.c : Likewise.
      	* gensupport.c : Likewise.
      	* ggc-common.c : Likewise.
      	* ggc-internal.h : Likewise.
      	* ggc-none.c : Likewise.
      	* ggc-page.c : Likewise.
      	* gimple-builder.c : Likewise.
      	* gimple-expr.c : Likewise.
      	* gimple-fold.c : Likewise.
      	* gimple-iterator.c : Likewise.
      	* gimple-low.c : Likewise.
      	* gimple-match-head.c : Likewise.
      	* gimple-pretty-print.c : Likewise.
      	* gimple-ssa-isolate-paths.c : Likewise.
      	* gimple-ssa-strength-reduction.c : Likewise.
      	* gimple-ssa.h : Likewise.
      	* gimple-streamer-in.c : Likewise.
      	* gimple-streamer-out.c : Likewise.
      	* gimple-streamer.h : Likewise.
      	* gimple-walk.c : Likewise.
      	* gimple.c : Likewise.
      	* gimplify-me.c : Likewise.
      	* gimplify.c : Likewise.
      	* godump.c : Likewise.
      	* graph.c : Likewise.
      	* graphds.c : Likewise.
      	* graphite-blocking.c : Likewise.
      	* graphite-dependences.c : Likewise.
      	* graphite-interchange.c : Likewise.
      	* graphite-isl-ast-to-gimple.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.
      	* haifa-sched.c : Likewise.
      	* hard-reg-set.h : Likewise.
      	* hw-doloop.c : Likewise.
      	* ifcvt.c : Likewise.
      	* inchash.c : Likewise.
      	* incpath.c : Likewise.
      	* init-regs.c : Likewise.
      	* input.c : Likewise.
      	* internal-fn.c : Likewise.
      	* ipa-chkp.c : Likewise.
      	* ipa-comdats.c : Likewise.
      	* ipa-cp.c : Likewise.
      	* ipa-devirt.c : Likewise.
      	* ipa-icf-gimple.c : Likewise.
      	* ipa-icf.c : Likewise.
      	* ipa-inline-analysis.c : Likewise.
      	* ipa-inline-transform.c : Likewise.
      	* ipa-inline.c : Likewise.
      	* ipa-polymorphic-call.c : Likewise.
      	* ipa-profile.c : Likewise.
      	* ipa-prop.c : Likewise.
      	* ipa-pure-const.c : Likewise.
      	* ipa-ref.c : Likewise.
      	* ipa-reference.c : Likewise.
      	* ipa-split.c : Likewise.
      	* ipa-utils.c : Likewise.
      	* ipa-visibility.c : Likewise.
      	* ipa.c : Likewise.
      	* ira-build.c : Likewise.
      	* ira-color.c : Likewise.
      	* ira-conflicts.c : Likewise.
      	* ira-costs.c : Likewise.
      	* ira-emit.c : Likewise.
      	* ira-lives.c : Likewise.
      	* ira.c : Likewise.
      	* jump.c : Likewise.
      	* langhooks.c : Likewise.
      	* lcm.c : Likewise.
      	* libfuncs.h : Likewise.
      	* lists.c : Likewise.
      	* loop-doloop.c : Likewise.
      	* loop-init.c : Likewise.
      	* loop-invariant.c : Likewise.
      	* loop-iv.c : Likewise.
      	* loop-unroll.c : Likewise.
      	* lower-subreg.c : Likewise.
      	* lra-assigns.c : Likewise.
      	* lra-coalesce.c : Likewise.
      	* lra-constraints.c : Likewise.
      	* lra-eliminations.c : Likewise.
      	* lra-lives.c : Likewise.
      	* lra-remat.c : Likewise.
      	* lra-spills.c : Likewise.
      	* lra.c : Likewise.
      	* lto-cgraph.c : Likewise.
      	* lto-compress.c : Likewise.
      	* lto-opts.c : Likewise.
      	* lto-section-in.c : Likewise.
      	* lto-section-out.c : Likewise.
      	* lto-streamer-in.c : Likewise.
      	* lto-streamer-out.c : Likewise.
      	* lto-streamer.c : Likewise.
      	* lto-streamer.h : Likewise.
      	* mcf.c : Likewise.
      	* mode-switching.c : Likewise.
      	* modulo-sched.c : Likewise.
      	* omega.c : Likewise.
      	* omp-low.c : Likewise.
      	* optabs.c : Likewise.
      	* opts-global.c : Likewise.
      	* opts.h : Likewise.
      	* passes.c : Likewise.
      	* plugin.c : Likewise.
      	* postreload-gcse.c : Likewise.
      	* postreload.c : Likewise.
      	* predict.c : Likewise.
      	* print-rtl.c : Likewise.
      	* print-tree.c : Likewise.
      	* profile.c : Likewise.
      	* read-md.c : Likewise.
      	* read-md.h : Likewise.
      	* read-rtl.c : Likewise.
      	* real.c : Likewise.
      	* realmpfr.c : Likewise.
      	* recog.c : Likewise.
      	* ree.c : Likewise.
      	* reg-stack.c : Likewise.
      	* regcprop.c : Likewise.
      	* reginfo.c : Likewise.
      	* regrename.c : Likewise.
      	* regstat.c : Likewise.
      	* reload.c : Likewise.
      	* reload1.c : Likewise.
      	* reorg.c : Likewise.
      	* resource.c : Likewise.
      	* rtl-chkp.c : Likewise.
      	* rtl.c : Likewise.
      	* rtl.h : Likewise.
      	* rtlanal.c : Likewise.
      	* rtlhash.c : Likewise.
      	* rtlhash.h : Likewise.
      	* rtlhooks.c : Likewise.
      	* sanopt.c : Likewise.
      	* sched-deps.c : Likewise.
      	* sched-ebb.c : Likewise.
      	* sched-rgn.c : Likewise.
      	* sched-vis.c : Likewise.
      	* sdbout.c : Likewise.
      	* sel-sched-dump.c : Likewise.
      	* sel-sched-ir.c : Likewise.
      	* sel-sched-ir.h : Likewise.
      	* sel-sched.c : Likewise.
      	* sese.c : Likewise.
      	* shrink-wrap.c : Likewise.
      	* shrink-wrap.h : Likewise.
      	* simplify-rtx.c : Likewise.
      	* stack-ptr-mod.c : Likewise.
      	* statistics.c : Likewise.
      	* stmt.c : Likewise.
      	* stor-layout.c : Likewise.
      	* store-motion.c : Likewise.
      	* stringpool.c : Likewise.
      	* symtab.c : Likewise.
      	* target-globals.c : Likewise.
      	* targhooks.c : Likewise.
      	* tlink.c : Likewise.
      	* toplev.c : Likewise.
      	* tracer.c : Likewise.
      	* trans-mem.c : Likewise.
      	* tree-affine.c : Likewise.
      	* tree-affine.h : Likewise.
      	* tree-browser.c : Likewise.
      	* tree-call-cdce.c : Likewise.
      	* tree-cfg.c : Likewise.
      	* tree-cfgcleanup.c : Likewise.
      	* tree-chkp-opt.c : Likewise.
      	* tree-chkp.c : Likewise.
      	* tree-chrec.c : Likewise.
      	* tree-complex.c : Likewise.
      	* tree-data-ref.c : Likewise.
      	* tree-dfa.c : Likewise.
      	* tree-diagnostic.c : Likewise.
      	* tree-dump.c : Likewise.
      	* tree-eh.c : Likewise.
      	* tree-eh.h : Likewise.
      	* tree-emutls.c : Likewise.
      	* tree-hasher.h : Likewise.
      	* tree-if-conv.c : Likewise.
      	* tree-inline.c : Likewise.
      	* tree-inline.h : Likewise.
      	* tree-into-ssa.c : Likewise.
      	* tree-iterator.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-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-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-loop.c : Likewise.
      	* tree-ssa-math-opts.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-scopedtables.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-ssa.c : Likewise.
      	* tree-ssanames.c : Likewise.
      	* tree-stdarg.c : Likewise.
      	* tree-streamer-in.c : Likewise.
      	* tree-streamer-out.c : Likewise.
      	* tree-streamer.c : Likewise.
      	* tree-streamer.h : Likewise.
      	* tree-switch-conversion.c : Likewise.
      	* tree-tailcall.c : Likewise.
      	* tree-vect-data-refs.c : Likewise.
      	* tree-vect-generic.c : Likewise.
      	* tree-vect-loop-manip.c : Likewise.
      	* tree-vect-loop.c : Likewise.
      	* tree-vect-patterns.c : Likewise.
      	* tree-vect-slp.c : Likewise.
      	* tree-vect-stmts.c : Likewise.
      	* tree-vectorizer.c : Likewise.
      	* tree-vectorizer.h : Likewise.
      	* tree-vrp.c : Likewise.
      	* tree.c : Likewise.
      	* tsan.c : Likewise.
      	* ubsan.c : Likewise.
      	* valtrack.c : Likewise.
      	* valtrack.h : Likewise.
      	* value-prof.c : Likewise.
      	* var-tracking.c : Likewise.
      	* varasm.c : Likewise.
      	* varpool.c : Likewise.
      	* vec.c: Likewise.
      	* vmsdbgout.c : Likewise.
      	* vtable-verify.c : Likewise.
      	* vtable-verify.h : Likewise.
      	* web.c : Likewise.
      	* wide-int.cc : Likewise.
      	* xcoffout.c : Likewise.
      	* config/aarch64/aarch64-builtins.c : Likewise.
      	* config/aarch64/aarch64.c : Likewise.
      	* config/aarch64/cortex-a57-fma-steering.c : Likewise.
      	* config/alpha/alpha.c : Likewise.
      	* config/arc/arc.c : Likewise.
      	* config/arm/aarch-common.c : Likewise.
      	* config/arm/arm-builtins.c : Likewise.
      	* config/arm/arm-c.c : Likewise.
      	* config/arm/arm.c : Likewise.
      	* config/avr/avr-c.c : Likewise.
      	* config/avr/avr-log.c : Likewise.
      	* config/avr/avr.c : Likewise.
      	* config/bfin/bfin.c : Likewise.
      	* config/c6x/c6x.c : Likewise.
      	* config/cr16/cr16.c : Likewise.
      	* config/cris/cris.c : Likewise.
      	* config/darwin-c.c : Likewise.
      	* config/darwin.c : Likewise.
      	* config/default-c.c : Likewise.
      	* config/epiphany/epiphany.c : Likewise.
      	* config/epiphany/mode-switch-use.c : Likewise.
      	* config/epiphany/resolve-sw-modes.c : Likewise.
      	* config/fr30/fr30.c : Likewise.
      	* config/frv/frv.c : Likewise.
      	* config/ft32/ft32.c : Likewise.
      	* config/glibc-c.c : Likewise.
      	* config/h8300/h8300.c : Likewise.
      	* config/i386/i386-c.c : Likewise.
      	* config/i386/i386.c : Likewise.
      	* config/i386/msformat-c.c : Likewise.
      	* config/i386/winnt-cxx.c : Likewise.
      	* config/i386/winnt-stubs.c : Likewise.
      	* config/i386/winnt.c : Likewise.
      	* config/ia64/ia64-c.c : Likewise.
      	* config/ia64/ia64.c : Likewise.
      	* config/iq2000/iq2000.c : Likewise.
      	* config/lm32/lm32.c : Likewise.
      	* config/m32c/m32c-pragma.c : Likewise.
      	* config/m32c/m32c.c : Likewise.
      	* config/m32r/m32r.c : Likewise.
      	* config/m68k/m68k.c : Likewise.
      	* config/mcore/mcore.c : Likewise.
      	* config/mep/mep-pragma.c : Likewise.
      	* config/mep/mep.c : Likewise.
      	* config/microblaze/microblaze-c.c : Likewise.
      	* config/microblaze/microblaze.c : Likewise.
      	* config/mips/mips.c : Likewise.
      	* config/mmix/mmix.c : Likewise.
      	* config/mn10300/mn10300.c : Likewise.
      	* config/moxie/moxie.c : Likewise.
      	* config/msp430/msp430-c.c : Likewise.
      	* config/msp430/msp430.c : Likewise.
      	* config/nds32/nds32-cost.c : Likewise.
      	* config/nds32/nds32-fp-as-gp.c : Likewise.
      	* config/nds32/nds32-intrinsic.c : Likewise.
      	* config/nds32/nds32-isr.c : Likewise.
      	* config/nds32/nds32-md-auxiliary.c : Likewise.
      	* config/nds32/nds32-memory-manipulation.c : Likewise.
      	* config/nds32/nds32-pipelines-auxiliary.c : Likewise.
      	* config/nds32/nds32-predicates.c : Likewise.
      	* config/nds32/nds32.c : Likewise.
      	* config/nios2/nios2.c : Likewise.
      	* config/nvptx/nvptx.c : Likewise.
      	* config/pa/pa.c : Likewise.
      	* config/pdp11/pdp11.c : Likewise.
      	* config/rl78/rl78-c.c : Likewise.
      	* config/rl78/rl78.c : Likewise.
      	* config/rs6000/rs6000-c.c : Likewise.
      	* config/rs6000/rs6000.c : Likewise.
      	* config/rx/rx.c : Likewise.
      	* config/s390/s390-c.c : Likewise.
      	* config/s390/s390.c : Likewise.
      	* config/sh/sh-c.c : Likewise.
      	* config/sh/sh-mem.cc : Likewise.
      	* config/sh/sh.c : Likewise.
      	* config/sh/sh_optimize_sett_clrt.cc : Likewise.
      	* config/sh/sh_treg_combine.cc : Likewise.
      	* config/sol2-c.c : Likewise.
      	* config/sol2-cxx.c : Likewise.
      	* config/sol2-stubs.c : Likewise.
      	* config/sol2.c : Likewise.
      	* config/sparc/sparc-c.c : Likewise.
      	* config/sparc/sparc.c : Likewise.
      	* config/spu/spu-c.c : Likewise.
      	* config/spu/spu.c : Likewise.
      	* config/stormy16/stormy16.c : Likewise.
      	* config/tilegx/mul-tables.c : Likewise.
      	* config/tilegx/tilegx-c.c : Likewise.
      	* config/tilegx/tilegx.c : Likewise.
      	* config/tilepro/mul-tables.c : Likewise.
      	* config/tilepro/tilepro-c.c : Likewise.
      	* config/tilepro/tilepro.c : Likewise.
      	* config/v850/v850-c.c : Likewise.
      	* config/v850/v850.c : Likewise.
      	* config/vax/vax.c : Likewise.
      	* config/visium/visium.c : Likewise.
      	* config/vms/vms-c.c : Likewise.
      	* config/vms/vms.c : Likewise.
      	* config/vxworks.c : Likewise.
      	* config/winnt-c.c : Likewise.
      	* config/xtensa/xtensa.c : Likewise.
      
      ada
      2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
      
      	* gcc-interface/cuintp.c : Adjust include files.
      	* gcc-interface/decl.c : Likewise.
      	* gcc-interface/misc.c : Likewise.
      	* gcc-interface/targtyps.c : Likewise.
      	* gcc-interface/trans.c : Likewise.
      	* gcc-interface/utils.c : Likewise.
      	* gcc-interface/utils2.c : Likewise.
      	
      c
      2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
      
      	* c-array-notation.c : Adjust include files.
      	* c-aux-info.c : Likewise.
      	* c-convert.c : Likewise.
      	* c-decl.c : Likewise.
      	* c-errors.c : Likewise.
      	* c-lang.c : Likewise.
      	* c-lang.h : Likewise.
      	* c-objc-common.c : Likewise.
      	* c-parser.c : Likewise.
      	* c-typeck.c : Likewise.
      
      cfamily
      2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
      
      	* array-notation-common.c : Adjust include files.
      	* c-ada-spec.c : Likewise.
      	* c-cilkplus.c : Likewise.
      	* c-common.c : Likewise.
      	* c-common.h : Likewise.
      	* c-cppbuiltin.c : Likewise.
      	* c-dump.c : Likewise.
      	* c-format.c : Likewise.
      	* c-gimplify.c : Likewise.
      	* c-indentation.c : Likewise.
      	* c-lex.c : Likewise.
      	* c-omp.c : Likewise.
      	* c-opts.c : Likewise.
      	* c-pch.c : Likewise.
      	* c-ppoutput.c : Likewise.
      	* c-pragma.c : Likewise.
      	* c-pretty-print.c : Likewise.
      	* c-semantics.c : Likewise.
      	* c-ubsan.c : Likewise.
      	* cilk.c : Likewise.
      	* stub-objc.c : Likewise.
      
      cp
      2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
      
      	* call.c : Adjust include files.
      	* class.c : Likewise.
      	* constexpr.c : Likewise.
      	* cp-array-notation.c : Likewise.
      	* cp-cilkplus.c : Likewise.
      	* cp-gimplify.c : Likewise.
      	* cp-lang.c : Likewise.
      	* cp-objcp-common.c : Likewise.
      	* cp-tree.h : Likewise.
      	* cp-ubsan.c : Likewise.
      	* cvt.c : Likewise.
      	* decl.c : Likewise.
      	* decl2.c : Likewise.
      	* dump.c : Likewise.
      	* error.c : Likewise.
      	* except.c : Likewise.
      	* expr.c : Likewise.
      	* friend.c : Likewise.
      	* init.c : Likewise.
      	* lambda.c : Likewise.
      	* lex.c : Likewise.
      	* mangle.c : Likewise.
      	* method.c : Likewise.
      	* name-lookup.c : Likewise.
      	* optimize.c : Likewise.
      	* parser.c : Likewise.
      	* pt.c : Likewise.
      	* ptree.c : Likewise.
      	* repo.c : Likewise.
      	* rtti.c : Likewise.
      	* search.c : Likewise.
      	* semantics.c : Likewise.
      	* tree.c : Likewise.
      	* typeck.c : Likewise.
      	* typeck2.c : Likewise.
      	* vtable-class-hierarchy.c : Likewise.
      
      fortran
      2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
      
      	* convert.c : Adjust include files.
      	* cpp.c : Likewise.
      	* decl.c : Likewise.
      	* f95-lang.c : Likewise.
      	* gfortran.h : Likewise.
      	* iresolve.c : Likewise.
      	* match.c : Likewise.
      	* module.c : Likewise.
      	* openmp.c : Likewise.
      	* options.c : Likewise.
      	* target-memory.c : Likewise.
      	* trans-array.c : Likewise.
      	* trans-common.c : Likewise.
      	* trans-const.c : Likewise.
      	* trans-decl.c : Likewise.
      	* trans-expr.c : Likewise.
      	* trans-intrinsic.c : Likewise.
      	* trans-io.c : Likewise.
      	* trans-openmp.c : Likewise.
      	* trans-stmt.c : Likewise.
      	* trans-types.c : Likewise.
      	* trans.c : Likewise.
      
      
      go
      2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
      
      	* go-backend.c : Adjust include files.
      	* go-gcc.cc : Likewise.
      	* go-lang.c : Likewise.
      
      java
      2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
      
      	* boehm.c : Adjust include files.
      	* builtins.c : Likewise.
      	* class.c : Likewise.
      	* constants.c : Likewise.
      	* decl.c : Likewise.
      	* except.c : Likewise.
      	* expr.c : Likewise.
      	* java-gimplify.c : Likewise.
      	* java-tree.h : Likewise.
      	* jcf-dump.c : Likewise.
      	* jcf-io.c : Likewise.
      	* jcf-parse.c : Likewise.
      	* jcf-reader.c : Likewise.
      	* jvgenmain.c : Likewise.
      	* lang.c : Likewise.
      	* mangle.c : Likewise.
      	* mangle_name.c : Likewise.
      	* resource.c : Likewise.
      	* typeck.c : Likewise.
      	* verify-glue.c : Likewise.
      	* verify-impl.c : Likewise.
      
      jit
      2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
      
      	* dummy-frontend.c : Adjust include files.
      	* jit-common.h : Likewise.
      	* jit-playback.c : Likewise.
      
      lto
      2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
      
      	* lto-lang.c : Adjust include files.
      	* lto-object.c : Likewise.
      	* lto-partition.c : Likewise.
      	* lto-partition.h : Likewise.
      	* lto-symtab.c : Likewise.
      	* lto.c : Likewise.
      	* lto.h : Likewise.
      
      objc
      2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
      
      	* objc-act.c : Adjust include files.
      	* objc-encoding.c : Likewise.
      	* objc-gnu-runtime-abi-01.c : Likewise.
      	* objc-lang.c : Likewise.
      	* objc-map.c : Likewise.
      	* objc-next-runtime-abi-01.c : Likewise.
      	* objc-next-runtime-abi-02.c : Likewise.
      	* objc-runtime-shared-support.c : Likewise.
      
      objcp
      2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
      
      	* objcp-decl.c : Adjust include files.
      	* objcp-lang.c : Likewise.
      
      From-SVN: r224250
      Andrew MacLeod committed
  28. 27 May, 2015 1 commit
    • New memory allocation statistics infrastructure. · 2d44c7de
      	* Makefile.in: Add additional dependencies related to memory report
      	enhancement.
      	* alloc-pool.c (allocate_pool_descriptor): Use new ctor.
      	* bitmap.c (struct bitmap_descriptor_d): Remove.
      	(struct loc): Likewise.
      	(struct bitmap_desc_hasher): Likewise.
      	(bitmap_desc_hasher::hash): Likewise.
      	(bitmap_desc_hasher::equal): Likewise.
      	(get_bitmap_descriptor): Likewise.
      	(bitmap_register): User new memory descriptor API.
      	(register_overhead): Likewise.
      	(bitmap_find_bit): Register nsearches and search_iter statistics.
      	(struct bitmap_output_info): Remove.
      	(print_statistics): Likewise.
      	(dump_bitmap_statistics): Use new memory descriptor.
      	* bitmap.h (struct bitmap_usage): New class.
      	* genmatch.c: Extend header file inclusion.
      	* genpreds.c: Likewise.
      	* ggc-common.c (struct ggc_usage): New class.
      	(struct ggc_loc_desc_hasher): Remove.
      	(ggc_loc_desc_hasher::hash): Likewise.
      	(ggc_loc_desc_hasher::equal): Likewise.
      	(struct ggc_ptr_hash_entry): Likewise.
      	(struct ptr_hash_hasher): Likewise.
      	(ptr_hash_hasher::hash): Likewise.
      	(ptr_hash_hasher::equal): Likewise.
      	(make_loc_descriptor): Likewise.
      	(ggc_prune_ptr): Likewise.
      	(dump_ggc_loc_statistics): Use new memory descriptor.
      	(ggc_record_overhead): Likewise.
      	(ggc_free_overhead): Likewise.
      	(final_cmp_statistic): Remove.
      	(cmp_statistic): Likewise.
      	(ggc_add_statistics): Liekwise.
      	(ggc_prune_overhead_list): Likewise.
      	* hash-map-traits.h: New file.
      	* hash-map.h (struct default_hashmap_traits): Move the traits to a
      	separate header file.
      	* hash-set.h: Pass memory statistics info to ctor.
      	* hash-table.c (void dump_hash_table_loc_statistics): New function.
      	* hash-table.h (hash_table::hash_table): Add new ctor arguments.
      	(hash_table::~hash_table): Register memory release operation.
      	(hash_table::alloc_entries): Handle memory allocation operation.
      	(hash_table::expand): Likewise.
      	* inchash.c (iterative_hash_hashval_t): Move implementation to header
      	file.
      	(iterative_hash_host_wide_int): Likewise.
      	* inchash.h (class hash): Likewise.
      	* mem-stats-traits.h: New file.
      	* mem-stats.h: New file.
      	(mem_location): Add new class.
      	(mem_usage): Likewise.
      	(mem_alloc_description): Likewise.
      	* sese.c: Add new header file inclusision.
      	* toplev.c (dump_memory_report): Add report for hash_table, hash_map
      	and hash_set.
      	* tree-sra.c: Add new header file inclusision.
      	* vec.c (struct vec_descriptor): Remove.
      	(hash_descriptor): Likewise.
      	(struct vec_usage): Likewise.
      	(struct ptr_hash_entry): Likewise.
      	(hash_ptr): Likewise.
      	(eq_ptr): Likewise.
      	(vec_prefix::register_overhead): Use new memory descriptor API.
      	(vec_prefix::release_overhead): Likewise.
      	(add_statistics): Remove.
      	(dump_vec_loc_statistics): Use new memory descriptor API.
      	* vec.h (struct vec_prefix): Likewise.
      	(va_heap::reserve): Likewise.
      	(va_heap::release): Likewise.
      	* emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
      
      From-SVN: r223748
      Martin Liska committed
  29. 27 Apr, 2015 1 commit
  30. 05 Jan, 2015 1 commit
  31. 15 Dec, 2014 1 commit
  32. 17 May, 2014 1 commit
    • rm a bunch of _stat allocation functions · 231120e5
      Now that we can use c++ default arguments there's no reason to use
      functions and wrapper macros.
      
      gcc/ChangeLog:
      
      	* dwarf2out.c (tree_add_const_value_attribute): Call
      	ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
      	* gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
      	instead of ggc_internal_<x>alloc_stat.
      	* ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
      	(ggc_realloc): Likewise.
      	* ggc-none.c (ggc_internal_alloc): Likewise.
      	(ggc_internal_cleared_alloc): Likewise.
      	* ggc-page.c: Likewise.
      	* ggc.h (ggc_internal_alloc_stat): Likewise.
      	(ggc_internal_alloc): Remove macro.
      	(ggc_internal_cleared_alloc_stat): Drop _stat suffix.
      	(ggc_internal_cleared_alloc): Remove macro.
      	(GGC_RESIZEVEC): Adjust.
      	(ggc_resizevar): Remove macro.
      	(ggc_internal_vec_alloc_stat): Drop _stat suffix.
      	(ggc_internal_cleared_vec_alloc_stat): Likewise.
      	(ggc_internal_vec_cleared_alloc): Remove macro.
      	(ggc_alloc_atomic_stat): Drop _stat suffix.
      	(ggc_alloc_atomic): Remove macro.
      	(ggc_alloc_cleared_atomic): Remove macro.
      	(ggc_alloc_string_stat): Drop _stat suffix.
      	(ggc_alloc_string): Remove macro.
      	(ggc_alloc_rtx_def_stat): Adjust.
      	(ggc_alloc_tree_node_stat): Likewise.
      	(ggc_alloc_cleared_tree_node_stat): Likewise.
      	(ggc_alloc_cleared_gimple_statement_stat): Likewise.
      	(ggc_alloc_cleared_simd_clone_stat): Likewise.
      	* gimple.c (gimple_build_omp_for): Likewise.
      	(gimple_copy): Likewise.
      	* stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
      	* toplev.c (realloc_for_line_map): Adjust.
      	* tree-data-ref.h (lambda_vector_new): Likewise.
      	* tree-phinodes.c (allocate_phi_node): Likewise.
      	* tree.c (grow_tree_vec_stat): Likewise.
      	* vec.h (va_gc::reserve): Adjust.
      
      gcc/java/ChangeLog:
      
      	* constants.c (set_constant_entry): Adjust.
      
      From-SVN: r210565
      Trevor Saunders committed
  33. 12 Feb, 2014 1 commit
    • vec.c (vec_prefix::calculate_allocation): Move as inline variant to vec.h. · 3a938d75
      2014-02-12  Richard Biener  <rguenther@suse.de>
      
      	* vec.c (vec_prefix::calculate_allocation): Move as
      	inline variant to vec.h.
      	(vec_prefix::calculate_allocation_1): New out-of-line version.
      	* vec.h (vec_prefix::calculate_allocation_1): Declare.
      	(vec_prefix::m_has_auto_buf): Rename to ...
      	(vec_prefix::m_using_auto_storage): ... this.
      	(vec_prefix::calculate_allocation): Inline the easy cases
      	and dispatch to calculate_allocation_1 which doesn't need the
      	prefix address.
      	(va_heap::reserve): Use gcc_checking_assert.
      	(vec<T, A, vl_embed>::embedded_init): Add argument to initialize
      	m_using_auto_storage.
      	(auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
      	member and adjust.
      	(vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
      	(vec<T, va_heap, vl_ptr>::release): Avoid casting.
      	(vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
      
      From-SVN: r207729
      Richard Biener committed
  34. 07 Feb, 2014 1 commit
  35. 17 Jan, 2014 1 commit
    • re PR tree-optimization/46590 (long compile time with -O2 and many loops) · 32500433
      2014-01-17  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/46590
      	* vec.h (vec<>::bseach): New member function implementing
      	binary search according to C89 bsearch.
      	(vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
      	* tree-ssa-loop-im.c (struct mem_ref): Make stored member a
      	bitmap pointer again.  Make accesses_in_loop a flat array.
      	(mem_ref_obstack): New global.
      	(outermost_indep_loop): Adjust for mem_ref->stored changes.
      	(mark_ref_stored): Likewise.
      	(ref_indep_loop_p_2): Likewise.
      	(set_ref_stored_in_loop): New helper function.
      	(mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
      	(memref_free): Adjust.
      	(record_mem_ref_loc): Simplify.
      	(gather_mem_refs_stmt): Adjust.
      	(sort_locs_in_loop_postorder_cmp): New function.
      	(analyze_memory_references): Sort accesses_in_loop after
      	loop postorder number.
      	(find_ref_loc_in_loop_cmp): New function.
      	(for_all_locs_in_loop): Find relevant cluster of locs in
      	accesses_in_loop and iterate without recursion.
      	(execute_sm): Avoid uninit warning.
      	(struct ref_always_accessed): Simplify.
      	(ref_always_accessed::operator ()): Likewise.
      	(ref_always_accessed_p): Likewise.
      	(tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
      	loop postorder numbers here.
      	(tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
      	numbers.
      
      From-SVN: r206709
      Richard Biener committed
  36. 02 Jan, 2014 1 commit
  37. 20 Dec, 2013 1 commit
  38. 22 Nov, 2013 1 commit
    • add auto_vec · ef062b13
      2013-11-22  Trevor Saunders  <tsaunders@mozilla.com>
      
      gcc/
      	* vec.h (auto_vec): New class.
      	* cfganal.c, cfgloop.c, cgraphunit.c, config/i386/i386.c, dwarf2out.c,
      	function.c, genautomata.c, gimple.c, haifa-sched.c, ipa-inline.c,
      	ira-build.c, loop-unroll.c, omp-low.c, ree.c, trans-mem.c,
      tree-call-cdce.c, tree-eh.c, tree-if-conv.c, tree-into-ssa.c,
      tree-loop-distribution.c, tree-predcom.c, tree-sra.c,
      tree-sssa-forwprop.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
      tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
      	tree-vect-loop.c, tree-vect-stmts.c: Use auto_vec and stack_vec as
      	appropriate instead of vec for local variables.
      
      	cp/
      	* parser.c, semantics.c: Change some local variables from vec to
      	auto_vec or stack_vec.
      
      From-SVN: r205244
      Trevor Saunders committed
  39. 05 Nov, 2013 1 commit
    • don't try and free what must be a null vector when reserving 0 elements · ecbffdd8
      in va_heap::reserve
      
      2013-11-05  Trevor Saunders  <tsaunders@mozilla.com>
      
      	* vec.c (vec_prefix::calculate_allocation): Don't try to handle the
      	case of no prefix and reserving zero slots, because when that's the
      	case we'll never get here.
      	* vec.h (va_heap::reserve): Don't try and handle
      	vec_prefix::calculate_allocation returning zero because that should
      	never happen.
      
      From-SVN: r204392
      Trevor Saunders committed