1. 06 Mar, 2008 1 commit
    • fwprop.c (update_df): Support width and offset parameters of df_ref_create. · ca9052ce
      2008-03-05  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* fwprop.c (update_df): Support width and offset parameters of
      	df_ref_create.
      	* ra-conflict.c (mark_reg_store, clear_reg_in_live,
      	global_conflicts): Change DF_REF_EXTRACT to either
      	DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
      	DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
      	* df-scan.c (df_ref_record, df_defs_record,
      	df_ref_create_structure, df_def_record_1, df_uses_record,
      	df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
      	df_bb_refs_collect, df_entry_block_defs_collect,
      	df_exit_block_uses_collect): Support new width and offset fields.
      	(ref_extract_pool): New storage pool.
      	(df_free_ref): New function.
      	(df_reg_chain_unlink, df_free_collection_rec,
      	df_sort_and_compress_refs): Call df_free_ref.
      	(df_ref_equal_p, df_ref_compare): Compare offset and width fields
      	of df_ref_extract.
      	(df_ref_create_structure): Allocate df_ref_extract if offset and
      	width fields are used.
      	(df_def_record_1): Get offset and width from ZERO_EXTRACT.
      	(df_uses_record): Get offset and width from ZERO_EXTRACT 
      	and SIGN_EXTRACT.
      	* global.c (build_insn_chain): Change DF_REF_EXTRACT to either
      	DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
      	DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
      	* df.h (df_ref_flags): Change DF_REF_EXTRACT to either
      	DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
      	DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
      	(df_ref_extract): New structure.
      	(DF_REF_WIDTH, DF_REF_OFFSET): New macros.
      	(df_ref_create): Add width and offset parameters.
      
      From-SVN: r132962
      Kenneth Zadeck committed
  2. 01 Mar, 2008 1 commit
    • df-scan.c (df_ref_chain_change_bb): Simplify. · 63642d5a
      * df-scan.c (df_ref_chain_change_bb): Simplify.
      (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
      set_block_for_insn if there's any change.
      * df.h ((df_insn_change_bb): Fix prototype.
      * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
      df_insn_change_bb, don't call set_block_for_insn.
      * emit-rtl.c (reorder_insns): Likewise.
      * haifa-sched.c (move_insn): Likewise.
      
      From-SVN: r132795
      Alexandre Oliva committed
  3. 22 Jan, 2008 1 commit
    • re PR tree-optimization/26854 (Inordinate compile times on large routines) · 963acd6f
      2008-01-22  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	PR rtl-optimization/26854
      	PR rtl-optimization/34400
      	PR rtl-optimization/34884
      	* ddg.c (create_ddg_dep_from_intra_loop_link): Use
      	DF_RD->gen.
      	* df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
      	(df_rd_bb_info.expanded_lr_out): Deleted
      	* loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
      	* loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
      	(df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
      	df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
      	Removed code to allocate, initialize or free expanded_lr_out.
      	(df_rd_bb_local_compute_process_def): Restructured to make more
      	understandable.
      	(df_rd_confluence_n): Removed code to no apply invalidate_by_call
      	sets if the sets are being trimmed.
      
      From-SVN: r131719
      Kenneth Zadeck committed
  4. 20 Jan, 2008 1 commit
    • re PR tree-optimization/26854 (Inordinate compile times on large routines) · 2b49e1a0
      2008-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	PR rtl-optimization/26854
      	PR rtl-optimization/34400
      	* ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
      	DF_RD->gen.
      	* df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
      	(df_rd_bb_info.expanded_lr_out): New.
      	* loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
      	* loop_iv.c (iv_analysis_loop_init): Ditto.
      	* df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
      	df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
      	Added code to allocate, initialize or free expanded_lr_out.
      	(df_rd_bb_local_compute_process_def): Restructured to make
      	more understandable.
      	(df_rd_confluence_n): Add code to do nothing with fake edges and
      	code to no apply invalidate_by_call sets if the sets are being trimmed.
      	(df_lr_local_finalize): Renamed to df_lr_finalize.
      	(df_live_local_finalize): Renamed to df_live_finalize.
      
      From-SVN: r131670
      Kenneth Zadeck committed
  5. 16 Dec, 2007 1 commit
  6. 14 Dec, 2007 1 commit
  7. 02 Oct, 2007 1 commit
    • ra-conflict.c: New file. · ba49cb7b
      2007-09-02  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* ra-conflict.c: New file.
      	* ra.h: New file.
      	* reload.c (push_reload, find_dummy_reload): Change DF_RA_LIVE
      	usage to DF_LIVE usage.
      	* rtlanal.c (subreg_nregs_with_regno): New function.  
      	* df-scan.c (df_def_record_1, df_uses_record): Add code to set
      	DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, and DF_REF_SUBREG flags.
      	(df_has_eh_preds): Removed.
      	(df_bb_refs_collect, df_bb_refs_collect, df_bb_refs_collect,
      	df_exit_block_uses_collect): Changed call from df_has_eh_preds to
      	bb_has_eh_pred.
      	* global.c (allocno, max_allocno, conflicts, allocno_row_words,
      	reg_allocno, EXECUTE_IF_SET_IN_ALLOCNO_SET): Moved to ra.h
      	(SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Moved to ra-conflicts.c.
      	(regs_set, record_one_conflict, record_conflicts, mark_reg_store,
      	mark_reg_clobber, mark_reg_conflicts, mark_reg_death): Deleted.
      	(global_alloc): Turn off rescanning insns after call to
      	global_conflicts and added call to set_preferences.
      	(global_conflicts): Moved to ra-alloc.c.
      	(set_preferences_1, set_preferences): New function.
      	(mirror_conflicts): Changed types for various variables.
      	(mark_elimination): Change DF_RA_LIVE
      	usage to DF_LIVE usage.
      	(build_insn_chain): Rewritten from scratch and made local.
      	(print_insn_chain, print_insn_chains): New functions.
      	(dump_conflicts): Do not print conflicts for fixed_regs.
      	(rest_of_handle_global_alloc): Turn off insn rescanning.
      	* hard-reg-set.h: Fixed comment.
      	* local-alloc.c (update_equiv_regs): Change DF_RA_LIVE
      	usage to DF_LIVE usage and delete refs to TOP sets.
      	(block_alloc): Mark regs as live if they are in the artificial
      	defs at top of block.
      	(find_stack_regs): New function.
      	(rest_of_handle_local_alloc): Changed urec problem to live
      	problem and do not turn off df rescanning.
      	* df.h (DF_UREC, DF_UREC_BB_INFO, DF_LIVE_TOP, DF_RA_LIVE_IN,
      	DF_RA_LIVE_TOP, DF_RA_LIVE_OUT, df_urec_bb_info, df_urec,
      	df_urec_add_problem, df_urec_get_bb_info, df_has_eh_preds): Removed.
      	(DF_CHAIN, DF_NOTE, DF_CHAIN): Renumbered.
      	(DF_REF_EXTRACT, DF_REF_STRICT_LOWER_PART, DF_REF_SUBREG): New
      	fields in df_ref_flags.  The rest have been renumbered.  
      	* init-regs.c (initialize_uninitialized_regs): Enhanced debugging
      	at -O1.
      	* rtl.h (subreg_nregs_with_regno): New function.
      	* df-problems.c: (df_get_live_out, df_get_live_in,
      	df_get_live_top): Removed reference to DF_RA_LIVE.
      	(df_lr_reset, df_lr_transfer_function, df_live_free_bb_info,
      	df_live_alloc, df_live_reset, df_live_local_finalize,
      	df_live_free): Make top set only if different from in set.
      	(df_lr_top_dump, df_live_top_dump): Only print top set if
      	different from in set.
      	(df_lr_bb_local_compute): Removed unnecessary check.
      	(df_urec_problem_data, df_urec_set_bb_info, df_urec_free_bb_info, 
      	df_urec_alloc, df_urec_mark_reg_change, earlyclobber_regclass, 
      	df_urec_check_earlyclobber, df_urec_mark_reg_use_for_earlyclobber,
      	df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
      	df_urec_local_compute, df_urec_init, df_urec_local_finalize, 
      	df_urec_confluence_n, df_urec_transfer_function, df_urec_free, 
      	df_urec_top_dump, df_urec_bottom_dump, problem_UREC,
      	df_urec_add_problem): Removed.
      	(df_simulate_fixup_sets): Changed call from df_has_eh_preds to
      	bb_has_eh_pred. 
      	* Makefile.in (ra-conflict.o, ra.h): New dependencies.
      	* basic_block.h (bb_has_abnormal_pred): New function.
      	* reload1.c (compute_use_by_pseudos): Change DF_RA_LIVE
      	usage to DF_LIVE usage.
      
      From-SVN: r128957
      Kenneth Zadeck committed
  8. 30 Aug, 2007 1 commit
    • df-core.h (df_dump_region): New function. · ffd640ed
      2007-08-30  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* df-core.h (df_dump_region): New function.
      	* df.h (df_dump_region): New function.
      	* loop-invariant.c (find_defs): Add call to df_dump_region.
      	* loop-iv.c (iv_analysis_loop_init): Changed call from df_dump to
      	df_dump_region.
      
      From-SVN: r127931
      Kenneth Zadeck committed
  9. 05 Aug, 2007 1 commit
    • configure.ac: Remove --enable-checking=df from default settings. · 0d475361
      2008-08-05  Paolo Bonzini  <bonzini@gnu.org>
      
              * configure.ac: Remove --enable-checking=df from default settings.
              * tree-pass.h (TODO_df_verify): New.  Shift TODO_mark_first_instance.
              * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
              if the parameter is true.
              (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
              DF_VERIFY_SCHEDULED flag is true.
              * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
              (df_finish_pass): Adjust prototype.
              * passes.c (execute_todo): Schedule verification if TODO_df_verify is
              true.
      
              * see.c (pass_see): Add TODO_df_verify.
              * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
              * global.c (rest_of_handle_global_alloc): Schedule verification
              after the pass.
              * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
              before the pass.
              * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
              * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
              * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
      
              * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
              * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
              * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
      
      From-SVN: r127225
      Paolo Bonzini committed
  10. 31 Jul, 2007 1 commit
    • df.h (DF_RU, [...]): Removed. · f2ffe7a0
      2007-07-31  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
      	df_ru_add_problem, df_ru_get_bb_info): Removed.
      	(DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
      	* df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
      	df_ru_free_bb_info, df_ru_alloc,
      	df_ru_bb_local_compute_process_def,
      	df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
      	df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
      	df_ru_transfer_function, df_ru_free, df_ru_start_dump,
      	df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
      	df_ru_add_problem): Removed.
      
      From-SVN: r127099
      Kenneth Zadeck committed
  11. 28 Jul, 2007 1 commit
    • cfglayout.c, [...]: Fix comment typos. · cea618ac
      	* cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
      	config/arm/neon-schedgen.ml, config/arm/neon.ml,
      	config/arm/vec-common.md, config/ia64/div.md, cselib.c,
      	df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
      	regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
      	tree-vect-transform.c, tree.def: Fix comment typos.  Follow
      	spelling conventions.
      	* doc/invoke.texi: Follow spelling conventions.
      
      From-SVN: r127030
      Kazu Hirata committed
  12. 27 Jul, 2007 2 commits
    • 2007-xx-xx Richard Sandiford <rsandifo@nildram.co.uk> · ab34041d
      	    Richard Guenther <rguenther@suse.de>
      
      gcc/
      	* df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
      	into bitfields.
      	(df_ref): Likewise.  Put regno with other integer fields.
      
      From-SVN: r126971
      Richard Sandiford committed
    • df.h (df_mw_hardreg): Remove "loc" field. · 6f5c1520
      gcc/
      	* df.h (df_mw_hardreg): Remove "loc" field.
      	* df-scan.c (df_ref_record): Don't set it.  Remove redundant
      	local variable.
      	* df-problems.c (df_whole_mw_reg_unused_p): New function,
      	split out from df_set_unused_notes_for_mw.  Return false for
      	partial references.  Assert that mw_reg is a REG when returning true.
      	(df_set_unused_notes_for_mw): Use it.  Use mw_reg instead of *loc.
      	(df_whole_mw_reg_dead_p): New function, split out from
      	df_set_dead_notes_for_mw.  Return false for partial references.
      	Assert that mw_reg is a REG when returning true.
      	(df_set_dead_notes_for_mw): Use it.  Use mw_reg instead of *loc.
      	Remove redundant bitmap check.
      
      From-SVN: r126970
      Richard Sandiford committed
  13. 26 Jul, 2007 1 commit
  14. 07 Jul, 2007 1 commit
    • auto-inc-dec.c, [...]: Fix comment typos. · 6ed3da00
      	* auto-inc-dec.c, config/arm/arm.c,
      	config/m32r/constraints.md, config/mips/mips.md,
      	config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
      	df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
      	tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
      	typos.  Follow spelling conventions.
      	* doc/invoke.texi, doc/rtl.texi: Fix typos.
      
      From-SVN: r126439
      Kazu Hirata committed
  15. 19 Jun, 2007 1 commit
    • df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed. · 89a95777
      2007-06-15  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
      	(struct df_problem.free_blocks_on_set_blocks): New field.
      	(struct dataflow.optional_p): New field.
      	(df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
      	(df_live_set_all_dirty): New function.
      	* df-scan.c (df_scan_alloc): Initialize optional_p.
      	(problem_SCAN): Initialize free_blocks_on_set_blocks.
      	* df-core.c (df_set_blocks): Removed use of
      	DF_FIRST_OPTIONAL_PROBLEM.  Now uses
      	df_problem.free_blocks_on_set_blocks to determine which blocks are
      	recycled.
      	(df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
      	(df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
      	uses dataflow.optional_p to determine if problem should be
      	deleted.
      	(rest_of_handle_df_initialize): Only start live problem if 
      	-02 or above.
      	(df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
      	* df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
      	df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
      	(problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
      	problem_NOTE):  Initialize free_blocks_on_set_blocks.
      	(df_lr_bb_local_compute): Recompute luids if df_live problem is
      	not active.
      	(df_live_set_all_dirty, df_note_alloc): New function.
      	* regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
      	df_get_live_*.
      	* sched_ebb.c (compute_jump_reg_dependencies): Ditto.
      	* postreload.c (reload_combine): Ditto.
      	* cse.c (cse_extended_basic_block): Ditto.
      	* regmove.c (mark_flags_life_zones): Ditto.
      	* rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
      	erase_matching_seqs): Ditto.
      	* bt-load.c (compute_defs_uses_and_gen): Ditto.
      	* integrate (allocate_initial_values): Ditto.
      	* combine.c (reg_dead_at_p): Ditto.
      	* resource.c (mark_target_live_regs): Ditto.
      	* sched-rgn.c (check_live_1, update_live_1): Ditto.
      	* config/sh/sh.c (find_r0_life_regions): Ditto.
      	* global.c (rest_of_handle_global_alloc): Only add back df_live
      	for -O > 1.
      	* local-alloc.c (rest_of_handle_local_alloc): Only remove
      	df_live for -O > 1.
      	* ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
      	df_get_live_*.
      	(if_convert): Make sure df_live is there at -O == 1.
      	(pass_if_after_combine): Cleanup flags.
      	* init-regs.c (initialize_uninitialized_regs): Make sure df_live
      	is there at -O == 1.
      
      From-SVN: r125857
      Kenneth Zadeck committed
  16. 13 Jun, 2007 1 commit
    • auto-inc-dec.c, [...]: Fix comment typos. · 0d52bcc1
      	* auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
      	config/sh/divcost-analysis, dbgcnt.def, df-core.c,
      	df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
      	tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
      	tree-vect-transform.c: Fix comment typos.  Follow spelling
      	conventions.
      
      From-SVN: r125666
      Kazu Hirata committed
  17. 11 Jun, 2007 1 commit
  18. 20 Mar, 2007 1 commit
    • re PR middle-end/30907 (Propagation of addresses within loops pessimizes code) · fb406162
      2007-03-19  Paolo Bonzini  <bonzini@gnu.org>
      
      	PR rtl-optimization/30907
      	* fwprop.c (forward_propagate_into): Never propagate inside a loop.
      	(fwprop_init): Always call loop_optimizer_initialize.
      	(fwprop_done): Always call loop_optimizer_finalize.
      	(fwprop): We always have loop info now.
      	(gate_fwprop_addr): Remove.
      	(pass_fwprop_addr): Use gate_fwprop as gate.
      
      	PR rtl-optimization/30841
      	* df-problems.c (df_ru_local_compute, df_rd_local_compute,
      	df_chain_alloc): Call df_reorganize_refs unconditionally.
      	* df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
      	refs_organized to refs_organized_size.
      	(df_ref_create_structure): Use refs_organized_size instead of
      	bitmap_size if refs had been organized, and keep refs_organized_size
      	up-to-date.
      	* df.h (struct df_ref_info): Change refs_organized to
      	refs_organized_size.
      	(DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
      	bitmap_size.
      
      From-SVN: r123084
      Paolo Bonzini committed
  19. 18 Feb, 2007 1 commit
    • cfgloop.c, [...]: Fix comment typos. · ea2c620c
      	* cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
      	config/i386/athlon.md, config/ia64/ia64.md,
      	config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
      	df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
      	ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
      	tree-ssa-loop-niter.c, tree-vect-analyze.c,
      	tree-vect-transform.c: Fix comment typos.
      
      From-SVN: r122080
      Kazu Hirata committed
  20. 28 May, 2006 1 commit
    • cfgcleanup.c, [...]: Fix comment typos. · 6fc0bb99
      	* cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
      	config/fr30/fr30.md, config/i386/i386-interix.h,
      	config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
      	config/sh/superh64.h, config/v850/v850.c, df-core.c,
      	df-problems.c, df.h, except.c, final.c, haifa-sched.c,
      	lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
      	reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
      	tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
      	Follow spelling conventions.
      	* doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
      	Follow spelling conventions.
      
      From-SVN: r114168
      Kazu Hirata committed
  21. 23 May, 2006 1 commit
    • df-core.c: Added to header comments. · b11550aa
      2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
      
              * df-core.c: Added to header comments.
      	* df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
      	df_ur_bb_info, df_urec_bb_info): Added comments.
      	* df-problems (df_ref_bitmap, ru, rd, lr, ur, 
      	urec, ri problems): Fixed header comments.
      	(df_ru_transfer_function): Fixed in-out set dyslexia when copying 
      	code from df_rd_transfer_function.
      
      From-SVN: r114024
      Kenneth Zadeck committed
  22. 19 May, 2006 1 commit
    • re PR rtl-optimization/26855 (ICE in add_deps_for_def with -fmodulo-sched -maltivec) · 23249ac4
      2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
                  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	PR rtl-optimization/26855
      
      	* df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
      	multiword refs.
      	(df_scan_alloc): Added code to properly handle multiword hard
      	registers and add all_blocks parameter.
      	(df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
      	code to properly handle multiword hard registers.
      	(df_rescan_blocks): Added code to remove deleted blocks from
      	bitmap.
      	(df_ref_create_structure, df_ref_record): Added code to properly
      	handle subregs.
      	(df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
      	and set DF_REF_PARTIAL.
      	(df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
      	(df_uses_record): Added DF_REF_PARTIAL for subreg. 
      	(df_scan_add_problem): Added flags parameter.
      	(df_ref_create_structure): Changed switching structure.
      	(df_bb_refs_record): Fixed case where duplicate artificial refs
      	were created.  Changed location of flags.
      	(df_record_entry_block_defs): Added code to make stack pointer
      	live in entry block.  Refined cases where frame pointer is needed.
      	Changed location of flags.
      	(df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
      	(df_set_state): Removed function.
      	(df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
      	df_insn_create_insn_record, df_insn_refs_delete, 
      	df_ref_create_structure): Formatting changes.  
      	* df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
      	df_delete_basic_block): New function.
      	(df_init): Changed location of flags.
      	(df_add_problem): Added flags parameter and the way flags are
      	processed.
      	(df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
      	debug_df_chain): Improved debugging output.
      	(df_insn_debug, df_insn_uid_debug): Added multiword reg support.
      	(df_refs_chain_dump): Removed df parameter.
      	(df_iterative_dataflow): Added consistency check.
      	(df_prune_to_subcfg): Made public.
      	(df_analyze_problem): Added blocks_to_init parameter and made
      	public.
      	(df_ref_record, df_bb_refs_record, df_mark_reg, 
      	 df_record_exit_block_uses): Whitespace changes.
      	(df_dump): Whitespace changes.
      	* df.h: Some reordering to remove forward references.
      	(df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
      	DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
      	(df_ref_flags.DF_REF_CLOBBER): Deleted field.
      	(dataflow.flags): New field.
      	(df.flag): Deleted field.
      	(df_alloc_function): Added additional bitmap parameter.
      	(df_dependent_problem_function): New type.
      	(df_problem.changeable_flags): New field.
      	(df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
      	DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
      	(df_mw_hardreg): New struct.
      	(DF_INSN_UID_MWS): New macro.
      	(df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
      	parameter.
      	(df_add_problem, df_ru_add_problem, df_rd_add_problem,
      	df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
      	df_ri_add_problem, df_scan_add_problem): Added flags parameter.
      	(df_set_state): Removed function.
      	(df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
      	* df-problems.c (df_chain_dump): Removed df parameter.
      	(df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
      	df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
      	parameter.
      	(df_ru_alloc, df_rd_alloc): Now resets all blocks.
      	(df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
      	df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
      	Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
      	DF_REF_MUST_CLOBBER cases.
      	(df_ru_bb_local_compute_process_def,
      	df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
      	df_lr_bb_local_compute, df_ur_bb_local_compute,
      	df_chain_create_bb): Made subreg aware.
      	(df_ru_bb_local_compute, df_rd_bb_local_compute,
      	df_lr_bb_local_compute, df_lr_bb_local_compute,
      	df_chain_create_bb): Cleanup to use proper macros.
      	(df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
      	code to fixup bitvectors.
      	(df_ri_alloc): Cleared lifetime.
      	(df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
      	df_create_unused_note): New function.
      	(df_ri_bb_compute, df_ri_compute): Added code to create/update
      	REG_DEAD and REG_UNUSED notes as well as register information.
      	(df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
      	df_chains_dump): Fixed crash if problem was never run.
      	(df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
      	df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
      	df_ri_add_problem): Processes flags in uniform manner.
      	(df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
      	df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
      	df_rd_dump, df_urec_free_bb_info): Formatting changes.
      	(df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
      	df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
      	df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
      	df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
      	df_ur_dump, df_urec_free_bb_info, df_urec_dump,
      	df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
      	* modulo-sched.c (sms_schedule): Added flag parameter to calls.
      	* see.c (see_initialize_data): Ditto.
      	* final.c (rest_of_clean_state) Added regstack_completed.
      	* rtl.h (regstack_completed): Ditto.
      	* reg-stack.c (regstack_completed): Ditto.
      
      From-SVN: r113915
      Daniel Berlin committed
  23. 04 May, 2006 1 commit
    • [multiple changes] · 8cd37d0b
      2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
      
              * see.c: New file.
              * Makefile.in (OBJS-common): Add see.o.
              (see.o): Add dependencies.
              * common.opt (fsee): New flag for the see optimization was added.
              * opts.c (flag_see): Initialized.
              * passes.c (init_optimization_passes, pass_see): New pass.
              * rtl.h (see_main): Declaration as extern.
              * timevar.def (TV_SEE): New.
              * tree-pass.h (pass_see): Declaration as extern.
              * invoke.texi (-fsee): Document.
              * recog.c (validate_simplify_insn): New function.
              * recog.h (validate_simplify_insn): Declaration as extern.
              * df-problems.c (df_chain_dump): Check for NULL.
      
      2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
                  Daniel Berlin  <dberlin@dberlin.org>
      
              * cfgrtl.c (insert_insn_bb_end_new): New function.
              * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
      
      2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
      
              * df.h (struct web_entry): Moved from web.c.
              (union_defs): Declaration as extern.
              (unionfind_root): Likewise.
              (unionfind_union): Likewise.
              * web.c (struct web_entry): Moved to df.h.
              (unionfind_root): Remove static declaration.
              (unionfind_union): Likewise.
              (union_defs): Likewise and generalize to use callback function.
              (web_main): Update arguments for union_defs function call.
      
      From-SVN: r113518
      Razya Ladelsky committed
  24. 04 Mar, 2006 1 commit
    • builtins.c, [...]: Fix comment typos. · c0220ea4
      	* builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
      	combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
      	config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
      	config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
      	df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
      	loop-invariant.c, omp-low.c, opts.c, passes.c,
      	rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
      	tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
      	tree-ssa-structalias.c, tree-ssa-threadedge.c,
      	tree-ssa-threadupdate.c, tree-vect-patterns.c,
      	tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
      	unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
      
      From-SVN: r111721
      Kazu Hirata committed
  25. 08 Feb, 2006 1 commit
  26. 27 Jan, 2006 1 commit
    • re PR rtl-optimization/24762 ([killloop-branch] code motion of non-invariant… · 912f2dac
      re PR rtl-optimization/24762 ([killloop-branch] code motion of non-invariant expressions with hard registers.)
      
      2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
      	    Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	PR rtl-optimization/24762 
      	* doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
      	* targhooks.c (hook_void_bitmap): New hook prototype.
      	* targhoohs.h (hook_void_bitmap): Ditto.
      	* bitmap.h (bitmap_head_def): Moved to coretypes.h.
      	* coretypes.h (bitmap_head_def): Moved from bitmap.h.
      	* target.h (live_on_entry): New function pointer.
      	* df-scan.c (df_all_hard_regs): Removed.
      	(df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
      	(df_scan_free_internal): Added df->entry_block_defs.
      	(df_scan_alloc): Ditto.
      	(df_scan_dump): Ditto.
      	(df_uses_record): Plumbed flag field properly thru calls.
      	Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
      	This part fixes PR24762.
      	(df_bb_refs_record): Added code to make the frame and arg
      	pointers live in EH blocks.
      	(df_refs_record): Added call to df_record_entry_block_defs.
      	(df_record_entry_block_defs): New function.
      	* df-core.c: Added comments to describe new artifical defs.
      	* df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
      	(entry_block_defs): New field in struct df.
      	(df_all_hard_regs): Deleted.
      	* target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
      	* df-problems.c (df_ru_bb_local_compute_process_def):
      	Added code to handle artifical defs in the entry to a function.
      	(df_ru_bb_local_compute): Ditto.
      	(df_rd_bb_local_compute_process_def):  Ditto.
      	(df_rd_bb_local_compute): Ditto.
      	(df_lr_bb_local_compute): Ditto.
      	(df_ur_bb_local_compute): Ditto.
      	(df_urec_bb_local_compute):  Ditto.
      	(df_chain_create_bb):  Ditto.
      	(df_ur_local_finalize):	Removed entry.
      	(df_urec_init): Ditto.
      	(df_urec_local_finalize): Ditto.
      	(df_ri_bb_compute): Added detection of last use of pseudos.
      	* Makefile.in (df-scan.o): Updated dependencies.
      	* config/mips/mips-protos.h (mips_set_live_on_entry): Added.
      	* config/mips/mips.c (mips_set_live_on_entry): Added.
      	* config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
      	for target hook.
      	* dce.c (marked_insn_p): Added code to handle artifical defs.
      
      
      Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
      
      From-SVN: r110312
      Daniel Berlin committed
  27. 21 Jan, 2006 1 commit
    • df-scan.c (problem_SCAN): Added NULL reset function. · 30cb87a0
      2005-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* df-scan.c (problem_SCAN): Added NULL reset function.
      	(df_scan_reset_blocks): Added code to call reset block function
      	(df_bb_refs_delete) Fixed comment.
      	(df_insn_refs_delete): Made tolerant of deleting non existent info
      	for dataflow problems that need to be reset.
      	* df-core.c (df_set_blocks): Ditto.
      	* df.h (struct df_problem): Added reset_fun.
      	* df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
      	problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
      	(df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
      	functions to clear out all references to def-use or use-def chains.
      
      From-SVN: r110066
      Kenneth Zadeck committed
  28. 20 Jan, 2006 1 commit
    • df-scan.c (df_scan_free_bb_info): Added basic block parameter to be able to… · 3b8266e2
      df-scan.c (df_scan_free_bb_info): Added basic block parameter to be able to clean out basic block when not necessary.
      
      2005-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* df-scan.c (df_scan_free_bb_info): Added basic block parameter to
      	be able to clean out basic block when not necessary.
      	(df_scan_free): Fixed to properly delete information if df is
      	unused before calling df_finish.
      	(df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
      	df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
      	or comment typos.
      	(df_bb_refs_delete): New function.
      	(df_refs_delete): Moved per block code to df_bb_refs_delete.
      	* df-core.c (df_set_blocks): Added code to properly clean out
      	unused blocks if they are not part of the blocks to consider.
      	Added additional null check.
      	(df_compact_blocks): Added basic block parameter to free_bb_fun to
      	be able to clean out basic block when not necessary
      	* df.h (df_free_bb_function): Ditto.
      	(df_bb_refs_delete): New function.
      	* df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
      	df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
      	basic block parameter to be able to clean out basic block when not
      	necessary.
      	(df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
      	(df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
      	Fixed to properly delete information if df is unused before
      	calling df_finish.
      
      From-SVN: r110009
      Kenneth Zadeck committed
  29. 11 Jan, 2006 1 commit
    • df.h (DF_SCAN, [...]): New macros. · 4d779342
      2005-01-11  Danny Berlin <dberlin@dberlin.org>
                  Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
      	DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
      	DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
      	DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
      	DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
      	DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
      	DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
      	DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
      	DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
      	DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
      	DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
      	DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
      	DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
      	DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
      	DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
      	DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
      	DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
      	DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
      	DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
      	DF_SCAN_POST_ALLOC): New macros.
      	(df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
      	df_free_bb_function, df_local_compute_function, df_init_function,
      	df_dataflow_function, df_confluence_function_0,
      	df_confluence_function_n, df_transfer_function,
      	df_finalizer_function, df_free_function, df_dump_problem_function,
      	df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
      	df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
      	df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
      	df_urec_bb_info, ) New types.
      	(df_invalidated_by_call, df_all_hard_regs, df_state) New public
      	variables.
      	(df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
      	df_analyze_simple_change_some_blocks,
      	df_analyze_simple_change_one_block, df_compact_blocks,
      	df_bb_replace, df_bb_regno_last_use_find,
      	df_bb_regno_first_def_find, df_bb_regno_last_def_find,
      	df_insn_regno_def_p, df_find_def, df_find_use,
      	df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
      	df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
      	df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
      	debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
      	debug_df_chain, df_get_dependent_problem, df_chain_create,
      	df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
      	df_grow_bb_info, df_chain_dump, df_print_bb_index,
      	df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
      	df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
      	df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
      	df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
      	df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
      	df_rescan_blocks, df_ref_create, df_get_artificial_defs,
      	df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
      	df_ref_remove, df_insn_refs_delete, df_refs_delete,
      	df_reorganize_refs, df_set_state, df_hard_reg_init,
      	df_read_modify_subreg_p) New public functions.
              * df-core.c: The core dataflow solver and glue routines for rtl
      	dataflow.
      	(df_init, df_add_problem, df_set_blocks, df_finish,
      	df_hybrid_search_forward, df_hybrid_search_backward,
      	df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
      	df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
      	df_bb_regno_last_use_find, df_bb_regno_first_def_find,
      	df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
      	df_reg_defined, df_find_use, df_reg_used, df_dump,
      	df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
      	df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
      	debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
      	debug_df_useno, reset_df_after_reload): New functions.
      	* df-scan.c: The scanning fuctions, once in df.c, completely
      	rewritten so that they now fully model the functionality of
      	register usage at the backend.
      	(df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
      	df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
      	df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
      	df_grow_insn_info, df_rescan_blocks, df_ref_create,
      	df_get_artificial_defs, df_get_artificial_uses,
      	df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
      	df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
      	df_refs_delete, df_reorganize_refs, df_set_state,
      	df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
      	df_def_record_1, df_defs_record, df_uses_record,
      	df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
      	df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
      	df_record_exit_block_uses, df_hard_reg_init): New functions.
      
      	* df-problems.c: Seven concrete dataflow problems that use the
      	scanning in df-scan.c and are solved by the engine in df-core.c.
      	(df_get_dependent_problem, df_chain_create, df_chain_unlink,
      	df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
      	df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
      	df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
      	df_ru_free_bb_info, df_ru_alloc,
      	df_ru_bb_local_compute_process_def,
      	df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
      	df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
      	df_ru_transfer_function, df_ru_free, df_ru_dump,
      	df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
      	df_rd_free_bb_info, df_rd_alloc,
      	df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
      	df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
      	df_rd_transfer_function, df_rd_free, df_rd_dump,
      	df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
      	df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
      	df_lr_local_compute, df_lr_init, df_lr_confluence_0,
      	df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
      	df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
      	df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
      	df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
      	df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
      	df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
      	df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
      	df_urec_mark_reg_change, df_urec_check_earlyclobber,
      	df_urec_mark_reg_use_for_earlyclobber,
      	df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
      	df_urec_local_compute, df_urec_init, df_urec_local_finalize,
      	df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
      	df_urec_dump, df_urec_add_problem, df_chain_alloc,
      	df_chain_create_bb_process_use, df_chain_create_bb,
      	df_chain_finalize, df_chain_free, df_chains_dump,
      	df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
      	df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
      	df_reg_lifetime): New functions.
      	* df.c: Deleted file.
              * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
      	consistent with new df api.
              * modulo-sched.c (sms_schedule, rest_of_handle_sms,
              rest_of_handle_sms): Ditto.
              * web.c (unionfind_union, union_defs, entry_register, web_main):
      	Ditto.
      	* loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
      	invariant_expr_equal_p, find_defs, check_dependencies,
      	find_invariant_insn, find_invariants_to_move, move_invariant_reg,
      	free_inv_motion_data, move_loop_invariants): Ditto.
      	* sched-deps.c (sched_analyze_1): Ditto.
      
      
      Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
      
      From-SVN: r109577
      Daniel Berlin committed
  30. 22 Dec, 2005 1 commit
    • df.c (df_bitmaps_free): Only work for bbs for that structures are allocated. · 1052bd54
      	* df.c (df_bitmaps_free): Only work for bbs for that structures are
      	allocated.
      	(df_bb_modify): Realloc tables to the new index.
      	(df_find_use): New function.
      	(df_find_def, df_reg_used): Handle subregs.
      	* df.h (df_find_use): Declare.
      
      	* loop-invariant.c: Include hashtab.h.
      	(struct invariant): Remove processed field, add eqto and reg fields.
      	(struct invariant_expr_entry): New.
      	(invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p,
      	hash_invariant_expr, eq_invariant_expr, find_or_insert_inv,
      	find_identical_invariants, merge_identical_invariants): New functions.
      	(create_new_invariant): Return the new invariant.  Initialize new
      	fields.
      	(find_invariants): Call merge_identical_invariants.
      	(get_inv_cost, best_gain_for_invariant, set_move_mark,
      	move_invariant_reg): Handle equivalent invariants.
      	* Makefile.in (loop-invariant.o): Add HASHTAB_H dependency.
      
      
      Co-Authored-By: Steven Bosscher <stevenb@suse.de>
      
      From-SVN: r108949
      Zdenek Dvorak committed
  31. 17 Dec, 2005 1 commit
    • basic-block.h: Changed basic block numbering so that the entry block is 0 and the exit block is 1. · 24bd1a0b
      2005-12-17  Danny Berlin <dberlin@dberlin.org>
      	    Kenneth Zadeck <zadeck@naturalbridge.com>
      
      	* basic-block.h: Changed basic block numbering so that the entry
      	block is 0 and the exit block is 1.  Changed insn iterators so
      	that they are tolerant of blocks with no insns.
      	* regrename.c (copyprop_hardreg_forward): Changed basic block
      	numbering so that the entry block is 0 and the exit block is 1.
      	* sched-ebb.c (sehedule_ebbs): Ditto.
      	* tracer.c (branch_ratio_cutoff): Ditto.
      	* cfgloopmanip.c (fix_loop_structure): Ditto.
      	* cfghooks.c (verify_flow_info): Ditto.
      	* cfg.c (compact_blocks): Ditto.
      	* reorg.c (dbr_schedule): Ditto.
      	* flow.c (calculate_global_regs_live, libcall_dead_p): Ditto.
      	* dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree,
      	calculate_dominance_info): Ditto.
      	* cfganal.c (create_edge_list, print_edge_list,
      	flow_depth_first_order_compute, flow_dfs_compute_reverse_init,
      	flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute,
      	dfs_enumerate_from): Ditto.
      	* global.c (global_alloc, set_up_bb_rts_numbers): Ditto.
      	* ifcvt.c (find_if_case_2): Ditto.
      	* cfgbuild.c (control_flow_insn_p, count_basic_blocks,
      	find_basic_blocks): Ditto.
      	* predict.c (predict_loops, tree_bb_level_predictions,
      	predict_paths_leading_to, propagate_freq): Ditto.
      	* lcm.c (compute_antinout_edge, compute_laterin,
      	compute_available): Ditto.
      	* function.c (thread_prologue_and_epilogue_insns): Ditto.
      	* gcse.c (gcse_main, bypass_jumps): Ditto.
      	* profile.c (compute_branch_probabilities,
      	compute_value_histograms, branch_prob): Ditto.
      	* tree-flow-inline.h (bsi_start, bsi_after_labels,
      	bsi_last): Ditto.
      	* tree-ssa-phiopt.c (tree_ssa_phiopt,
      	blocks_in_phiopt_order): Ditto.
      	* bt-load.c (compute_defs_uses_and_gen, compute_kill,
      	compute_out, link_btr_uses, migrate_btr_defs): Ditto.
      	* tree-dfa.c (collect_dfa_stats): Ditto.
      	* cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto.
      	* cfglayout.c (fixup_reorder_chain): Ditto.
      	* bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos,
      	partition_hot_cold_basic_blocks): Ditto.
      	* var-tracking.c (vt_find_locations): Ditto.
      	* cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto.
      	* sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto.
      	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges
      	label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto.
      	* tree-ssa-reassoc.c (init_reassoc): Ditto.
      	* cfgrtl.c (entry_of_function, rtl_verify_flow_info,
      	rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto.
      	* df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto
      	and removed unused reverse orders.
      	* df.h (): Ditto.
      	* combine.c: Fix document typo.
      
      
      
      Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
      
      From-SVN: r108713
      Daniel Berlin committed
  32. 25 Jun, 2005 1 commit
  33. 26 May, 2005 1 commit
    • df.h (DF_SUBREGS, [...]): New. · 57a95bc4
      2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
      
      	* df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
      	* df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
      
      From-SVN: r100197
      Paolo Bonzini committed
  34. 10 Feb, 2005 1 commit
  35. 07 Feb, 2005 1 commit
  36. 02 Feb, 2005 1 commit
  37. 17 Nov, 2004 1 commit
  38. 10 Jun, 2004 1 commit
    • Makefile.in (df.o): Remove fibheap dependency. · 9bf7acfc
      	* Makefile.in (df.o): Remove fibheap dependency.
      	* df.h: Do not include sbitmap.h.
      	(struct ref): New field "data".
      	(DF_REF_DATA): New accessor macro.
      	(struct df): Field "dom" removed.
      	(df_analyze_subcfg): New function.
      	(transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
      	(transfer_function): ... new type.
      	(iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
      	(iterative_dataflow): ... new function.
      	(enum set_representation, struct dataflow): New.
      	* df.c: Do not include fibheap.h.
      
      	(df_reg_def_chain_clean, df_reg_use_chain_clean,
      	(df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
      	prune_to_subcfg, df_bb_modify): New functions.
      	(df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
      	df_refs_update, df_reg_table_realloc, df_ref_create,
      	df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
      	df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
      	df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
      
      	(dataflow_set_a_op_b, dataflow_set_copy): New functions.
      	(df_rd_transfer_function, df_ru_transfer_function,
      	df_lr_transfer_function): Type of bitmaps changed to void *.
      	(hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
      	(hybrid_search): ... new function.
      	(iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
      	(iterative_dataflow): ... new function. Avoid use of fibheaps for
      	a worklist.  Do not process basic blocks unnecessarily.
      
      From-SVN: r82921
      Zdenek Dvorak committed
  39. 03 Jun, 2004 1 commit
    • Makefile.in (RA_H, [...]): New. · 59587b18
      2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
      
      	* Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
      	CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
      	(TARGET_H): Add insn-modes.h.
      	(tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
      	loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
      	loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
      	loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
      	cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
      	(toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
      	loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
      	bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
      	CFGLAYOUT_H.
      	(ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
      	Replace ra.h with RA_H.
      	(resource.o, regrename.o, insn-conditions.o, insn-emit.o,
      	insn-recog.o): Replace resource.h with RESOURCE_H.
      	(ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
      	sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
      	with SCHED_INT_H.
      	(web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
      	ra-rewrite.o): Replace df.h with DF_H.
      	(ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
      	(tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
      	Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
      	(insn-conditions.o): Remove unused reload.h.
      	* cfglayout.h: Add include guard.  Include basic-block.h.
      	* cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
      	* ddg.h: Include sbitmap.h, basic-block.h, df.h.
      	* df.h: Add include guard.  Include bitmap.h, sbitmap.h,
      	basic-block.h.
      	* genconditions.c:  Remove reload.h.
      	* ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
      	hard-reg-set.h, insn-modes.h.
      	* resource.h: Add include guard.  Include hard-reg-set.h.
      	* sched-int.h:  Add include guard.  Include insn-attr.h,
      	basic-block.h, rtl.h.
      	* target.h: Add include guard.  Include insn-modes.h.
      	* tree-ssa-live.h: Include partition.h.
      
      From-SVN: r82600
      Jerry Quinn committed