1. 20 Jun, 2013 1 commit
  2. 16 Jun, 2013 1 commit
    • re PR rtl-optimization/57425 (RTL alias analysis unprepared to handle stack slot sharing) · 393f9fed
      gcc:
      	PR rtl-optimization/57425
      	PR rtl-optimization/57569
      	* alias.c (write_dependence_p): Add new parameters mem_size,
      	canon_mem_addr and mem_canonicalized.  Change type of writep to bool.
      	Changed all callers.
      	(canon_anti_dependence): New function.
      	* cse.c (check_dependence): Use canon_anti_dependence.
      	* cselib.c (cselib_invalidate_mem): Likewise.
      	* rtl.h (canon_anti_dependence): Declare.
      gcc/testsuite:
      	PR rtl-optimization/57425
      	PR rtl-optimization/57569
      	* gcc.dg/torture/pr57425-1.c, gcc.dg/torture/pr57425-2.c: New files.
      	* gcc.dg/torture/pr57425-3.c, gcc.dg/torture/pr57569.c: Likewise.
      Index: alias.c
      ===================================================================
      --- alias.c	(revision 200126)
      
      From-SVN: r200133
      Joern Rennecke committed
  3. 10 Apr, 2013 1 commit
    • passes.c (execute_todo): Do not call ggc_collect conditional here. · bb313b93
      2013-04-10  Richard Biener  <rguenther@suse.de>
      
      	* passes.c (execute_todo): Do not call ggc_collect conditional here.
      	(execute_one_ipa_transform_pass): But unconditionally here.
      	(execute_one_pass): And here.
      	(init_optimization_passes): Remove reload pass.
      	* tree-pass.h (TODO_ggc_collect): Remove.
      	(pass_reload): Likewise.
      	* ira.c (do_reload): Merge into ...
      	(ira): ... this.
      	(rest_of_handle_reload): Remove.
      	(pass_reload): Likewise.
      	* config/i386/i386.c (ix86_option_override): Refer to ira instead
      	of reload for vzeroupper pass placement.
      	* <everywhere>: Remove TODO_ggc_collect from todo_flags_start
      	and todo_flags_finish of all passes.
      
      	* g++.dg/pr55604.C: Use -fdump-rtl-ira.
      
      From-SVN: r197671
      Richard Biener committed
  4. 07 Feb, 2013 1 commit
  5. 10 Jan, 2013 1 commit
  6. 03 Dec, 2012 1 commit
  7. 26 Nov, 2012 1 commit
    • re PR middle-end/55030 (gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)) · adddc347
      	PR middle-end/55030
      	* builtins.c (expand_builtin_setjmp_receiver): Update comment
      	regarding purpose of blockage.
      	* emit-rtl.c [!HAVE_blockage] (gen_blockage): Similarly for
      	the head comment.
      	* rtlanal.c (volatile_insn_p): Ditto.
      	* doc/md.texi (blockage): Update similarly.  Change wording to
      	require one of two forms, rather than implying a wider choice.
      	* cse.c (cse_insn): Where checking for blocking insns, use
      	volatile_insn_p instead of manual check for volatile ASM.
      	* dse.c (scan_insn): Ditto.
      	* cselib.c (cselib_process_insn): Ditto.
      
      From-SVN: r193802
      Hans-Peter Nilsson committed
  8. 01 Nov, 2012 2 commits
    • This patch normalizes more bitmap function names. · d7c028c0
        sbitmap.h
      
          TEST_BIT -> bitmap_bit_p
          SET_BIT -> bitmap_set_bit
          SET_BIT_WITH_POPCOUNT -> bitmap_set_bit_with_popcount
          RESET_BIT -> bitmap_clear_bit
          RESET_BIT_WITH_POPCOUNT -> bitmap_clear_bit_with_popcount
      
        basic-block.h
      
          sbitmap_intersection_of_succs -> bitmap_intersection_of_succs
          sbitmap_intersection_of_preds -> bitmap_intersection_of_preds
          sbitmap_union_of_succs -> bitmap_union_of_succs
          sbitmap_union_of_preds -> bitmap_union_of_preds
      
      The sbitmap.h functions also needed their numeric paramter changed
      from unsigned int to int to match the bitmap functions.
      
      Callers updated to match.
      
      Tested on x86-64, config-list.mk testing.
      
      
      Index: gcc/ChangeLog
      
      2012-11-01  Lawrence Crowl  <crowl@google.com>
      
      	* sbitmap.h (TEST_BIT): Rename bitmap_bit_p, normalizing parameter
      	type. Update callers to match.
      	(SET_BIT): Rename bitmap_set_bit, normalizing parameter type. Update
      	callers to match.
      	(SET_BIT_WITH_POPCOUNT): Rename bitmap_set_bit_with_popcount,
      	normalizing parameter type. Update callers to match.
      	(RESET_BIT): Rename bitmap_clear_bit, normalizing parameter type.
      	Update callers to match.
      	(RESET_BIT_WITH_POPCOUNT): Rename bitmap_clear_bit_with_popcount,
      	normalizing parameter type. Update callers to match.
      	* basic-block.h (sbitmap_intersection_of_succs): Rename
      	bitmap_intersection_of_succs. Update callers to match.
      	* basic-block.h (sbitmap_intersection_of_preds): Rename
      	bitmap_intersection_of_preds. Update callers to match.
      	* basic-block.h (sbitmap_union_of_succs): Rename
      	bitmap_union_of_succs. Update callers to match.
      	* basic-block.h (sbitmap_union_of_preds): Rename
      	bitmap_union_of_preds. Update callers to match.
      
      From-SVN: r193066
      Lawrence Crowl committed
    • invoke.texi: Update -fopt-info documentation. · 2b4e6bf1
      2012-11-01  Sharad Singhai  <singhai@google.com>
      
          * doc/invoke.texi: Update -fopt-info documentation.
          * dumpfile.c: Move dump_flags here from passes.c.
          Rename opt_info_options to optinfo_verbosity_options.
          Add optgroup_options.
          (dump_files): Add field for optinfo_flags in the static initializer.
          (dump_register): Handle additional parameter for optgroup_flags.
          (opt_info_enable_passes): Renamed opt_info_enable_all. Handle
          optgroup_flags. Fix documentation.
          (opt_info_switch_p_1): Handle optgroup options.
          (opt_info_switch_p): Handle optgroup_flags. Warn on multiple files.
          * dumpfile.h (dump_register): Additional argument for optgroup_flags.
          All callers updated.
          (struct dump_file_info): Add field for optgroup_flags.
          Define OPTGROUP_* flags.
          * tree-pass.h (struct opt_pass): Add addtional field for optinfo_flags.
          All opt_pass static initializers updated.
          * opts-global.c (dump_remap_tree_vectorizer_verbose): Use 'all'
          instead of 'optall'.
          (handle_common_deferred_options): Fix typo in error message.
          * passes.c (register_one_dump_file): Add argument for optgroup_flags.
          Turn on OPTGROUP_IPA for IPA passes.
          Move dump_flags from here to dumpfile.c.
          * statistics.c (statistics_early_init): Use OPTGROUP_NONE in call to
          dump_register.
      
      testsuite/ChangeLog
      
          * testsuite/gcc.dg/plugin/selfassign.c: Add opgtroup_flags initializer.
          * testsuite/gcc.dg/plugin/one_time_plugin.c: Likewise.
          * testsuite/g++.dg/plugin/selfassign.c: Likewise.
          * testsuite/g++.dg/plugin/dumb_plugin.c: Likewise.
      
      From-SVN: r193061
      Sharad Singhai committed
  9. 30 Oct, 2012 2 commits
    • cse.c (hash_rtx_cb): Replace RTX_UNCHANGING_P with MEM_READONLY_P in head comment. · 3e55d79b
      	* cse.c (hash_rtx_cb): Replace RTX_UNCHANGING_P with MEM_READONLY_P in
      	head comment.
      	(hash_rtx): Likewise.
      
      From-SVN: r193001
      Eric Botcazou committed
    • This patch implements the unification of the *bitmap interfaces as discussed. · f61e445a
      Essentially, we rename ebitmap and sbitmap functions to use the same names
      as the bitmap functions.  This rename works because we can now overload
      on the bitmap type.  Some macros now become inline functions to enable
      that overloading.
      
      The sbitmap non-bool returning bitwise operations have been merged with
      the bool versions.  Sometimes this merge involved modifying the non-bool
      version to compute the bool value, and sometimes modifying bool version to
      add additional work from the non-bool version.  The redundant routines have
      been removed.
      
      The allocation functions have not been renamed, because we often do not
      have an argument on which to overload.  The cardinality functions have not
      been renamed, because they have different parameters, and are thus not
      interchangable.  The iteration functions have not been renamed, because
      they are functionally different.
      
      Tested on x86_64, contrib/config-list.mk testing passed.
      
      
      Index: gcc/ChangeLog
      
      2012-10-29  Lawrence Crowl  <crowl@google.com>
      
      	* sbitmap.h (sbitmap_copy): Rename bitmap_copy.
      	(sbitmap_copy_n): Rename bitmap_copy_n.
      	(sbitmap_equal): Rename bitmap_equal_p.
      	(sbitmap_empty_p): Rename bitmap_empty_p.
      	(sbitmap_range_empty_p): Rename bitmap_range_empty_p.
      	(sbitmap_zero): Rename bitmap_clear.
      	(sbitmap_ones): Rename bitmap_ones.
      	(sbitmap_vector_zero): Rename bitmap_vector_clear.
      	(sbitmap_vector_ones): Rename bitmap_vector_ones.
      	(sbitmap_not): Rename bitmap_not.
      	(sbitmap_a_and_b_cg): Commented out.
      	(sbitmap_a_and_b): Rename bitmap_and.  Add bool return.
      	(sbitmap_difference): Rename bitmap_and_compl.
      	(sbitmap_a_or_b_cg): Commented out.
      	(sbitmap_a_or_b): Rename bitmap_xor.  Add bool return.
      	(sbitmap_a_xor_b_cg): Commented out.
      	(sbitmap_a_xor_b): Rename bitmap_xor.  Add bool return.
      	(sbitmap_a_and_b_or_c_cg): Rename bitmap_and_or.
      	(sbitmap_a_and_b_or_c): Commented out.
      	(sbitmap_a_or_b_and_c_cg): Rename bitmap_or_and.
      	(sbitmap_a_or_b_and_c): Commented out.
      	(sbitmap_union_of_diff_cg): Rename bitmap_ior_and_compl.
      	(sbitmap_union_of_diff): Commented out.
      	(dump_sbitmap): Rename dump_bitmap.
      	(dump_sbitmap_file): Rename dump_bitmap_file.
      	(debug_sbitmap): Rename debug_bitmap.
      	(dump_sbitmap_vector): Rename dump_bitmap_vector.
      	(sbitmap_first_set_bit): Rename bitmap_first_set_bit.
      	(sbitmap_last_set_bit): Rename bitmap_last_set_bit.
      	(sbitmap_a_subset_b_p): Rename bitmap_subset_p.
      	(sbitmap_any_common_bits): Rename bitmap_intersect_p.
      	(#define sbitmap_free): Reimplement as inline function.
      	(#define sbitmap_vector_free): Reimplement as inline function.
      	* bitmap.h (#define bitmap_zero): Remove as redundant.
      	(#define bitmap_empty_p): Reimplement as inline function.
      	(#define dump_bitmap): Reimplement as inline function.
      
      From-SVN: r192969
      Lawrence Crowl committed
  10. 24 Oct, 2012 1 commit
  11. 16 Oct, 2012 1 commit
  12. 23 Aug, 2012 1 commit
    • alias.c (rtx_equal_for_memref_p): Convert constant cases. · d8116890
      2012-08-23  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* alias.c (rtx_equal_for_memref_p): Convert constant cases.
      	* combine.c (find_single_use_1, mark_used_regs_combine): Convert
      	to CASE_CONST_ANY.
       	* cse.c (exp_equiv_p, canon_reg, fold_rtx, cse_process_notes_1,
      	count_reg_usage): Convert constant cases.
      	* cselib.c (cselib_expand_value_rtx_1): Convert to
      	CASE_CONST_ANY.
      	(cselib_subst_to_values): Convert constant cases.
      	* df-scan.c (df_uses_record): Ditto.
      	* dse.c (const_or_frame_p): Convert case statements to explicit
      	if-then-else using mode classes.
      	* emit-rtl.c (verify_rtx_sharing, copy_insn_1): Convert constant cases.
      	* explow.c (convert_memory_address_addr_space): Ditto.
      	* gcse.c (want_to_gcse_p, oprs_unchanged_p, compute_transp): Ditto.
      	* genattrtab.c (attr_copy_rtx, clear_struct_flag): Ditto.
      	* ira.c (equiv_init_varies_p, contains_replace_regs,
      	memref_referenced_p, rtx_moveable_p): Ditto.
      	* jump.c (mark_jump_label_1): Remove constant cases.
      	(rtx_renumbered_equal_p): Convert to CASE_CONST_UNIQUE.
      	* loop-invariant.c (check_maybe_invariant, hash_invariant_expr_1,
      	invariant_expr_equal_p): Convert to CASE_CONST_ANY.
      	* postreload-gcse.c (oprs_unchanged_p): Convert constant cases.
      	* reginfo.c (reg_scan_mark_refs): Ditto.
      	* regrename.c (scan_rtx): Ditto.
      	* reload1.c (eliminate_regs_1, elimination_effects,
      	scan_paradoxical_subregs): Ditto.
      	* reload.c (operands_match_p, subst_reg_equivs):  Ditto.
      	* resource.c (mark_referenced_resources, mark_set_resources): Ditto.
      	* rtlanal.c (rtx_unstable_p, rtx_varies_p, count_occurrences)
      	(reg_mentioned_p, modified_between_p, modified_in_p)
      	(volatile_insn_p, volatile_refs_p, side_effects_p, may_trap_p_1,
      	inequality_comparisons_p, computed_jump_p_1): Ditto.
      	* rtl.c (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Ditto.
      	* sched-deps.c (sched_analyze_2): Ditto.
      	* valtrack.c (cleanup_auto_inc_dec): Ditto.
      	* rtl.h: (CASE_CONST_SCALAR_INT, CASE_CONST_UNIQUE, 
      	CASE_CONST_ANY): New macros.
      
      From-SVN: r190627
      Kenneth Zadeck committed
  13. 26 Jul, 2012 1 commit
  14. 16 Jul, 2012 1 commit
    • system.h (dump_file): Do not define. · 7ee2468b
      gcc/
      	* system.h (dump_file): Do not define.
      	* tree-pass.h: Include dumpfile.h, which is a new file containing...
      	(enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
      	dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
      	dump_flag_name, dump_file, dump_flags, dump_file_name,
      	get_dump_file_info, struct dump_file_info): all of this, moved to...
      	* dumpfile.h: Here, new file.
      	* tree-dump.h: Include dumpfile.h, but not tree-pass.h.
      	(dump_stmt): Remove prototype for C++ specific function.
      	(dump_enumerated_decls): Move prototype from here...
      	* tree-flow.h (dump_enumerated_decls): ... to here.
      	(get_ref_base_and_extent) Move prototype from here ...
      	* tree.h (get_ref_base_and_extent) ... to here.
      	* tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
      	gimple-pretty-print.h is enough.  Do not include tree-dump.h,
      	include timevar.h and dumpfile.h instead.
      	(struct numbered_tree_d, compare_decls_by_uid,
      	dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
      	* tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
      	dump_enumerated_decls_push, dump_enumerated_decls):... to here.
      	Do not include timevar.h.
      	* tree.c: Do not include timevar.h.
      	* tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
      	timevar.h.
      	(dump_cfg_stats): Use current_function_name.
      	(gimple_cfg2vcg): Likewise.
      	(dump_function_to_file): Likewise.
      	* df-scan.c: Do not include tree-pass.h and timevar.h.
      	Include dumpfile.h.
      	(df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
      	use print_current_pass.
      	* df-problems.c: Include dumpfile.h.
      	Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
      	leads to errors in the code not selected.
      	(df_note_compute): Do not print_rtl_with_bb here.  Fix compilation
      	bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
      	* lcm.c: Include dumpfile.h.
      	Remove obsolete include of insn-attr.h.
      	* dojump.c (do_compare_rtx_and_jump): Remove failure printing for
      	missing probability notes.
      	* stmt.c: Include dumpfile.h.
      	(emit_case_decision_tree): Re-enable printing expand details only
      	if TDF_DETAILS.
      	* alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c, 
      	cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c, 
      	cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c, 
      	coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c, 
      	dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c, 
      	function.c, fwprop.c, gcse.c, gimple-fold.c, 
      	gimple-pretty-print.c, gimple-ssa-strength-reduction.c, 
      	gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c, 
      	graphite-dependences.c, graphite-interchange.c, 
      	graphite-optimize-isl.c, graphite-poly.c, 
      	graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c, 
      	ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c, 
      	ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c, 
      	ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c, 
      	jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c, 
      	loop-unroll.c, loop-unswitch.c, lower-subreg.c, 
      	lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c, 
      	mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c, 
      	plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c, 
      	print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c, 
      	regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c, 
      	sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c, 
      	store-motion.c, tracer.c, trans-mem.c, tree-affine.c, 
      	tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c, 
      	tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
      	tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c, 
      	tree-mudflap.c, tree-nrv.c, tree-object-size.c, 
      	tree-optimize.c, tree-outof-ssa.c, tree-predcom.c, 
      	tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c, 
      	tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c, 
      	tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c, 
      	tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c, 
      	tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c, 
      	tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c, 
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, 
      	tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, 
      	tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c, 
      	tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c, 
      	tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c, 
      	tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c, 
      	tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c, 
      	tree-ssa-threadedge.c, tree-ssa-threadupdate.c, 
      	tree-ssa-uncprop.c, tree-ssa-uninit.c, 
      	tree-switch-conversion.c, tree-tailcall.c, 
      	tree-vect-data-refs.c, tree-vect-loop.c, 
      	tree-vect-loop-manip.c, tree-vectorizer.c, 
      	tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c, 
      	tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
      	only if needed.  If tree-pass.h is included, do not include timevar.h
      	and dumpfile.h.  If tree-pass.h is not included but dump_file, or
      	dump_flags, or the TDF_* flags are used, include dumpfile.h.
      	If gimple-pretty-print.h is included, don't include tree-pretty-print.h.
      	Remove assorted unnecessary includes.
      
      	* config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
      	config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
      	config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
      	Include dumpfile.h.
      	* config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
      	* arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
      	spu/t-spu-elf: Fix dependencies.
      
      c-family/
      	* c-gimplify.c: Include dumpfile.h instead of tree-dump.h.
      	* c-ada-spec.c: Likewise.
      	* c-dump.c (dump_stmt): Move to cp/dump.c, the only user.
      
      c/
      	* c-decl.c: Include dumpfile.h instead of tree-dump.h.
      	* Make-lang.in: Fix dependencies.
      
      cp/
      	* dump.c (dump_stmt): Moved here from c-dump.c.
      	* optimize.c: Include dumpfile.h instead of tree-dump.h.
      	* class.c: Likewise.
      	* decl2.c: Likewise.
      	* Make-lang.in: Fix dependencies.
      
      fortran/
      	* f95-lang.c: Include dumpfile.h instead of tree-dump.h.
      	* Make-lang.in: Fix dependencies.
      
      java/
      	* java-gimplify.c Include dumpfile.h instead of tree-dump.h
      	* Make-lang.in: Fix dependencies.
      
      lto/
      	* lto.c: Do not include timevar.h.
      	* Make-lang.in: Fix dependencies.
      
      ada/
      	* gcc-interface/utils.c: Include timevar.h.
      	* Make-lang.in: Fix dependencies.
      
      From-SVN: r189519
      Steven Bosscher committed
  15. 15 Jun, 2012 1 commit
    • re PR middle-end/53590 (compiler fails to generate SIMD instruction for FP division) · 2da02156
      	PR middle-end/53590
      	* common.opt (-fdelete-dead-exceptions): New switch.
      	* doc/invoke.texi (Code Gen Options): Document it.
      	* cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of
      	insn_could_throw_p predicate.  Do not skip an insn that could throw
      	if dead exceptions can be deleted.
      	(insn_live_p): Likewise, do not return true in that case.
      	* dce.c (can_alter_cfg): New flag.
      	(deletable_insn_p): Do not return false for an insn that can throw if
      	the CFG can be altered and dead exceptions can be deleted.
      	(init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
      	* dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
      	predicate. Do not preserve an insn that could throw if dead exceptions
      	can be deleted.
      	* function.h (struct function): Add can_delete_dead_exceptions flag.
      	* function.c (allocate_struct_function): Set it.
      	* lto-streamer-in.c (input_struct_function_base): Stream it.
      	* lto-streamer-out.c (input_struct_function_base): Likewise.
      	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
      	statement that could throw as necessary if dead exceptions can be
      	deleted.
      ada/
      	* gcc-interface/misc.c (gnat_init_options_struct): Set
      	opts->x_flag_delete_dead_exceptions to 1.
      
      From-SVN: r188651
      Eric Botcazou committed
  16. 31 May, 2012 1 commit
    • output.h (__gcc_host_wide_int__): Move to hwint.h. · be7a421e
      	* output.h (__gcc_host_wide_int__): Move to hwint.h.
      	(decl_default_tls_model): Move to tree.h
      	(dump_file): Move to system.h.
      	(default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
      	dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
      	dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
      	dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
      	dbxout_stab_value_zero, dbxout_stab_value_label_diff,
      	dbxout_stab_value_internal_label,
      	dbxout_stab_value_internal_label_diff): Move from here ...
      	* dbxout.h: ... to here.
      	* system.h (dump_file): Moved here from output.h.
      	* hwint.h (__gcc_host_wide_int__): Moved here from output.h.
      	* tree.h (decl_default_tls_model): Moved here from output.h.
      	* varasm.c (default_stabs_asm_out_destructor,
      	default_stabs_asm_out_constructor): Move from here ...
      	* dbxout.c: ... to here.
      
      	* gcov-dump.c (dump_file): Rename to dump_gcov_file.  Update callers.
      
      	* collect2.h (dump_file): Rename to dump_ld_file.
      	* collect2.c: Likewise.
      	* tlink.c: Likewise.
      
      	* alias.c: Do not include output.h.
      	* auto-inc-dec.c: Likewise.
      	* bt-load.c: Likewise.
      	* caller-save.c: Likewise.
      	* cfg.c: Likewise.
      	* cfgbuild.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloopanal.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphclones.c: Likewise.
      	* combine-stack-adj.c: Likewise.
      	* combine.c: Likewise.
      	* cprop.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* dbgcnt.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* dojump.c: Likewise.
      	* fwprop.c: Likewise.
      	* gcse.c: Likewise.
      	* graph.c: Likewise.
      	* haifa-sched.c: Likewise.
      	* hw-doloop.c: Likewise.
      	* ipa-inline-transform.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-emit.c: Likewise.
      	* lcm.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-iv.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* loop-unswitch.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* mcf.c: Likewise.
      	* mode-switching.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* profile.c: Likewise.
      	* ree.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regcprop.c: Likewise.
      	* regmove.c: Likewise.
      	* regstat.c: Likewise.
      	* reload1.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* tracer.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.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-propagate.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-tail-merge.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.
      	* value-prof.c: Likewise.
      	* var-tracking.c: Likewise.
      	* web.c: Likewise.
      
      	* config/m32r/m32r.c: Include dbxout.h.
      	* config/pa/pa.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      
      	* Makefile.in: Fix dependencies.
      	* config/rs6000/t-rs5000: Likewise.
      
      c-family/
      	* c-ada-spec.c: Do not include output.h.
      	* c-semantics.c: Likewise.
      
      cp/
      	* call.c: Do not include output.h.
      	* class.c: Likewise.
      	* except.c: Likewise.
      	* friend.c: Likewise.
      	* init.c: Likewise.
      	* lex.c: Likewise.
      	* method.c: Likewise.
      	* parser.c: Likewise.
      	* pt.c: Likewise.
      	* rtti.c: Likewise.
      	* search.c: Likewise.
      
      objc/
      	* objc-act.c: Do not include output.h.
      
      fortran/
      	* trans-common.c: Do not include output.h.
      	* trans-decl.c: Likewise.
      
      java/
      	* resource.c: Do not include output.h.
      
      From-SVN: r188082
      Steven Bosscher committed
  17. 29 May, 2012 1 commit
    • integrate.c: Remove. · 6399c0ab
      	* integrate.c: Remove.
      	* integrate.h: Remove.
      	* Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
      	* config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
      	* config/rs6000/t-rs6000: Likewise
      	* config/spu/t-spu-elf: Likewise.
      	* function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
      	get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
      	from integrate.h to here.
      	(initial_value_entry): New prototype.
      	* reload.h (allocate_initial_values): Remove prototype.
      	* tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
      	* cse.c (fixed_base_plus_p): Don't handle virtual registers for
      	integrate.c.
      	* dwarf2out.c (set_decl_origin_self, set_block_origin_self,
      	set_decl_abstract_flags, set_block_abstract_flags): Move from
      	integrate.c to here, the only user.
      	* expmed.c (extract_fixed_bit_field): Remove outdated comment
      	about integrate.c.
      	* function.c: Don't include integrate.h.
      	(struct initial_value_pair, struct initial_value_struct,
      	get_hard_reg_initial_val, has_hard_reg_initial_val,
      	get_hard_reg_initial_reg, emit_initial_value_sets): Move from
      	integrate.c to here.
      	(initial_value_entry): New function.
      	* genemit.c (main): Don't print integrate.h include line.
      	* ira.c: Don't include integrate.h.
      	(allocate_initial_values): Move from integrate.c to here.
      	(ira): Update allocate_initial_values call.
      	* tree-inline.c: Don't include integrate.h.
      	(function_attribute_inlinable_p): Moved from integrate.c to here.
      	* cfgexpand.c: Don't include integrate.h.
      	* except.c: Likewise.
      	* langhooks.c: Likewise.
      	* passes.c: Likewise.
      	* toplev.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/epiphany/epiphany.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/score/score.c: Likewise.
      	* config/picochip/picochip.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/microblaze/microblaze.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/v850/v850.c: Likewise.
      	* config/mmix/mmix.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/m32r/m32r.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/c6x/c6x.c: Include function.h instead of integrate.h.
      	* config/tilegx/tilegx.c: Likewise.
      	* config/tilepro/tilepro.c: Likewise.
      
      From-SVN: r187969
      Steven Bosscher committed
  18. 18 May, 2012 1 commit
  19. 14 May, 2012 1 commit
    • attribs.c (decl_attributes): Avoid emitting a warning if ATTR_FLAG_BUILT_IN. · e384e6b5
      	* attribs.c (decl_attributes): Avoid emitting a warning if
      	ATTR_FLAG_BUILT_IN.
      	* doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
      	codes.  Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
      	* c-family/c-common.c (DEF_ATTR_STRING): Define and undefine as
      	necessary.
      	* builtin-attrs.def (DEF_ATTR_FOR_STRING): Define.  Use it to
      	define a string "1".
      	(ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
      	* builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
      	BUILT_IN_STRCPY): Use it for these functions.
      	* postreload.c (reload_combine): Deal with SETs inside
      	CALL_INSN_FUNCTION_USAGE.
      	* caller-save.c (setup_save_areas, save_call_clobbered_regs):
      	Look for REG_RETURNED notes and use a cheap restore if possible.
      	* ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
      	(ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
      	* ira-build.c (ira_create_allocno, create_cap_allocno,
      	propagate_allocno_info, propagate_some_info_from_allocno,
      	copy_info_to_removed_store_destination, ira_flattening): Handle it.
      	* ira-lives.c (pseudo_regno_single_word_and_live_p,
      	find_call_crossed_cheap_reg): New static functions.
      	(process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
      	and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible.  Also make
      	a REG_RETURNED note in that case.
      	* ira.c (setup_reg_renumber): Change assert to allow cases where
      	allocnos only cross calls for which they are cheap to restore.
      	* ira-costs.c (ira_tune_allocno_costs): Compare
      	ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
      	than 0.
      	* reg-notes.def (REG_RETURNED): New note.
      	* cse.c (cse_insn): Likewise.
      	* sched-deps.c (sched_analyze_insn): Likewise.
      	* expr.c (init_block_move_fn): Set a "fn spec" attribute.
      	* calls.c (decl_return_flags): New static function.
      	(expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
      	functions that return one of their arguments.
      	* lto/lto-lang.c (handle_fnspec_attribute): New static function.
      	(lto_attribute_table): Add "fn spec".
      	(DEF_ATTR_STRING): Define and undefine along with the other macros.
      	* regcprop.c (struct kill_set_value_data): New.
      	(kill_set_value): Interpret data as a pointer to such a struct.
      	Do nothing if the caller wants the register to be ignored.
      	(copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.
      
      testsuite/
      	* gcc.target/i386/retarg.c: New test.
      
      From-SVN: r187459
      Bernd Schmidt committed
  20. 05 May, 2012 1 commit
    • rtl.h (plus_constant, [...]): Merge into a single plus_constant function. · 0a81f074
      gcc/
      	* rtl.h (plus_constant, plus_constant_mode): Merge into a single
      	plus_constant function.
      	* explow.c (plus_constant, plus_constant_mode): Likewise.  Assert
      	that the mode is sensible.
      	(use_anchored_address, round_push, allocate_dynamic_stack_space)
      	(probe_stack_range, anti_adjust_stack_and_probe): Update calls to
      	plus_constant.
      
      	* alias.c (canon_rtx): Likewise.
      	(init_alias_analysis): Likewise.
      	* builtins.c (expand_builtin_return_addr)
      	(expand_builtin_setjmp_setup, expand_builtin_longjmp)
      	(expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
      	(expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
      	(expand_builtin_stpcpy): Likewise.
      	* calls.c (save_fixed_argument_area, restore_fixed_argument_area)
      	(compute_argument_addresses, internal_arg_pointer_based_exp)
      	(expand_call, emit_library_call_value_1): Likewise.
      	* cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
      	* combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
      	* combine.c (combine_simplify_rtx, force_to_mode): Likewise.
      	* cse.c (insert_const_anchor, find_reg_offset_for_const)
      	(use_related_value, fold_rtx): Likewise.
      	* cselib.c (cselib_subst_to_values): Likewise.
      	* dse.c (record_store, check_mem_read_rtx): Likewise.
      	* dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
      	* emit-rtl.c (adjust_address_1): Likewise.
      	* except.c (sjlj_emit_function_enter)
      	(expand_builtin_extract_return_addr)
      	(expand_builtin_frob_return_addr): Likewise.
      	* expmed.c (expand_divmod): Likewise.
      	* expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
      	(emit_move_resolve_push, push_block, emit_push_insn, store_expr)
      	(expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
      	* function.c (assign_stack_local_1)
      	(instantiate_virtual_regs_in_rtx): Likewise.
      	* optabs.c (prepare_cmp_insn): Likewise.
      	* recog.c (offsettable_address_addr_space_p): Likewise.
      	* reload.c (find_reloads_address, form_sum)
      	(find_reloads_subreg_address): Likewise.
      	* reload1.c (init_reload, eliminate_regs_1)
      	(eliminate_regs_in_insn): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1)
      	(simplify_binary_operation_1, simplify_plus_minus): Likewise.
      	* var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
      	(vt_add_function_parameter): Likewise.
      
      	* config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
      	* config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
      	* config/alpha/alpha.c (alpha_legitimize_address_1)
      	(get_unaligned_address, alpha_expand_unaligned_load)
      	(alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
      	(alpha_expand_unaligned_store_words, alpha_expand_block_clear)
      	(alpha_expand_builtin_establish_vms_condition_handler)
      	(alpha_setup_incoming_varargs, emit_frame_store_1)
      	(alpha_expand_prologue, alpha_expand_epilogue)
      	(alpha_use_linkage): Likewise.
      	* config/alpha/alpha.md: Likewise.
      
      	* config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
      	(arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
      	(thumb_legitimize_address, arm_gen_load_multiple_1)
      	(arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
      	(gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
      	(arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
      	(arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
      	(emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
      	(thumb1_emit_multi_reg_push, thumb1_expand_prologue)
      	(thumb_expand_movmemqi, arm_set_return_address)
      	(thumb_set_return_address): Likewise.
      	* config/arm/arm.md: Likewise.
      
      	* config/avr/avr.c (avr_incoming_return_addr_rtx)
      	(avr_prologue_setup_frame, expand_epilogue)
      	(avr_const_address_lo16): Likewise.
      
      	* config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
      	* config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
      	(bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
      	(bfin_output_mi_thunk): Likewise.
      
      	* config/c6x/c6x.c (c6x_initialize_trampoline)
      	(c6x_output_mi_thunk): Likewise.
      
      	* config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
      	* config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
      
      	* config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
      	(cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
      	(cris_emit_movem_store, cris_trampoline_init): Likewise.
      	* config/cris/cris.md: Likewise.
      
      	* config/darwin.c (machopic_indirect_data_reference)
      	(machopic_legitimize_pic_address): Likewise.
      
      	* config/epiphany/epiphany.c (epiphany_emit_save_restore)
      	(epiphany_expand_prologue, epiphany_expand_epilogue)
      	(epiphany_trampoline_init): Likewise.
      	* config/epiphany/epiphany.md: Likewise.
      
      	* config/fr30/fr30.c (fr30_move_double): Likewise.
      
      	* config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
      	(frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
      	(frv_index_memory, unspec_got_name, frv_find_base_term)
      	(frv_output_dwarf_dtprel): Likewise.
      
      	* config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
      	(h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.
      
      	* config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
      	* config/i386/i386.c (setup_incoming_varargs_64)
      	(setup_incoming_varargs_ms_64, choose_baseaddr)
      	(ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
      	(ix86_emit_probe_stack_range, ix86_expand_prologue)
      	(ix86_emit_restore_reg_using_pop, ix86_emit_leave)
      	(ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
      	(ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
      	(ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
      	(x86_output_mi_thunk): Likewise.
      	* config/i386/i386.md: Likewise.
      
      	* config/ia64/ia64.c (ia64_expand_load_address)
      	(ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
      	(do_spill, ia64_trampoline_init): Likewise.
      
      	* config/iq2000/iq2000.c (iq2000_va_start)
      	(iq2000_emit_frame_related_store, iq2000_expand_prologue)
      	(iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
      	(iq2000_print_operand, iq2000_legitimize_address): Likewise.
      
      	* config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
      
      	* config/m32c/m32c.c (m32c_return_addr_rtx)
      	(m32c_expand_insv): Likewise.
      
      	* config/m32r/m32r.c (m32r_setup_incoming_varargs)
      	(m32r_legitimize_pic_address, m32r_print_operand)
      	(m32r_print_operand_address): Likewise.
      
      	* config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
      	* config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
      	(EH_RETURN_HANDLER_RTX): Likewise.
      	* config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
      	(m68k_expand_epilogue, legitimize_pic_address)
      	(m68k_output_mi_thunk): Likewise.
      	* config/m68k/m68k.md: Likewise.
      
      	* config/mcore/mcore.c (mcore_expand_prolog): Likewise.
      	(mcore_expand_epilog): Likewise.
      	* config/mcore/mcore.md: Likewise.
      
      	* config/mep/mep.c (mep_allocate_initial_value)
      	(mep_expand_prologue, mep_expand_epilogue): Likewise.
      
      	* config/microblaze/microblaze.c (double_memory_operand)
      	(microblaze_block_move_loop): Likewise.
      
      	* config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
      	(mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
      	(mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
      	(mips_expand_prologue, mips_epilogue_set_cfa)
      	(mips_expand_epilogue): Likewise.
      	* config/mips/mips.md: Likewise.
      
      	* config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
      	(mmix_expand_prologue, mmix_expand_epilogue): Likewise.
      
      	* config/mn10300/mn10300.c (mn10300_gen_multiple_store)
      	(mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.
      
      	* config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
      	(EH_RETURN_HANDLER_RTX): Likewise.
      	* config/moxie/moxie.c (moxie_static_chain): Likewise.
      
      	* config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
      	(store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
      	(pa_return_addr_rtx, hppa_builtin_saveregs)
      	(pa_trampoline_init): Likewise.
      	* config/pa/pa.md: Likewise.
      
      	* config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
      
      	* config/picochip/picochip.c (picochip_static_chain): Likewise.
      
      	* config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
      	* config/rs6000/rs6000.c (rs6000_legitimize_address)
      	(setup_incoming_varargs, print_operand, rs6000_return_addr)
      	(rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
      	(rs6000_emit_epilogue)
      	(rs6000_machopic_legitimize_pic_address): Likewise.
      
      	* config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
      
      	* config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
      	(DYNAMIC_CHAIN_ADDRESS): Likewise.
      	* config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
      	(s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
      	(replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
      	(save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
      	(s390_emit_epilogue, s390_function_profiler): Likewise.
      	* config/s390/s390.md: Likewise.
      
      	* config/score/score.c (score_add_offset, score_prologue): Likewise.
      
      	* config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
      	(sh_output_mi_thunk): Likewise.
      	* config/sh/sh.md: Likewise.
      
      	* config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
      	(RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
      	* config/sparc/sparc.c (sparc_legitimize_pic_address)
      	(sparc_emit_probe_stack_range, emit_save_or_restore_regs)
      	(emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
      	(emit_and_preserve): Likewise.
      	* config/sparc/sparc.md: Likewise.
      
      	* config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
      	* config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
      	(spu_setup_incoming_varargs, ea_load_store_inline)
      	(spu_expand_load): Likewise.
      
      	* config/stormy16/stormy16.c (xstormy16_expand_prologue)
      	(combine_bnp): Likewise.
      
      	* config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
      	* config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
      	(tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.
      
      	* config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
      	* config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
      	(tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.
      
      	* config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
      	* config/v850/v850.md: Likewise.
      
      	* config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
      	(EH_RETURN_HANDLER_RTX): Likewise.
      	* config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
      	* config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
      	(print_operand_address, vax_trampoline_init): Likewise.
      
      	* config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
      	(xtensa_function_value_regno_p): Likewise.
      
      From-SVN: r187199
      Richard Sandiford committed
  21. 18 Apr, 2012 1 commit
    • lto-symtab.c (lto_cgraph_replace_node): Update. · 5932a4d4
      	* lto-symtab.c (lto_cgraph_replace_node): Update.
      	* cgraphbuild.c (record_reference, record_type_list,
      	record_eh_tables, mark_address, mark_load, mark_store): Update.
      	* cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
      	cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
      	Update.
      	* cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
      	(cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
      	* reload.c: Fix typo in comment.
      	* rtlanal.c: Likewise.
      	* tree-emultls.c (gen_emutls_addr): Update.
      	* ipa-reference.c (analyze_function): Update.
      	* cgraphunit.c (cgraph_analyze_function,
      	cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
      	Update.
      	* ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
      	(ipa_remove_reference): Likewise.
      	(ipa_remove_all_refering): Rename to ...
      	(ipa_remove_all_referring): ... this one; update.
      	(ipa_dump_references): Update.
      	(ipa_dump_referring): Update.
      	(ipa_clone_references): Update.
      	(ipa_clone_refering): Rename to ...
      	(ipa_clone_referring): ... this one; update.
      	(ipa_ref_cannot_lead_to_return): Update.
      	(ipa_ref_has_aliases_p): Update.
      	* ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
      	forward typedefs.
      	(ipa_ref_type): Remove.
      	(ipa_ref_ptr_u): Remove.
      	(ipa_ref): Remove referencing, refered, refered_index, refering_type
      	and refered_type; add referring, referred and referred_index.
      	(ipa_ref_list): Rename refering to referring.
      	(ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
      	ipa_clone_references, ipa_clone_referring): Update prototypes.
      	* lto-cgraph.c (referenced_from_other_partition_p): Update.
      	(lto_output_ref): Update.
      	(add_references): Update.
      	(input_varpool_node): Update.
      	(input_refs): Update.
      	* ipa-ref-inline.h (ipa_ref_node): Update.
      	(ipa_ref_varpool_node): Update.
      	(ipa_ref_referring_node); Update.
      	(ipa_ref_referring_varpool_node): Update.
      	(ipa_ref_referring_ref_list); Update.
      	(ipa_ref_referred_ref_list): Update.
      	(ipa_ref_list_first_referring): Update.
      	(ipa_empty_ref_list): Update.
      	(ipa_ref_list_refering_iterate): Rename to ...
      	(ipa_ref_list_referring_iterate): ... this one.
      	* cse.c: Update comment.
      	* ipa-utils.c (ipa_reverse_postorder): Update.
      	* tree-ssa-alias.c: Update.
      	* ipa-inline.c (reset_edge_caches): Update.
      	(update_caller_keys): Update.
      	* ipa-inline.h: Update comments.
      	* jump.c: Update comment.
      	* alias.c: Likewise.
      	* ipa.c (process_references): Update.
      	(cgraph_remove_unreachable_nodes): Likewise.
      	(ipa_discover_readonly_nonaddressable_var): Likewise.
      	(cgraph_address_taken_from_non_vtable_p): Likewise.
      	* trans-mem.c (ipa_tm_execute): Update.
      	* simplify-rtx.c: Fix comment.
      	* rtl.c: Fix comment.
      	* symtab.c (symtab_unregister_node): Update.
      	* varpool.c (dump_varpool_node): Update.
      	(varpool_analyze_pending_decls): Update.
      	(assemble_aliases): Update.
      	(varpool_for_node_and_aliases): Update.
      
      From-SVN: r186564
      Jan Hubicka committed
  22. 29 Mar, 2012 1 commit
    • cgraph.h (cgraph_materialize_all_clones): Remove. · 711417cd
      2012-03-29  Richard Guenther  <rguenther@suse.de>
      
      	* cgraph.h (cgraph_materialize_all_clones): Remove.
      	(reset_inline_failed): Likewise.
      	* cgraphunit.c (cgraph_materialize_all_clones): Make static.
      	* cgraphbuild.c (reset_inline_failed): Remove.
      	* rtl.h (cse_main): Remove.
      	(extended_count): Likewise.
      	* cse.c (dump_class): Mark as DEBUG_FUNCTION.
      	(cse_main): Make static.
      	* combine.c (extended_count): Remove.
      	(dump_combine_stats): Mark as DEBUG_FUNCTION.
      	* basic-block.h (reorder_basic_blocks): Remove.
      	* bb-reorder.c (reorder_basic_blocks): Make static.
      	* Makefile.in (dse.o): Remove dse.h dependency.
      	* dse.h: Remove.
      	* dse.c (gate_dse): Remove.
      	(clear_alias_mode_eq): Likewise.
      	(clear_alias_mode_hash): Likewise.
      	(dse_record_singleton_alias_set): Likewise.
      	(dse_invalidate_singleton_alias_set): Likewise.
      
      From-SVN: r185962
      Richard Guenther committed
  23. 28 Mar, 2012 1 commit
    • loop-init.c (loop_optimizer_init): If loops are preserved perform incremental… · 7d776ee2
      loop-init.c (loop_optimizer_init): If loops are preserved perform incremental initialization of required loop features.
      
      2012-03-28  Richard Guenther  <rguenther@suse.de>
      
      	* loop-init.c (loop_optimizer_init): If loops are preserved
      	perform incremental initialization of required loop features.
      	(loop_optimizer_finalize): If loops are to be preserved only
      	clean up optional loop features.
      	(rtl_loop_done): Forcefully free loops here.
      	* cgraph.c (cgraph_release_function_body): Forcefully free
      	loops.
      	* cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
      	to existing loops.
      	(construct_init_block): Likewise.
      	(construct_exit_block): Likewise.
      	(gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state.  Cleanup
      	the CFG after expanding.
      	* cfgloop.c (verify_loop_structure): Calculate or verify
      	dominators.  If we needed to calculate them, free them afterwards.
      	* tree-pass.h (PROP_loops): New define.
      	* tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
      	* basic-block.h (CLEANUP_CFG_CHANGED): New.
      	* cfgcleanup.c (merge_blocks_move): Protect loop latches.
      	(cleanup_cfg): If we did something and have loops around, fix
      	them up.
      	* cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
      	with CLEANUP_CFG_CHANGED.
      	* cfghooks.c (merge_blocks): If we merge a loop header into
      	its predecessor, update the loop structure.
      	(duplicate_block): If we copy a loop latch, adjust loop state
      	to note we may have multiple latches.
      	(delete_basic_block): Mark loops for fixup if we remove a loop.
      	* cfganal.c (forwarder_block_p): Protect loop latches, headers
      	and preheaders.
      	* cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
      	(cfg_layout_can_merge_blocks_p): Likewise.
      	* cprop.c (bypass_block): If we create a loop with multiple
      	entries, mark it for removal.
      	* except.c (emit_to_new_bb_before): Add the new basic-block
      	to existing loops.
      	* tree-eh.c (lower_resx): Likewise.
      	* omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
      	(expand_omp_taskreg): Likewise.
      	* tree-inline.c (initialize_cfun): Likewise.
      	* tree-mudflap.c (add_bb_to_loop): Prototype.
      	(mf_build_check_statement_for): Properly add new basic-blocks
      	to existing loops.
      	* tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
      	if we remove a loop.
      	(thread_through_loop_header): Likewise.
      	* trans-mem.c (tm_log_emit_save_or_restores): Properly add
      	new basic-blocks to existing loops.
      	(expand_transaction): Likewise.
      	* Makefile.in (except.o): Add $(CFGLOOP_H).
      	(expr.o): Likewise.
      	(cgraph.o): Likewise.
      	(cprop.o): Likewise.
      	(cfgexpand.o): Likewise.
      	(cfganal.o): Likewise.
      	(trans-mem.o): Likewise.
      	(tree-eh.o): Likewise.
      
      From-SVN: r185913
      Richard Guenther committed
  24. 21 Mar, 2012 1 commit
  25. 24 Jan, 2012 1 commit
    • rtl.h (true_dependence, [...]): Remove varies parameter. · 53d9622b
      gcc/
      	* rtl.h (true_dependence, canon_true_dependence): Remove varies
      	parameter.
      	* alias.c (fixed_scalar_and_varying_struct_p): Delete.
      	(true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
      	(true_dependence_1, true_dependence, canon_true_dependence): Remove
      	varies parameter.
      	* cselib.c (cselib_rtx_varies_p): Delete.
      	(cselib_invalidate_mem): Update call to canon_true_dependence.
      	* dse.c (record_store, check_mem_read_rtx): Likewise.
      	(scan_reads_nospill): Likewise.
      	* cse.c (check_dependence): Likewise.
      	(cse_rtx_varies_p): Delete.
      	* expr.c (safe_from_p): Update call to true_dependence.
      	* ira.c (validate_equiv_mem_from_store): Likewise.
      	(memref_referenced_p): Likewise.
      	* postreload-gcse.c (find_mem_conflicts): Likewise.
      	* sched-deps.c (sched_analyze_2): Likewise.
      	* store-motion.c (load_kills_store): Likewise.
      	* config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
      	* gcse.c (mems_conflict_for_gcse_p): Likewise.
      	(compute_transp): Update call to canon_true_dependence.
      
      From-SVN: r183485
      Richard Sandiford committed
  26. 19 Dec, 2011 1 commit
  27. 18 Aug, 2011 1 commit
    • tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter. · 68f932c4
      gcc/
      	* doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
      	* doc/tm.texi: Regenerate.
      	* target.def (rtx_costs): Add an opno parameter.
      	* hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
      	(hook_bool_rtx_int_int_int_intp_bool_false): ...this.
      	* hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
      	(hook_bool_rtx_int_int_int_intp_bool_false): ...this.
      	* cse.c (COST_IN): Add an opno parameter.
      	(notreg_cost): Likewise.  Update call to rtx_cost.
      	(COST, fold_rtx): Update accordingly.
      	* dojump.c (prefer_and_bit_test): Update call to rtx_cost.
      	* expmed.c (emit_store_flag): Likewise.
      	* optabs.c (avoid_expensive_constant): Add an opno parameter.
      	Update call to rtx_cost.
      	(expand_binop_directly, expand_binop): Likewise.
      	(expand_twoval_binop, prepare_cmp_insn): Likewise.
      	* rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
      	(set_src_cost, get_full_set_src_cost): Update accordingly.
      	* rtlanal.c (rtx_cost): Add an opno parameter.  Update call
      	to target hook.
      	(get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
      	(default_adress_cost): Update calls to rtx_cost.
      
      	* config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
      	(arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
      	(arm_rtx_costs): Add an opno parameter.
      	* config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
      	adjust any recursive rtx-cost calls.
      	* config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
      	* config/bfin/bfin.c (bfin_rtx_costs): Likewise.
      	* config/c6x/c6x.c (c6x_rtx_costs): Likewise.
      	* config/cris/cris.c (cris_rtx_costs): Likewise.
      	* config/frv/frv.c (frv_rtx_costs): Likewise.
      	* config/h8300/h8300.c (h8300_rtx_costs): Likewise.
      	* config/i386/i386.c (ix86_rtx_costs): Likewise.
      	* config/ia64/ia64.c (ia64_rtx_costs): Likewise.
      	* config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
      	* config/lm32/lm32.c (lm32_rtx_costs): Likewise.
      	* config/m32c/m32c.c (m32c_rtx_costs): Likewise.
      	* config/m32r/m32r.c (m32r_rtx_costs): Likewise.
      	* config/m68k/m68k.c (m68k_rtx_costs): Likewise.
      	* config/mcore/mcore.c (mcore_rtx_costs): Likewise.
      	* config/mep/mep.c (mep_rtx_cost): Likewise.
      	* config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
      	* config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
      	(mips_zero_extend_cost): Add an opno parameter.
      	* config/mmix/mmix.c (mmix_rtx_costs): Likewise.
      	* config/mn10300/mn10300.c (mn10300_address_cost): Update call
      	to rtx_cost.
      	(mn10300_rtx_costs): Add an opno parameter and adjust any recursive
      	rtx-cost calls.
      	* config/pa/pa.c (hppa_rtx_costs): Likewise.
      	* config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
      	* config/picochip/picochip.c (picochip_rtx_costs): Likewise.
      	* config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
      	(rs6000_debug_rtx_costs): Likewise.
      	* config/s390/s390.c (s390_rtx_costs): Likewise.
      	* config/score/score-protos.h (score_rtx_costs): Likewise.
      	* config/score/score.c (score_rtx_costs): Likewise.
      	* config/sh/sh.c (andcosts): Update call to rtx_cost.
      	(sh_rtx_costs): Add an opno parameter.
      	* config/sparc/sparc.c (sparc_rtx_costs): Likewise.
      	* config/spu/spu.c (spu_rtx_costs): Likewise.
      	* config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
      	* config/v850/v850.c (v850_rtx_costs): Likewise.
      	* config/vax/vax.c (vax_rtx_costs): Likewise.
      	* config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
      
      From-SVN: r177852
      Richard Sandiford committed
  28. 12 Jul, 2011 1 commit
    • cse.c (insert_with_costs): Put semi-colon after empty loop body on the next line. · e84a58ff
      	* cse.c (insert_with_costs): Put semi-colon after empty loop body
      	on the next line.
      	* emit-rtl.c (push_to_sequence): Likewise.
      	* haifa-sched.c (max_issue): Likewise.
      	* matrix-reorg.c (add_allocation_site): Likewise.
      	* postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
      	* reload.c (alternative_allows_const_pool_ref): Likewise.
      	* sched-rgn.c (rgn_add_block): Likewise.
      	(rgn_fix_recovery_cfg): Likewise.
      	* tree.c (attribute_list_contained): Likewise.
      c-family/
      	* c-ada-spec.c (dump_nested_types): Put semi-colon after empty loop
      	body on the next line.
      
      From-SVN: r176216
      Eric Botcazou committed
  29. 06 Jul, 2011 4 commits
    • explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION instead of… · 5511bc5a
      explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE where appropriate.
      
      	* explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
      	instead of GET_MODE_BITSIZE where appropriate.
      	* rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
      	num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
      	init_num_sign_bit_copies_in_rep): Likewise.
      	* cse.c (fold_rtx, cse_insn): Likewise.
      	* loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1,
      	simplify_const_unary_operation, simplify_binary_operation_1,
      	simplify_const_binary_operation, simplify_ternary_operation,
      	simplify_const_relational_operation, simplify_subreg): Likewise.
      	* combine.c (try_combine, find_split_point, combine_simplify_rtx,
      	simplify_if_then_else, simplify_set, expand_compound_operation,
      	expand_field_assignment, make_extraction, if_then_else_cond,
      	make_compound_operation, force_to_mode, make_field_assignment,
      	reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
      	extended_count, try_widen_shift_mode, simplify_shift_const_1,
      	simplify_comparison, record_promoted_value, simplify_compare_const,
      	record_dead_and_set_regs_1): Likewise.
      
      From-SVN: r175946
      Bernd Schmidt committed
    • emit-rtl.c (paradoxical_subreg_p): New function. · 6a4bdc79
      	* emit-rtl.c (paradoxical_subreg_p): New function.
      	* rtl.h (paradoxical_subreg_p): Declare.
      	* combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
      	apply_distributive_law, simplify_comparison, simplify_set): Use it.
      	* cse.c (record_jump_cond, cse_insn): Likewise.
      	* expr.c (force_operand): Likewise.
      	* rtlanal.c (num_sign_bit_copies1): Likewise.
      	* reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
      	* reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
      	(push_reload): Use precision to check for paradoxical subregs.
      	* expmed.c (extract_bit_field_1): Likewise.
      
      From-SVN: r175944
      Bernd Schmidt committed
    • machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro. · d0edd768
      	* machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
      	* combine.c (make_extraction, gen_lowpart_or_truncate,
      	apply_distributive_law, simplify_comparison,
      	reg_truncated_to_mode, record_truncated_value): Use it.
      	* cse.c (notreg_cost): Likewise.
      	* expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
      	* expr.c (convert_move, convert_modes): Likewise.
      	* optabs.c (expand_binop, expand_unop): Likewise.
      	* postreload.c (move2add_last_label): Likewise.
      	* regmove.c (optimize_reg_copy_3): Likewise.
      	* rtlhooks.c (gen_lowpart_general): Likewise.
      	* simplify-rtx.c (simplify_unary_operation_1): Likewise.
      
      From-SVN: r175921
      Bernd Schmidt committed
    • cse.c (find_comparison_args): Use val_mode_signbit_set_p. · 2d0c270f
      	* cse.c (find_comparison_args): Use val_mode_signbit_set_p.
      	* simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
      	(val_mode_signbit_p, val_mode_signbit_set_p): New functions.
      	(simplify_const_unary_operation, simplify_binary_operation_1,
      	simplify_const_binary_operation,
      	simplify_const_relational_operation): Use them.  Use
      	GET_MODE_MASK for masking and sign-extensions.
      	* combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
      	combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
      	simplify_shift_const_1, simplify_comparison): Likewise.
      	* expr.c (convert_modes): Likewise.
      	* rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
      	* expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag):
      	Likewise.
      	* rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
      
      From-SVN: r175917
      Bernd Schmidt committed
  30. 14 Jun, 2011 2 commits
  31. 02 Jun, 2011 2 commits
    • cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL edges only... · 76015c34
      2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
      	edges only, when there is a non-local label in the function.
      	* postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
      
      From-SVN: r174585
      Eric Botcazou committed
    • function.h (struct stack_usage): Remove dynamic_alloc_count field. · bc6d3f91
      	* function.h (struct stack_usage): Remove dynamic_alloc_count field.
      	(current_function_dynamic_alloc_count): Delete.
      	* builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
      	(expand_builtin_nonlocal_goto): Remove obsolete comment.
      	(expand_builtin_update_setjmp_buf): Remove dead code.
      	* cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
      	* explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
      	support.
      	* function.c (instantiate_virtual_regs): Likewise.
      	* postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
      	for a block with a single abnormal incoming edge.
      	* config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
      	* config/sparc/sparc-protos.h (load_got_register): Declare.
      	* config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
      	(load_got_register): Make global.
      	(sparc_frame_pointer_required): Add 'static'.
      	(sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
      	(sparc_builtin_setjmp_frame_value): New function.
      	* config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
      	(save_stack_nonlocal): New expander.
      	(restore_stack_nonlocal): Likewise.
      	(nonlocal_goto): Remove modes, adjust predicates and reimplement.
      	(nonlocal_goto_internal): New insn.
      	(goto_handler_and_restore): Delete.
      	(builtin_setjmp_setup): Likewise.
      	(do_builtin_setjmp_setup): Likewise.
      	(setjmp): Likewise.
      	(builtin_setjmp_receiver): New expander.
      
      From-SVN: r174564
      Eric Botcazou committed
  32. 20 Apr, 2011 1 commit
    • remove useless if-before-free tests · 04695783
      Change "if (E) free (E);" to "free (E);" everywhere except in the
      libgo/, intl/, zlib/ and classpath/ directories.
      Also transform equivalent variants like
      "if (E != NULL) free (E);" and allow an extra cast on the
      argument to free.  Otherwise, the tested and freed "E"
      expressions must be identical, modulo white space.
      
      From-SVN: r172785
      Jim Meyering committed
  33. 02 Mar, 2011 1 commit