2007-06-07  Kenneth Zadeck <zadeck@naturalbridge.com>

	* emit-rtl.c (set_insn_deleted): Changed NOTE_LINE_NUMBER to
	NOTE_KIND.
	(emit_note_after): Fixed merge glitch.
	* combine.c (try_combine):  Changed NOTE_LINE_NUMBER to
	NOTE_KIND.
	* reg-stack.c (convert_regs_1): Fixed merge glitch.
	* config/rs6000/rs6000.c (no_global_regs_above): Fixed merge typo.
	(rs6000_emit_prologue): Fixed merge glitch.

2007-06-06  Kenneth Zadeck <zadeck@naturalbridge.com>

	* regrename.c (do_replace): Removed ifdefed out code.
	* fwprop.c: Fixed copyright.
	* testsuite/Changelog.dataflow: Merged entry into
	testsuite/Changelog.  Deleted file.
	* global.c: Fixed comments.
	* recog.c (confirm_change_group): Fixed comments.
	(peephole2_optimize): Removed ifdefed out code.
	* gcse.c (try_replace_reg): Removed redundant changing and
	rescanning of notes.
	* rtl.h (SET_REGNO): Replaced brackets.
	* stack-ptr-mod.c: Changed copyright years.

2007-06-06  Seongbae Park  <seongbae.park@gmail.com>

	* config/ia64/ia64.c (ia64_frame_info): Restored the comment
	for the structure above. Removed left-over dead code from debugging.
	(ia64_compute_frame_size): Comment cleanup.
	(ia64_expand_prologue): Style fix. Debugging information header.
	(ia64_init_expanders): Added a comment.
	* config/ia64/ia64.h (ia64_init_expanders): Declaration moved
	to ia64-protos.h
	* config/ia64/ia64-protos.h (ia64_init_expanders): Declaration
	moved from ia64.h

2007-06-06  Kenneth Zadeck <zadeck@naturalbridge.com>

	* doc/rtl.text: Fixed spelling.
	* dse.c (store_info, read_info, insn_info, bb_info, group_info,
	deferred_change): Fixed formatting.
	(step0): Renamed to dse_step0.
	(step1): Renamed to dse_step1.
	(step2_init): Renamed to dse_step2_init.
	(step2_nospill): Renamed to dse_step2_nospill.
	(step2_spill): Renamed to dse_step2_spill.
	(step3_scan): Renamed to dse_step3_scan.
	(step3_exit_block_scan): Renamed to dse_step3_exit_block_scan.
	(step3): Renamed to dse_step3.
	(step4_nospill): Renamed to dse_step4_nospill.
	(step4_spill): Renamed to dse_step4_spill.
	(step4): Renamed to dse_step4.
	(step5_nospill): Renamed to dse_step5_nospill.
	(step5_spill): Renamed to dse_step5_spill.
	(step6): Renamed to dse_step6.
	(rest_of_handle_dse): Updated names of functions.
	* emit_rtl.c (verify_rtx_sharing, copy_rtx_if_shared_1,
	copy_insn_1): Now calls shared_const_p.
	* cselib.c (expand_loc, cselib_expand_value_rtx): Fixed comments.
	(cselib_expand_value_rtx): Now calls shared_const_p.
	* rtl.c (shared_const_p): New function.
	(copy_rtx): Now calls shared_const_p.
	* rtl.h (shared_const_p): New function.

2007-06-06  Kenneth Zadeck <zadeck@naturalbridge.com>

	* combine.c (find_single_use_1): Fixed comment and changed 0 to NULL.
	(find_single_use): Removed comment.
	(delete_noop_move): Removed unnecessary continue and removed
	nnoops counter.  Function now does not return anything.

2007-05-31  Kenneth Zadeck <zadeck@naturalbridge.com>

	* bitmap.c (bitmap_elt_copy): Fixed comment.
	* cfganal.c (inverted_post_order_compute): Fixed comment and
	formatting of test.
	* basic_block.h: Removed include rtl.h.
	(enum bb_flags): Renumbered.
	(FOR_EACH_BB_IN_REGION, FOR_EACH_BB_REVERSE_IN_REGION): Removed.
	(FOR_BB_INSNS_SAFE, FOR_BB_INSNS_REVERSE_SAFE): Fixed formatting.
	
2007-05-30  Kenneth Zadeck <zadeck@naturalbridge.com>

	* auto-inc-dec.c: Updated copyright date.
	(enum form, set_inc_state, dump_inc_insn, move_dead_notes,
	insert_move_insn_before, attempt_change, try_merge, find_address, 
	find_mem): Reformatted.
	(reverse_inc, find_address): Fixed spelling.
	(attempt_change, try_merge): Add default case.
	* basic-block.h: Updated copyright date.
	* bitmap.c: Updated copyright date.
	* bitmap.h: Updated copyright date.
	* cfganal.c: Updated copyright date.
	* cfg.c: Updated copyright date.
	* cfghooks.h: Updated copyright date.
	* cfglayout.c: Updated copyright date.
	* cfgloop.c: Updated copyright date.
	* cfgloop.h: Updated copyright date.
	* cfgrtl.c: Updated copyright date.
	* combine.c: Updated copyright date.
	* combine-stack-adj.c: Updated copyright date.
	* config/arc/arc.c: Updated copyright date.
	* config/arm/arm.c: (use_return_insn, 
	arm_compute_save_reg0_reg12_mask, arm_get_frame_offsets,
	arm_save_coproc_regs): Fixed formatting.
	* config/bfin/bfin.c: Updated copyright date.
	* config/c4x/c4x.c: Updated copyright date.
	* config/c4x/c4x.h: Updated copyright date.
	* config/cris/cris.c: Updated copyright date.
	* config/crx/crx.c: Updated copyright date.
	* config/crx/crx.h: Updated copyright date.
	* config/darwin.c: Updated copyright date.
	* config/frv/frv.c: Updated copyright date.
	* config/h8300/h8300.c: Updated copyright date.
	* config/h8300/h8300.md: Updated copyright date.
	* config/ia64/ia64.h: Updated copyright date.
	* config/iq2000/iq2000.c: Updated copyright date.
	* config/iq2000/iq2000.h: Updated copyright date.
	* config/m32c/m32c.c: Updated copyright date.
	* config/m68hc11/m68hc11.c: Updated copyright date.
	* config/m68k/m68k.c: Updated copyright date.
	* config/mips/mips.c: Updated copyright date.
	* config/mips/mips.md: Updated copyright date.
	* config/mmix/mmix.c: Updated copyright date.
	* config/mn10300/mn10300.c: Updated copyright date.
	* config/mt/mt.c: Updated copyright date.
	(mt_print_operand_simple_address, mt_print_operand): Fixed formatting.
	* config/mt/mt.h: Updated copyright date and fixed formatting.
       	* config/pa/pa.c: Updated copyright date.
	* config/pa/pa.h: Updated copyright date.
	* config/pdp11/pdp11.c: Updated copyright date.
	* config/pdp11/pdp11.h: Updated copyright date.
	* config/rs6000/predicates.md: Updated copyright date.
	* config/s390/s390.c: Updated copyright date.
	* config/score/score-mdaux.c: Updated copyright date.
	* config/sh/sh.c: Updated copyright date.
	* config/sh/sh.md: Updated copyright date.
	* config/sparc/sparc.c: Updated copyright date.
	* config/stormy16/stormy16.c: Updated copyright date.
	* config/v850/v850.c: Updated copyright date.
	* config/vax/vax.c: Updated copyright date.
	* cselib.c: Updated copyright date.
	(expand_loc): Fixed formatting.
	* cselib.h: Updated copyright date.
	* dbgcnt.c: Updated copyright date.
	* dbgcnt.def: Updated copyright date.
	* dbgcnt.h: Updated copyright date.
	* dce.c: Updated copyright date.
	(fast_dce): Fixed formatting.
	* dce.h: Updated copyright date.
	* ddg.c: Updated copyright date.
	* ddg.h: Updated copyright date.
	* df-core.c: Updated copyright date.
	* df.h: Updated copyright date and fixed formatting.
	* doc/cfg.texi: Updated copyright date.
	* doc/rtl.texi: Updated copyright date.
	* dominance.c: Updated copyright date.
	* function.h: Updated copyright date.
	* fwprop.c: Updated copyright date.
	* global.c: Updated copyright date.
	* integrate.c: Updated copyright date.
	* local-alloc.c: Updated copyright date.
	* loop-init.c: Updated copyright date.
	* loop-invariant.c: Updated copyright date.
	* loop-iv.c: Updated copyright date.
	* optabs.h: Updated copyright date.
	* output.h: Updated copyright date.
	* postreload.c: Updated copyright date.
	* postreload-gcse.c: Updated copyright date.
	* recog.h: Updated copyright date.
	* regmove.c: Updated copyright date.
	* reg-notes.def: Updated copyright date.
	* regrename.c: Updated copyright date.
	* reg-stack.c: Updated copyright date.
	* reload.c: Updated copyright date.
	* reorg.c: Updated copyright date.
	* resource.c: Updated copyright date.
	* resource.h: Updated copyright date.
	* rtl-factoring.c: Updated copyright date.
	* sbitmap.c: Updated copyright date.
	* sbitmap.h: Updated copyright date.
	* sched-deps.c: Updated copyright date.
	* sched-ebb.c: Updated copyright date.
	* sched-int.h: Updated copyright date.
	* sched-rgn.c: Updated copyright date.
	* sched-vis.c: Updated copyright date.
	* see.c: Updated copyright date.
	(see_handle_relevant_uses): Fixed formatting.
	* stack-ptr-mod.c: Updated copyright date.
	* struct-equiv.c: Updated copyright date.
	* tracer.c: Updated copyright date.
	* web.c: Updated copyright date.

2007-05-30  Kenneth Zadeck <zadeck@naturalbridge.com>

	* auto-inc-dec.c (mem_insn.mem_pat): Renamed mem_loc.
	(attempt_change): Fixed comments and renamed new_addr_pat to new_addr.
	(try_merge, attempt_change, find_address, find_mem): Renamed
	mem_pat to mem_loc.

2007-05-27  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-core.c (df_hybrid_search_forward, df_hybrid_search_backward
	df_iterative_dataflow): Removed.
	* df.h (df_iterative_dataflow): Removed.
	
2007-05-27  Kenneth Zadeck <zadeck@naturalbridge.com>

	* dse.c (replace_inc_dec, delete_dead_store_insn, scan_insn, 
	dse_record_singleton_alias_set, dse_confluence_0,
	dse_confluence_n, step4, step5_nospill, step5_spill,
	rest_of_handle_dse, pass_rtl_dse1, pass_rtl_dse2): Removed code
	to allow dse to run on trunk in front of flow.c
	(problem): Removed.
	
2007-05-26  Kaz Kojima  <kkojima@gcc.gnu.org>

	* bt-load.c: Include recog.h.
	(move_btr_def): Use validate_replace_rtx instead of replace_rtx.

2007-05-25  Steven Bosscher  <steven@gcc.gnu.org>

	* emit-rtl.c (try_split): Remove unnecessary setting/resetting
	of the USED flags of TRIAL.

2007-05-25  Kenneth Zadeck <zadeck@naturalbridge.com>

	* dse.c (insn_info.stack_read, group_info.frame_related): New
	variable.
	(get_group_info): Initialize frame_related.
	(scan_insn, scan_reads_nospill): Remove frame_related stores from
	consideration for const functions.
	(step1, step2_init, step3_exit_block_scan): Use frame_related field.
	(step3_scan, step5_nospill): Change parameters to scan_reads_nospill.
	
2007-05-25  Ian Lance Taylor  <iant@google.com>

	* reload1.c (mark_home_live_1): New static function, broken out of
	mark_home_live.
	(mark_home_live): Call mark_home_live_1.
	(scan_paradoxical_subregs): Call mark_home_live_1.

2007-05-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
	(umulsi3_highpart): Likewise.

2007-05-24  Eric Christopher  <echristo@gmail.com>

	* config/mips/mips.c (mips_save_reg_p): Use df_regs_ever_live_p.
	(mips_output_mi_thunk): Use SET_REGNO.

2007-05-23  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_expand_prologue): Fix typo.

2007-05-23 Paolo Bonzini <bonzini@gnu.org>

	* emit-rtl.c [!HAVE_blockage]: Provide a gen_blockage routine here.
	* rtl.h (gen_blockage): Add prototype.

	* cse.c (last_bb_reg_used_in, reg_used_in_multiple_bb): Remove.
	(mark_reg_use_bb): Remove.
	(cse_main): Remove the initialization of reg_used_in_multiple_bb
	and last_bb_reg_used_in, and the insn walk that calls mark_reg_use_bb.
	(cse_ebb_live_in, cse_ebb_live_out): New.
	(cse_extended_basic_block): Set them.
	(make_regs_eqv): Use them.

2007-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-scan.c (df_get_regular_block_artificial_uses): Set the
	HARD_FRAME_POINTER not the FRAME_POINTER after reload.  Set both
	the HARD_FRAME_POINTER and the FRAME_POINTER before reload.
	* dse.c (const_or_frame_p): Removed unnecessary test.
	* config/s390/s390.c (s390_emit_prologue): Removed REG_MAYBE_DEAD
	notes.
	* config/spu/spu.c (frame_emit_add_imm, spu_expand_prologue): Ditto.
	* config/i386/i386.c (ix86_expand_prologue): Ditto.
	* config/sh/sh.c (sh_expand_prologue): Ditto.
	* config/sh/sh.md (define_expand): Ditto.
	* config/iq2000/iq2000.c (iq2000_expand_prologue): Ditto.
	* config/mn10300/mn10300.c (expand_prologue): Ditto.
	* config/ia64/ia64.c (spill_restore_mem, ia64_expand_prologue): Ditto.
	* config/m68k/m68k.c (m68k_expand_prologue): Ditto.
	* config/rs6000/rs6000.c (rs6000_maybe_dead): Removed.
	(rs6000_emit_load_toc_table, rs6000_emit_prologue): Removed calls
	to rs6000_maybe_dead.
	* config/bfin/bfin.c (expand_interrupt_handler_prologue,
	bfin_load_pic_reg): Removed REG_MAYBE_DEAD notes.
	* reg-notes.def (MAYBE_DEAD): Removed.
	* dce.c (deletable_insn_p): Removed test of RTX_FRAME_RELATED_P.
	
2007-05-21  Kenneth Zadeck <zadeck@naturalbridge.com>

	* dbgcnt.def: Fixed comment.
	* df-scan.c (df_get_regular_block_artificial_uses): Added frame
	pointer after reload if frame_pointer_needed.
	* df.h (df_simulate_defs, df_simulate_uses): Made public.
	* df-problems.c (df_simulate_defs, df_simulate_uses): Made public.
	* dce.c (deletable_insn_p): Only allow frame-related insns to be
	deleted if there is a REG_MAYBE_DEAD note.
	(dce_process_block): Now uses df_simulate_defs and
	df_simulate_uses.

2007-05-20  Kenneth Zadeck <zadeck@naturalbridge.com>

	* cfg.c (dump_bb_info): Fixed dump formatting problem.
	* dse.c (const_or_frame_p): New function.
	(canon_address): Fixed dump info and now callse const_or_frame_p
	rather than rtx_varies_p.  Also do simplification inside cselib.
	(record_store): Fixed dump info.
	* cselib.c (expand_loc): Fixed dump info.
	(cselib_expand_value_rtx): Fixed dump info and now call
	simplify_rtx on results of expansion.  

2007-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>

	* ifcvt.c (dead_or_predictable): Replaced insn dfa with new df
	routines.
	* recog.c (peephole2_optimize): Replaced
	df_lr_simulate_artificial_refs_at_end and df_lr_simulate_one_insn
	with df_simulate_artificial_refs_at_end and
	df_simulate_one_insn_backwards.
	* rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
	Ditto.
	* df.h (df_lr_simulate_artificial_refs_at_end, 
	df_lr_simulate_one_insn): Removed.
	(df_simulate_find_defs, df_simulate_artificial_refs_at_top,
	df_simulate_one_insn_forwards, df_simulate_artificial_refs_at_end,
	df_simulate_one_insn_backwards): Added.
	* df-problems.c (df_lr_bb_local_compute): Removed unnecessary
	tests.
	(df_lr_simulate_artificial_refs_at_end, df_lr_simulate_one_insn):
	Removed.
	(df_simulate_find_defs, df_simulate_defs, df_simulate_uses,
	df_simulate_fixup_sets, df_simulate_artificial_refs_at_top,
	df_simulate_one_insn_forwards, df_simulate_artificial_refs_at_end,
	df_simulate_one_insn_backwards): Added.

2007-05-16  Seongbae Park <seongbae.park@gmail.com>

	* ifcvt.c (dead_or_predicable): Update test_live as well as test_set.
	(if_convert): New parameter RECOMPUTE_DOMINANCE.
	(rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
	rest_of_handle_if_after_reload): New parameter to if_convert.

2007-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>

	* regstat.c (regstat_init_n_sets_and_refs, regstat_compute_ri,
	regstat_compute_calls_crossed): Added time variable TV_REG_STATS.
	* timevar.def (TV_REG_STATS): Added.
	(TV_DF_RI): Deleted.
	* df-problems.c (df_print_bb_index): Added identifer for eh blocks.
	* dce.c (deletable_insn_p): Added code to not delete 
	RTX_FRAME_RELATED_P insns.
	(dce_process_block): Removed insns_deleted and added code to reset
	live set before confluence function.  
	(rest_of_handle_fast_dce): Added code to turn off df's version of dce if 
	flag_dce is not set and added DF_NO_INSN_RESCAN to flags that are cleared.

2007-05-10  Roman Zippel <zippel@linux-m68k.org>

	* config/m68k/m68k.c: include df.h.
	(m68k_output_mi_thunk): use SET_REGNO.

2007-05-09  Kaz Kojima  <kkojima@gcc.gnu.org>

	* df-core.c (df_get_bb_dirty): Return false if df_live is null.

2007-05-09  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (r0_life_regions): New variable.
	(find_r0_life_regions): New static function.
	(sh_md_init_global): Call find_r0_life_regions when
	reload_completed isn't set.
	(R0_MAX_LIVE_LENGTH): Remove.
	(high__pressure): Return 1 if r0_life_regions is over
	the given threshold.

2007-05-08  Kenneth Zadeck <zadeck@naturalbridge.com>

	* regrename.c (regrename_optimize): Renamed df_ri_add_problem to 
	df_note_add_problem.
	* auto-inc-dec.c (rest_of_handle_auto_inc_dec): Ditto.
	* sched_ebb.c (schedule_ebbs): Renamed df_ri_add_problem to
	df_note_add_problem.  Added call to regstat_compute_calls_crossed
	and regstat_free_calls_crossed and deleted call to
	allocate_reg_life_data.
	* regstat.c (regstat_init_n_sets_and_refs,
	regstat_free_n_sets_and_refs, regstat_bb_compute_ri,
	regstat_compute_ri, regstat_free_ri,
	regstat_bb_compute_calls_crossed, regstat_compute_calls_crossed, 
	regstat_free_calls_crossed): New functions.
	* final.c (rest_of_handle_final): Removed call to free_reg_info.
	* cfg.c (dump_reg_info): Many changes to accomodate new
	implementation of REG_BASIC_BLOCK, REG_N_SETS, REG_N_DEATHS, 
	REG_N_CALLS_CROSSED.
	* toplev.c (finalize): Removed call to free_reg_info.
	* regs.h (REG_BASIC_BLOCK, REG_N_SETS, REG_N_REFS, REG_N_DEATHS, 
	REG_N_CALLS_CROSSED, REG_FREQ, REG_N_THROWING_CALLS_CROSSED,
	REG_LIVE_LENGTH, REG_BASIC_BLOCK): Changed implementation.
	(allocate_reg_life_data, allocate_reg_info, clear_reg_info_regno):
	Removed.
	* mode-switching.c (optimize_mode_switching): Removed call to 
	df_ri_add_problem.
	* modulo-sched.c (sms_schedule): Renamed df_ri_add_problem to
	df_note_add_problem.  Added call to regstat_compute_calls_crossed
	and regstat_free_calls_crossed
	(rest_of_handle_sms): Deleted call to allocate_reg_info.
	* global.c (compute_regsets): Moved all dataflow to local_alloc.
	(rest_of_handle_global_alloc): Call regstat_free_n_sets_and_refs
	and regstat_free_ri.
	* ifcvt.c (dead_or_predicable, if_convert): Removed calls to
	allocate_reg_info.
	* timevar.def (TV_DF_NOTE): New timevar. 
	* regmove.c (copy_src_to_dest, regmove_optimize, fixup_match_1):
	Changed calls to REG_N_SETS that changed the value to
	INC_REG_N_SETS.
	(regmove_optimize): Moved calls that compute df and register info
	to after early out for flag_non_call_exceptions.  Added calls to 
	regstat_init_n_sets_and_refs, regstat_compute_ri,
	regstat_free_n_sets_and_refs and regstat_free_ri.
	* local_alloc (local_alloc, equiv_init_movable_p): Added
	NUM_FIXED_BLOCKS to tests for REG_BASIC_BLOCK.
	(update_equiv_regs): Added code to update bitvectors when certain
	local allocations are done.  Changed REG_N_SETS to
	DF_REG_DEF_COUNT.  Added NUM_FIXED_BLOCKS to tests for
	REG_BASIC_BLOCK.
	(rest_of_handle_local_alloc): Moved computation of UREC from
	global to here.
	* function.c (regno_clobbered_at_setjmp): Added to test to see if
	regno was valid.  Moved function size test higher in call
	heirarchy.
	(setjmp_args_warning): Added tests to early out of check if
	function is small or there are no setjmps.  
	* df.h (DF_RI, df_ri, DF_RI_LIFE, DF_RI_SETJMP, df_ri_add_problem,
	df_ri_get_setjmp_crosses): Deleted.
	(DF_NOTE, df_note, df_note_add_problem): Added.
	* gcse (gcse_main): Removed computation of RI information and
	removed calls to allocate_reg_info.
	* init-regs.c (initialize_uninitialized_regs): Removed call to
	allocate_reg_life_data.
      	* regclass.c (reg_info_data, reg_info_head, reg_pref_buffer,
	allocate_reg_life_data, allocate_reg_info, clear_reg_info_regno):
	Deleted.
	(scan_one_insn): Changed some calls to REG_N_SETS and REG_N_REFS
	to INC_REG_N_SETS and INC_REG_N_REFS.
	(regclass): Allocate register information locally.
	(free_reg_info): Changed the structures freed.	
	(reg_scan): Removed call to allocate_reg_info and changed call to
	REG_N_SETS to DF_REG_DEF_COUNT.
	* combine (try_combine, remove_death, distribute_notes): Removed
	computation of REG_N_DEATHS.  Changed some references to
	REG_N_SETS to INC_REG_N_SETS.
	(rest_of_handle_combine): Replaced call to df_ri_add_problem with
	call to df_note_add_problem, and added call to
	regstat_init_n_sets_and_refs and regstat_free_n_sets_and_refs.
	* bb-reorder (rest_of_handle_partition_blocks): Removed call to
	allocate_reg_life_data.
	* df-problems.c (reg_n_info, df_ri_problem_p, df_ri_problem_data,
	df_ri_alloc, df_ri_start_dump, df_ri_get_setjmp_crosses): Removed.
	(print_note): Renamed df_print_note.
	(df_kill_notes): Added parameters to save notes rather than just
	let them die and remake them.
	(df_set_note): New function.
	(df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
	df_create_unused_note, df_ri_bb_compute, df_ri_compute,
	df_ri_free): Removed ri information computations.
	(df_ri_bb_compute): Renamed to df_note_bb_compute.
	(df_ri_compute): Renamed to df_note_compute.
	(df_ri_free): Renamed to df_note_free.
	(problem_RI): Renamed to problem_NOTE
	(df_ri_add_problem): Renamed to df_note_add_problem.
	* (reg-stack.c): Changed call to df_ri_add_problem to 
	df_note_add_problem.
	* combine-stack-adj.c (rest_of_handle_stack_adjustments): Ditto.
	* (Makefile.in): Added regstat.o.
	* sched-rgn.c (schedule_insns): Changed call to df_ri_add_problem to 
	df_note_add_problem.  Added calls to regstat_compute_calls_crossed
	and regstat_free_calls_crossed.
	* basic_block.h (REG_BLOCK_UNKNOWN, REG_BLOCK_GLOBAL,
	REG_BASIC_BLOCK): Moved to regs.h.
	* config/sparc/sparc.c (sparc_check_64): Changed REG_N_SETS to
	DF_REG_DEF_COUNT.
	* config/sh/sh.c (flow_dependent_p_1): Ditto.
	(sh_md_init): Removed useless attempt to measure pressure on R0.
	* config/m68k/m68k.c (m68k_output_mi_thunk): Removed call to
	allocate_reg_info.
	* reload1.c (delete_output_reload): Added NUM_FIXED_BLOCKS to
	tests for REG_BASIC_BLOCK.
	
2007-05-07  Seongbae Park  <seongbae.park@gmail.com>

	* dse.c (add_wild_read): Do not remove read_info_t
	that has non-zero alias_set.
	(canon_address): Remove unused parameter for_read and bb_info.
	Remove the unused code path, and update the dump message.
	(record_store): Accomodate canon_address signature change.
	(check_mem_read_rtx): Don't bail out early for wild_read.
	(check_mem_read_rtx): Accomodate canon_address signature change.
	(scan_insn): Move call insn handling after note_uses.

2007-05-05  Ramana Radhakrishnan <ramana.r@gmail.com>
	    Serge Belyshev  <belyshev@depni.sinp.msu.ru>
	    Kenneth Zadeck <zadeck@naturalbridge.com>

	* combine.c (recog_for_combine): Keep unused notes from being 
	generated for scratch registers.
	* config/alpha/alpha.c: Add include for df.h.
	

2007-05-01  Kenneth Zadeck <zadeck@naturalbridge.com>

	Do not delete regnotes when recreating them.
	* df-problems.c (df_kill_notes): Store notes into new parameters
	rather than killing them.
	(df_set_note): New function.
	(df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
	df_create_unused_note, df_ri_bb_compute): Call df_set_note to
	create new notes.
	
2007-04-30  Seongbae Park <seongbae.park@gmail.com>

	* df-scan.c (df_reorganize_refs_by_reg_by_insn):
	Scan artificial defs and uses as well.
	* passes.c (init_optimization_passes):
	Move pass_stack_ptr_mod from after pass_inc_dec.

2007-04-29  Steven Bosscher <steven@gcc.gnu.org>

	Small cleanups without any semantics changes:
	* df-scan.c (df_ref_record): Fix small style typo.
	* df-core.c (df_hybrid_search_forward): Cleanup redundant loads.
	(df_hybrid_search_backward): Likewise.
	(df_worklist_dataflow): Check DIR against DF_NONE instead of 0.

	Small speedups:
	* haifa-sched.c (move_block_after_check): Mark df solutions dirty
	here, instead of...
	(move_succs): ...here.
	* df-core.c (df_analyze): Only verify POSTORDER_INVERTED if
	checking is enabled.

	Fix Java bootstrap on ia64
	* emit-rtl.c (try_split): Unshare RTL sequences produced by splitters.

2007-04-27  Kenneth Zadeck <zadeck@naturalbridge.com>

	* timevar.def (TV_DF_UR): Removed.
	* df-scan.c (df_scan_alloc): Change pool size.  
	* df-core.c (df_finish_pass, rest_of_handle_df_initialize,
	df_get_bb_dirty, df_verify): Merged df_ur and df_live problems
	into df_live.
	* global.c (compute_regsets, rest_of_handle_global_alloc): Ditto.
	* df.h (DF_UR, DF_UR_BB_INFO, DF_UR_IN, DF_UR_OUT, df_ur,
	df_ur_get_bb_info): Removed.
	(df_ur_bb_info): Merged df_ur and df_live problems
	into df_live.
	* init-regs.c (initialize_uninitialized_regs): Changed DF_UR_IN to
	DF_LIVE_IN.
	* df_problems.c (df_ur_problem_data): Renamed to
	df_live_problem_data.
	(df_ur_set_bb_info): Renamed to df_live_set_bb_info.
	(df_ur_free_bb_info): Renamed to df_live_free_bb_info.
	(df_ur_alloc): Renamed to df_live_alloc.
	(df_ur_reset): Renamed to df_live_reset.
	(df_ur_bb_local_compute): Renamed to df_live_bb_local_compute.
	(df_ur_local_compute): Renamed to df_live_local_compute.
	(df_ur_init): Renamed to df_live_init.
	(df_ur_confluence_n): Renamed to df_live_confluence_n.
	(df_ur_transfer_function): Renamed to df_live_transfer_function.
	(df_ur_local_finalize): Removed.
	(df_ur_free): Renamed to df_live_free.
	(df_ur_top_dump): Renamed to df_live_top_dump.
	(df_ur_bottom_dump): Renamed to df_live_bottom_dump.
	(df_ur_verify_solution_start): Renamed to
	df_live_verify_solution_start.
	(df_ur_verify_solution_end): Renamed to
	df_live_verify_solution_end.
	(problem_UR): Renamed to problem_LIVE.
	(df_ur_add_problem): Renamed to df_live_add_problem.
	(df_ur_verify_transfer_functions): Renamed to
	df_live_verify_transfer_functions.
	(df_live_set_bb_info, df_live_free_bb_info, df_live_alloc,
	df_live_free, df_live_top_dump, df_live_bottom_dump, 
	df_live_add_problem): Deleted.
	(df_chain_fully_remove_problem): Changed pool alloc block size.
	* dce.c (dce_marked_bitmap_obstack): Removed.
	(marked_insn_p, mark_insn, init_dce, end_ud_dce, fini_dce,
	fast_dce): Changed marked to be sbitmap rather than bitmap.
	* alloc_pool.c (create_alloc_pool, pool_alloc, pool_free): Split
	free_list into virgin_free_list and returned_free_list.
	* alloc_pool.h (free_list): Split into virgin_free_list and
	returned_free_list.
	(virgin_elts_remaining): New variable.
	
2007-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-core.c (df_remove_problem): Allow df_ur and df_live 
	problems to be removed.
	* global.c (compute_regsets): Remove df_ur and df_live when
	adding df_urec.
	(rest_of_handle_global_alloc): Add back df_ur and df_live when
	removing df_urec.
	* timevar.def (TV_DF_UD): Renamed to TV_DF_UR.
	* function.c (thread_prologue_and_epilogue_insns): Removed
	call to df_analyze.
	* df-problems.c (problem_UR): Added remove function and renamed TV.
	(problem_LIVE): Added remove function.


2007-04-26  Seongbae Park <seongbae.park@gmail.com>

	* tree-pass.h: Declaration for new pass.
	* passes.c (init_optimization_passes): New pass.
	* dce.c (prescan_insns_for_dce): Pass new param "fast" through.
	(mark_artificial_uses, mark_reg_dependencies): New functions 
	- resurrected from the old svn revision.
	(end_ud_dce, rest_of_handle_ud_dce, gate_ud_dce): New function.
	(pass_ud_rtl_dce): New pass.
	(fast_dce): New parameter for prescan_insns_for_dce.

2007-04-24  Seongbae Park <seongbae.park@gmail.com>

	* final.c (leaf_renumber_regs_insn): Use SET_REGNO().
	* df-scan.c (df_insn_refs_collect): Handle non-local gotos.
	* sparc.c: New include of df.h.
	* dce.c (prescan_insns_for_dce): Call mark_libcall for all insns 
	with with REG_LIBCALL_ID.

2007-04-23  Steven Bosscher  <steven@gcc.gnu.org>
	    Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-scan.c (problem_SCAN): Add time variable.
	(df_refs_add_to_chains): Delete the refs vectors before 
	allocating new ones.
	* df-core.c (df_analyze_problem): Push and pop problem specific 
	time vectors.
	* timevar.def (TV_DF_SCAN, TV_DF_RU, TV_DF_RD, TV_DF_LR, TV_DF_UD,
	TV_DF_LIVE, TV_DF_UREC, TV_DF_CHAIN, TV_DF_RI): New problem
	specific time vars.
	* dse.c (positions_needed): Changed to be bitmask from sbitmap.
	(store_info.rhs): New field.
	(free_store_info, step6): Changed positions_needed to be bitmask
	from sbitmap.
	(read_info.begin, read_info.end): Changed to be int.
	(deferred_change): New struct.
	(deferred_change_pool): New variable.
	(step0): Initialize deferred_change_pool.
	(canon_address): Added parameter to cselib_expand_value_rtx and
	improved debugging.
	(clear_rhs_from_active_local_stores, replace_read): New function.
	(record_store, check_mem_read_rtx): Added code to invalidate
	store_info.rhs.  Changed positions_needed to be bitmask from
	sbitmap.
	(step1): Added code to process deferred_change_list.
	(rest_of_handle_dse): Added deferred rescanning.
	* df.h (df_problem.tv_id): New timevar for each problem.
	* cselib.c (expand_loc, cselib_expand_value_rtx): Added code to
	limit the amount of recursion allowed when expanding addresses.
	* cselib.h (cselib_expand_value_rtx): Added max recursion
	parameter.
	* rtl.h (rhs_regno): Renamed tree to x.
	* df-problems.c (df_problem problem_RU, df_problem problem_RD,
	problem_LR, problem_UR, problem_LIVE, problem_UREC, problem_CHAIN,
	problem_RI) Added timevar.
	(df_live_local_finalize): Only update solution if dirty.
	* Makefile.in (dse.o): Added dependencies.
	
2007-04-23  Ian Lance Taylor  <iant@google.com>

	* lower-subreg.c (resolve_reg_notes): Discard REG_DEAD and
	REG_UNUSED notes for split registers.
	(decompose_multiword_subregs): Remove life_blocks.

2007-04-22  Steven Bosscher  <steven@gcc.gnu.org>

	* df.h (df_bitmap_obstack): Declare.

	* df-scan.c (df_scan_problem_data): Add new bitmap obstacks for
	regsets and insns/notes to be rescanned.
	(df_scan_free_internal): Free the new bitmap obstacks.
	(df_scan_alloc): Initialize the new bitmap obstacks, and use them.
	(df_scan_free): Set df->blocks_to_analyze to NULL after freeing it.
	(df_insn_rescan_all): Put temporary bitmaps on df_bitmap_obstack.
	(df_process_deferred_rescans): Likewise.
	(df_get_call_refs): Likewise.
	(df_update_entry_block_defs): Likewise.  Put entry_block_defs on
	the regsets bitmap obstack.
	(df_record_exit_block_uses): Changed like df_record_exit_block_uses.
	(df_entry_block_bitmap_verify): Put temporary bitmaps on df_bitmap_obstack.
	(df_exit_block_bitmap_verify): Likewise.
	(df_scan_verify): Likewise.

	* df-core.c (df_bitmap_obstack): Declare.
	(rest_of_handle_df_initialize): Initialize it.
	(rest_of_handle_df_finish): Release it.
	(df_set_blocks, df_worklist_dataflow, df_analyze,
	df_compact_blocks): Use it.

	* df-problems.c (df_set_seen): Use df_bitmap_obstack for seen_in_block
	and seen_in_insn.
	(df_ri_compute): Likewise for bitmaps allocated for the RI problem.

	For the RU and RD problems, introduce per-problem bitmap obstacks:
	(df_r[ud]_problem_data): Add a per-problem bitmap
	obstack.
	(df_r[ud]_alloc): Initialize and use them per df problem.
	(df_r[ud]_confluence_n, df_r[ud]_transfer_function): Use them.
	(df_r[ud]_free): Release them.

	* dce.c (dce_marked_bitmap_obstack, dce_blocks_bitmap_obstack,
	dce_tmp_bitmap_obstack): New bitmap obstacks.
	(init_dce): Initialize them.  Use dce_marked_bitmap_obstack for
	the bitmap of marked insns.
	(end_fast_dce): Renamed to...
	(fini_dce): ...this.  Release the new bitmap obstacks.
	(dce_process_block): Allocate local_live on dce_tmp_bitmap_obstack.
	(fast_dce): Allocate basic block bitmaps on dce_blocks_bitmap_obstack.
	(rest_of_handle_fast_dce): Call fini_dce, and clear df_in_progress.
	(run_fast_df_dce): Likewise.

2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/spu/spu.c (fsmbi_const_p): Replace flow2_completed with
	epilogue_completed.

2007-04-16  Steven Bosscher  <steven@gcc.gnu.org>

	* fwprop.c (forward_propagate_into): If multiple sets
	return.

2007-04-16  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-scan.c (df_ref_create, df_reg_chain_unlink,
	df_install_refs): Use df->analyze_subset.
	(df_reorganize_refs_by_reg_by_reg, df_reorganize_refs_by_reg_by_insn):
	New functions.
	(df_reorganize_refs_by_reg): Split into
	df_reorganize_refs_by_reg_by_reg,
	df_reorganize_refs_by_reg_by_insn.
	(df_add_refs_to_table): Do not add hardware_regs if not asked for.
	(df_reorganize_refs_by_insn): Move call to count_refs.
	(df_maybe_reorganize_def_refs, df_maybe_reorganize_use_refs):
	Remove code to modify df->total_size.
    	* df-core.c (df_set_blocks): Set df->analyze_subset.
	(df_finish_pass): Clear df->analyze->subset.
	(df_analyze): Use df->analyze_subset.
	(df_dump_start): Remove total_size from dump.
	* df.h (DF_RI_NO_UPDATE, DF_DEFS_TOTAL_SIZE, DF_USES_TOTAL_SIZE):
	Removed.
	(df.analyze_subset): New field.  * df-problems.c (df_ri_alloc,
	df_ri_compute): Removed DF_RI_NO_UPDATE.


2007-04-12  Steven Bosscher  <steven@gcc.gnu.org>
	    Kenneth Zadeck <zadeck@naturalbridge.com>

	* cse.c (cse_insn): Do not emit barriers.
	* dse.c (store_info.address): Renamed to mem_addr.
	(canon_address): Removed address_out parameter.
	(record_store): Removed address var and compute mem and
	mem_address differently.
	(check_mem_read_rtx): Removed address and changed parameters to
	canon_true_dependence.
	* cselib.c (cselib_expand_value_rtx): Do not translate
	FRAME_POINTER_REGNUM and HARD_FRAME_POINTER_REGNUM.

2007-04-11  Steven Bosscher  <steven@gcc.gnu.org>

	* gcse.c (hash_scan_set): Make sure that INSN has only one
	SET in its PATTERN before making SRC anticipatable.
	* cfglayout.c (fixup_reorder_chain): Fix merge error, don't
	call compact_blocks here.

2007-04-09  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-core.c (add_problem): Keep the problem sorted in
	problems_in_order.
	* global.c (compute_regsets): Recompute register information.

2007-04-08  Kenneth Zadeck <zadeck@naturalbridge.com>

	* optabs.h (maybe_encapsulate_block): Made public.
	* optabs.c (maybe_encapsulate_block): Ditto.
	(emit_no_conflict_block, emit_libcall_block): Remove
	REG_LIBCALL_ID when deleteing REG_RETVAL and REG_LIBCALL
	notes.
	* reload1.c (reload): Ditto.
	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
	Use maybe_encapsulate_block to add libcall notes.

2007-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>

	* dse.c (clear_alias_set_lookup): New function.
	(store_info.is_set): New field.
	(replace_inc_dec, delete_dead_store_insn): Added more ifdefs so
	dse could be tested on mainline.
	(canon_address): Moved lookup of alias_set info to subroutine and
	added better logging.  Added code to detect if address contains an
	AND and if so, escape.
	(record_store, check_mem_read_rtx): White space cleanup. Added
	code to skip store_info's for clobbers when comparing with
	previous insn stores.  We also mark store_info's as to whether
	they are set or clobber based.
	(scan_insn): Only add insn to active_stores_list if it has exactly
	one store.
	(step1): Add code to remove a store to the frame that goes dead at
	the end of a function if there is a non overlaping block mode read
	from the stack.  The global algorithm cannot do this because it
	takes a more conservative view of block mode reads.
	(dse_confluence_0, dse_confluence_n, dse_transfer_function,
	step5_spill, pass_rtl_dse2): Add ifdefs so this can be tested on
	mainline.
	(step5_nospill): Ignore clobbers and only look at the set to
	decide if an insn can be deleted.
	* init_regs.c: Whitespace.
	* cselib.c (cselib_expand_value_rtx): Fixed comment and changed to
	use proper macro.

2007-04-06  Paolo Bonzini  <bonzini@gnu.org>

	* bitmap.c (bitmap_set_range): New.
	(bitmap_clear_range): Small optimization.
	* bitmap.h (bitmap_set_range): New.
	* df-problems.c (df_ref_bitmap): Remove.
	(struct df_rd_problem_data, df_ru_problem_data): Remove related
	data structures.
	(df_ru_alloc, df_rd_alloc): Don't allocate them.
	(df_ru_free, df_rd_free): Don't free them.
	(df_ru_bb_local_compute_process_def, df_ru_local_compute,
	df_rd_bb_local_compute_process_def, df_rd_local_compute):
	Use bitmap_set_range and bitmap_clear_range instead of df_ref_bitmap.

2007-04-05  Kenneth Zadeck <zadeck@naturalbridge.com>

	* sbitmap.c (sbitmap_empty_p): New function.
	* sbitmap.h (sbitmap_empty_p): New function.
	* dbgcnt.def (dse): New counter and sorted the others.
	* df-core.c (df_worklist_dataflow): Made init_fun optional.
	* cse.c (cse_main): Do dce at start of pass.
	* timevar.def (TV_DSE3): Deleted.
	* dse.c: New pass.
	* dse.h: New file for dse pass.
	* gcse.c (gcse_main): Set up the register info.
	* alias.c (clear_reg_alias_info): Removed dead function.
	* rtl.h (clear_reg_alias_info): Removed dead function.
	* cselib.c (cselib_discard_hook): Added cselib val parameter.
	(discard_useless_values): Added hook call here.
	(remove_useless_values): Removed hook call from here.
	(expand_loc, cselib_expand_value_rtx): New function.
	(cselib_finish): Clear hook.
	* cselib.h (cselib_discard_hook): Added cselib val parameter.
	(expand_loc, cselib_expand_value_rtx): New function.
	* common.opt (flag_flow_dce, new-dce): Removed flag.
	(flag_dce, flag_dse): New flags.
	* Makefile.in (dse.o): New pass.
	* passes.c (init_iptimization_passes): Removed dse after combine.
	Renamed dse3 to dse2.
	* dce.c (delete_unmarked_insns): Renamed new_dce to dce.
	(end_dce, mark_artificial_uses, mark_reg_dependencies,
	invariant_store_base_eq, invariant_store_base_hash, value_store_base_eq,
	value_store_base_hash, store_base_del, rs_init, rs_confluence,
	rs_transfer_function, init_invariant_store_group,
	init_value_store_group, empty_store_group, end_store_group,
	init_rs_dflow, end_rs_dflow, init_unmarked_stores,
	end_unmarked_stores, init_dse, end_dse, dump_stores,
	split_address, add_store_offset, record_store, record_stores,
	store_offset_compare, store_base_local,
	invariant_store_base_local, value_store_base_local,
	value_store_base_useless, remove_useless_values,
	store_base_global, finish_max_in_luid,
	calculate_reaching_stores, frame_stores_escape_p,
	store_base_prune_needed, mark_escaping_stores,
	insn_might_read_mem_rtx, insn_might_read_mem_use,
	insn_might_read_mem_p, mark_dependent_stores,
	prescan_insns_for_dse, rest_of_handle_dse, gate_dse): Deleted functions
	as part of new dse pass in separate file.
	* reload1.c (alter_reg): Added calls to register spill slots
	with dse.

2007-04-05  Peter Bergner  <bergner@vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow
	PRE_MODIFY for TDmode.

2007-04-04  Kenneth Zadeck <zadeck@naturalbridge.com>

	* cfg.c (dump_reg_info): Added check to lower max if new regs
	were added.
	* init-regs.c (initialize_uninitialized_regs): Changed code to
	insert move right before uninitized insn.

2007-04-03  Paolo Bonzini  <bonzini@gnu.org>

	* df-problems.c (df_chain_create_bb): Plug leak.

	* df-problems.c (df_chain_alloc): Fix typo.

2007-04-03  Paolo Bonzini  <bonzini@gnu.org>

	* dce.c (dce_process_block): Copy into DF_LR_IN.
	* df-problems.c (df_lr_free_bb_info): Support bb_info->in
	being the same bitmap as bb_info->top.
	(df_lr_alloc): The adef and ause fields must be either
	both NULL or both non-NULL.  Initialize bb_info->top
	to bb_info->in.
	(df_lr_bb_local_compute): Allocate adef, ause, top together.
	(df_lr_transfer_function): Simplify according to above
	assumptions.
	(df_lr_free): Zero out bb_info->top instead of freeing it
	if it is the same as bb_info->in.

2007-04-01  Kenneth Zadeck <zadeck@naturalbridge.com>

	* config/ia64/ia64.c (emit_predicate_relation_info): Changed
	DF_LIVE_IN to df_get_live_in.

2007-03-29  Paolo Bonzini  <bonzini@gnu.org>

	* bitmap.c (bitmap_elt_copy, bitmap_elt_ior): New.
	(bitmap_ior, bitmap_ior_into): Use them.
	(bitmap_and_compl): Use them, return whether DST changed.
	(bitmap_ior_and_compl): Rewrite.
	* bitmap.h (bitmap_and_compl): Return a bool.

	* Makefile.in (alias.o): Fix dependencies.
	* alias.c (find_base_value, init_alias_analysis): Use
	DF_REG_DEF_COUNT.  Include df.h.
	* cfg.c (dump_reg_info): Don't fail if reg_info not initialized.
	* cse.c (cse_main): Assume dataflow initialized.  Call reg_scan.
	* gcse.c (gcse_main): Call df_analyze, remove call to reg_scan.
	* local-alloc.c (rest_of_handle_local_alloc): Call allocate_reg_info
	earlier.
	* passes.c (init_optimization_passes): Initialize dataflow before CSE.

        * global.c (n_reg_sets): Remove.
        (reg_sets): Change to a VEC.
        (mark_reg_store): Push onto reg_sets.
        (global_conflicts): Assert reg_sets is empty, pop values out of it.
        Don't allocate it nor free it here.
        (global_alloc): Allocate reg_sets if necessary.

	* see.c (rest_of_handle_see): Don't call reg_scan.
	* tracer.c (rest_of_handle_tracer): Likewise.
	* cfgcleanup.c (rest_of_handle_jump2): Likewise.
	* bb-reorder.c (fix_edges_for_rarely_executed_code): Likewise.
	* loop-init.c (rtl_loop_done): Likewise.
	* ifcvt.c (rest_of_handle_if_conversion): Likewise.
	* mode-switching.c (optimize_mode_switching): Remove useless
	allocate_reg_info.
	* lower-subreg.c (decompose_register): Don't call clear_reg_info_regno.
	(decompose_multiword_subregs): Don't call reg_scan_update.
	* web.c (rest_of_handle_web): Delete.
	(pass_web): Use web_main as pass routine.

	* regclass.c (max_parallel, max_set_parallel): Remove.
        (reg_scan): Don't set them.
	(reg_scan_update): Delete.
	(reg_scan_mark_refs): Remove last parameter.

        * rtl.h (max_parallel): Remove.

2007-03-29  Paolo Bonzini <bonzini@gnu.org>

	* df-core.c (pass_df_finish): Restore.
	(pass_df_finish_opt, pass_df_finish_no_opt): Remove.
	* tree-pass.h (pass_df_finish): Restore.
	(pass_df_finish_opt, pass_df_finish_no_opt): Remove.
	* passes.c (init_optimizations_passes): Remove pass_df_finish_no_opt.
	Rename pass_df_finish_opt to pass_df_finish.
	* reg-stack.c: Mostly evert previous commit.

2007-03-28  Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree-pass.h (pass_df_initialize, pass_df_finish): Deleted.
	(pass_df_initialize_opt, pass_df_initialize_no_opt,
	pass_stack_regs_run, pass_df_finish_opt, pass_df_finish_no_opt):
	Added.
	* df-core.c (df_finish_pass): Made ur and live problems condition
	on optimization.
	(pass_df_initialize): Renamed to pass_df_initialize_opt.
	(pass_df_initialize_no_opt): New pass.
	(gate_opt, gate_no_opt): New functions.
	(pass_df_finish): Renamed to pass_df_finish_opt.
	(pass_df_finish_no_opt): New pass.
	* mode-switching.c (optimize_mode_switching): Changed references
	of DF_LIVE_IN to df_get_live_in.
	* global.c (compute_regsets): Only add urec problem when
	optimizing.
	* function.c (regno_clobbered_at_setjmp): Changed references
	of DF_LIVE_OUT to df_get_live_out.
	* regclass.c (regclass_init): Only call df_compute_regs_ever_live
	if optimizing.
	* stack-ptr-mod.c (notice_stack_pointer_modification): Only call
	df_update_exit_block_uses if optimizing.
	* df-problems.c (df_get_live_in, df_get_live_out): Return df_live
	sets if they are there.
	* reg-stack.c (rest_of_handle_stack_regs_run):
	Added new pass that just runs subpasses.
	* passes.c (init_optimization_passes): Added passes to turn on df
	at only some parts of the compilation for -O0.  Moved
	pass_split_before_regstack and pass_stack_regs into a subpass of
	the stack regs pass.

2007-03-28  Paolo Bonzini  <bonzini@gnu.org>

        * df.h (df_ru_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
	df_ur_get_bb_info, df_live_get_bb_info, df_urec_get_bb_info):
	New inlines.
	* df-scan.c (df_scan_get_bb_info, df_get_artificial_uses,
	df_get_artificial_defs): Delete.
	* df-problems.c (df_ru_get_bb_info, df_rd_get_bb_info,
	df_lr_get_bb_info, df_ur_get_bb_info, df_live_get_bb_info,
	df_urec_get_bb_info): Delete.

2007-03-20  Seongbae Park <seongbae.park@gmail.com>

	* combine.c (setup_incoming_promotions): Fix a bad merge
	- use the argument FIRST instead of recomputing it.

2007-03-16  Paolo Bonzini  <bonzini@gnu.org>

	* tracer.c (tracer): Work around pr19340.c failure by cleaning up
	CFG outside cfglayout mode.  Proper fix will be brought in by
	next mainline merge.

2007-03-16  Paolo Bonzini  <bonzini@gnu.org>

        PR rtl-optimization/31025
	* df.h (df_get_live_out): New prototype.
	* df-problems.c (df_get_live_out): New.
	(df_ri_bb_compute): Use it.

2007-03-13  Seongbae Park <seongbae.park@gmail.com>

	* tree-pass.h (pass_subregs_of_mode_finish): New pass declaration.
	* regclass.c (record_subregs_of_mode): Made static, and
	moved before init_subregs_of_mode to compile.
	(cannot_change_mode_set_regs, invalid_mode_change_p): Added assertion.
	(finish_subregs_of_mode): New function.
	(pass_subregs_of_mode_finish): New pass.
	* rtl.h (record_subregs_of_mode): Removed.
	* combine.c (gen_lowpart_for_combine): Removed calls to
	record_subregs_of_mode.
	* passes.c (init_optimization_passes): Moved pass_subregs_of_mode_init
	just before local_alloc. New pass pass_subregs_of_mode_finish
	after global_alloc.

2007-03-09  Richard Earnshaw  <rearnsha@arm.com>

	* arm.c: Include df.h.

2007-03-06  Steven Bosscher  <steven@gcc.gnu.org>

	* fwprop.c (try_fwprop_subst): Remove redundant df_notes_rescan.
	* see.c (rest_of_handle_see): Run a fast dce.  Don't run cleanup_cfg.
	* tracer.c (tracer): Clean up the cfg when still in cfglayout mode.
	* postreload-gcse.c (rest_of_handle_gcse2): Don't run
	delete_trivially_dead_insns, this pass cleans up after itself already.
	* df-scan.c (df_insn_rescan): Fix typo.
	* cse.c (rest_of_handle_cse): Don't use CLEANUP_EXPENSIVE.
	(rest_of_handle_cse2): Likewise.  Don't call delete_dead_jumptables.
	* web.c (rest_of_handle_web): Don't run delete_trivially_dead_insns.
	Also don't clean up the CFG, this pass does not transform the CFG.
	* loop-init.c (rtl_loop_done): Don't run delete_trivially_dead_insns.
	Don't use CLEANUP_EXPENSIVE.
	* ifcvt.c (rest_of_handle_if_conversion): Don't use CLEANUP_EXPENSIVE.
	* gcse.c (rest_of_handle_jump_bypass): Only remove unreachable basic
	blocks before the pass.  No need for a reg_scan.  Rebuild jump labels
	after delete_trivially_dead_insns.  Don't use CLEANUP_EXPENSIVE.
	(rest_of_handle_gcse): Rebuild jump labels after
	delete_trivially_dead_insns.  Don't call delete_dead_jumptables.
	Don't use CLEANUP_EXPENSIVE.
	* cfgcleanup.c (cleanup_cfg): Move delete_dead_jumptables call out of
	the loop.
	* combine.c (rest_of_handle_combine): Account cleanup_cfg to TV_JUMP.
	Don't use CLEANUP_EXPENSIVE.  Don't run delete_trivially_dead_insns.
	* bb-reorder.c (rest_of_handle_reorder_blocks): Don't use
	CLEANUP_EXPENSIVE.  Resurrect CLEANUP_CROSSJUMP here.

2007-03-06  Paolo Bonzini  <bonzini@gnu.org>

        * cse.c (validate_canon_reg): Don't do anything if *XLOC is NULL.
        Assert it is only called with insn != 0 and it never resets
        something non-NULL to NULL.  Always use validate_change.
        (cse_insn): Always call canon_reg with an INSN except when it
        is used on a REG.  When processing notes, first canonicalize,
        then fold, and call df_notes_rescan.
        (cse_process_notes): Rename to cse_process_notes_1, add CHANGED
        parameter.
        (cse_process_notes_1): Wrapper around cse_process_notes to set
        the CHANGED parameter.
        (cse_extended_basic_block): Adjust call to cse_process_notes
        and use result to call df_notes_rescan.
        (cse_main): Set deferred insn rescanning flag, don't rescan on exit.
        (pass_cse2): Add TODO_df_finish.
        * gcse.c (pass_gcse): Likewise.

2007-03-04  Roman Zippel <zippel@linux-m68k.org>

	* regclass.c (scan_one_insn): Call df_insn_rescan after breaking
	out constant parameter.

2007-03-04  Roman Zippel <zippel@linux-m68k.org>

	* df-scan.c (df_grow_ref_info): Also add bitmap_addend to size.

2007-02-25  Ulrich Weigand  <uweigand@de.ibm.com>

	Backport from mainline:
	* reload.c (find_reloads_address_1): Handle PLUS expressions resulting
	from register elimination as PRE_MODIFY / POST_MODIFY increments.
	Do not attempt to handle MEM inside auto-inc expressions.
	* reload1.c (eliminate_regs_1): Do not attempt to handle elimination
	of a register modified by an auto-inc expression.  However, do handle
	elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
	(elimination_effects): Prohibit elimination of a register modified
	by an auto-inc expression.  Disable register elimination rules whose
	target register is modified by an auto-inc expression with variable
	increment.

2007-02-25  Ulrich Weigand  <uweigand@de.ibm.com>

	Revert:
	2006-07-01  Daniel Berlin  <dberlin@dberlin.org>
		    David Edelsohn  <edelsohn@gnu.org>
		    Kenneth Zadeck <zadeck@naturalbridge.com>
	reload1.c (eliminate_regs_1, elimination_effects): Added cases for
	PRE/POST_MODIFY.

2007-02-22  Seongbae Park <seongbae.park@gmail.com>

	* global.c (reg_becomes_live): Mark registers not live
	after CLOBBER.

2007-02-22  Paolo Bonzini <bonzini@gnu.org>

	* combine.c (set_nonzero_bits_and_sign_copies, reg_nonzero_bits_for_combine,
	reg_num_sign_bit_copies_for_combine, get_last_value): Look at DF_LR to
	check if a register is uninitialized.

2007-02-21  Paolo Bonzini <bonzini@gnu.org>

        * combine.c (uid_cuid, max_uid_cuid): Remove.
        (INSN_CUID): Replace throughout with DF_INSN_LUID.
        (last_call_cuid): Rename to last_call_luid.
        (subst_low_cuid): Rename to subst_low_luid.
        (last_insn_cost): Rename to max_uid_known.
        (uid_log_links): New.
        (INSN_COST, LOG_LINKS): New.
        (combine_validate_cost): Use INSN_COST instead of accessing
        uid_insn_cost.
        (create_log_links, clear_log_links): Move before combine_instructions.
        (combine_instructions): Don't compute cuids.  Allocate uid_log_links.
        Call create_log_links and clear_log_links here.  Only initialize
        data structures for insns within a basic block.  Use INSN_COST
        instead of accessing uid_insn_cost.  Reset last_call_luid and
        mem_last_set once for every basic block.  Update label_tick on every
	basic block, reset label_tick_ebb_start on every label.
        (can_combine_p, try_combine, reg_nonzero_bits_for_combine,
        reg_num_sign_bit_copies_for_combine, record_value_for_reg,
        record_dead_and_set_regs_1, record_dead_and_set_regs,
        get_last_value_validate, get_last_value, use_crosses_set_p,
        move_deaths, distribute_notes, distribute_links): Rename stuff
        as indicated above.  In tests for LUIDs, check that we refer to
	the same label_tick too.  In tests for label ticks, check that
	they are > label_tick_ebb_start.
        (rest_of_handle_combine): Don't create/clear loglinks here.

        * gengtype.c (adjust_field_rtx_def): Adjust index of JUMP_LABEL.
        * caller-save.c (init_caller_save): Adjust creation of INSNs.
        * rtl.def (CODE_LABEL): Adjust comment.
        (INSN, JUMP_INSN, CALL_INSN, BARRIER): Remove penultimate field.
        * emit-rtl.c (unshare_all_rtl_again, verify_rtl_sharing,
        unshare_all_rtl_in_chain, make_insn_raw, make_jump_insn_raw,
        make_call_insn_raw): Remove references to LOG_LINKS.
        * rtl.h (LOG_LINKS): Remove.
        (REG_NOTES, CALL_INSN_FUNCTION_USAGE, JUMP_LABEL): Shift index
        down by one.

        * regs.h (struct reg_info_def): Remove first_uid and last_uid.
        (REGNO_FIRST_UID, REGNO_LAST_UID): Remove.
        * cse.c (cse_basic_block_start, cse_basic_block_end, uid_cuid,
        max_uid, INSN_CUID): Remove.
        (struct cse_basic_block_data): Remove low_cuid and high_cuid.
        (reg_used_in_multiple_bb, reg_used_in_bb): New.
        (make_regs_eqv): Test reg_used_in_multiple_bb instead of cuids.
        (cse_prescan_path): Remove low_cuid and high_cuid.
        (mark_reg_use_bb): New.
        (cse_main): Replace computation of cuids with initialization of
        reg_used_in_multiple_bb.  Remove references to deleted variables.
        * regmove.c (copy_src_to_dest): Don't update REGNO_FIRST_UID and
        REGNO_LAST_UID.
        * regclass.c (reg_scan_mark_refs): Remove penultimate argument.
        Don't track REGNO_FIRST_UID and REGNO_LAST_UID.
        (reg_scan, reg_scan_update): Remove penultimate argument to
        reg_scan_mark_refs.

2007-02-20  Seongbae Park <seongbae.park@gmail.com>

	* sched-ebb.c (schedule_ebbs): Clear DF_LR_RUN_DCE flag
	after df_analyze.

2007-02-20  Kenneth Zadeck <zadeck@naturalbridge.com>

	* fwprop.c (forward_propagate_into): Removed call to
	df_recompute_luids.
	* see.c (see_free_data_structures): Ditto.
	* loop-iv.c (iv_analysis_loop_init): Ditto.
	* dce.c (prescan_insns_for_dse): Ditto.
	* auto-inc-dec.c (merge_in_block): Moved call to
	df_recompute_luids so that it only happens on subsequent passes of
	block.
	* df-scan.c (df_grow_insn_info): Made public.
	* df.h (df_grow_insn_info): Made public.
	* df-core.c: Fixed comments.
	* df-problems.c (df_ur_bb_local_compute): Reversed order of
	processing insns.  Removed usage of seen_in_block and
	seen_in_insn.  Update luid.
        (df_ur_local_compute, df_ur_verify_transfer_functions): Added call
	to df_grow_insn_info and deleted calls to df_set_seen, df_unset_seen.

2007-02-16  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (INSN_CUID): Always look up uid_cuid.
	(insn_cuid): Delete.
	* sched-deps.c (sched_analyze): Don't free LOG_LINKS here.
	* sched-int.h (struct dep_list): Don't mention LOG_LINKS in comment.

2007-02-15  Paolo Bonzini  <bonzini@gnu.org>

	* config/sh/sh.c (sh_reorg): Don't look at LOG_LINKS.

2007-02-15  Paolo Bonzini  <bonzini@gnu.org>

	* combine.c (find_single_use): Don't check for reload flags.

2007-02-15  Paolo Bonzini  <bonzini@gnu.org>

	Merge from mainline.

	2007-02-15  Paolo Bonzini  <bonzini@gnu.org>

	* caller-save.c (save_call_clobbered_regs): Do not process sibcalls.

2007-02-13  Seongbae Park <seongbae.park@gmail.com>

	Merge from mainline.

	2007-02-13  Seongbae Park <seongbae.park@gmail.com>

	* bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
	Ensure dst->current is valid.

2007-02-13  Kenneth Zadeck <zadeck@naturalbridge.com>

	* lower-subregs.c (resolve_reg_notes): Added code to call
	df_notes_rescan when REG_EQUAL notes are changed.

2007-02-12  Kenneth Zadeck <zadeck@naturalbridge.com>

	* global.c (compute_regsets): Removed first two parameters.
	Converted asm_clobbered to regs_asm_clobbered.
	(global_alloc): Removed bad merged call to make_accurate_live_analysis.
	(global_alloc, rest_of_handle_global_alloc): Removed first two
	parameters from compute_regsets.

2007-02-06  Kenneth Zadeck <zadeck@naturalbridge.com>

	* ifcvt.c (noce_process_if_block): Removed unnecessary insn deletes.
	(dead_or_predictable): Removed incorrect bit vector operation.
	* lower-subregs (simple_move_operand, resolve_clobber): Change from mainline.
	(resolve_clobber): Added df_insn_rescan of clobber.
	(decompose_multiword_subregs): Added df setup and removed debugging.
	(pass_lower_subreg2): Added df cleanup.
	* Makefile.in (lower-subregs.o): Added df.h dependence.

2007-02-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_expand_prologue): Remove unneeded brackets.
	(sh_expand_epilogue): Add blockage insn when not
	frame_pointer_needed.
	(sh_output_mi_thunk): Don't use flow analysis here.
	* config/sh/sh.md (UNSPEC_EH_RETURN): Remove.
	(UNSPECV_EH_RETURN): New macro.
	(sibcall_valuei): New.
	(sibcall_valuei_pcrel, sibcall_value_pcrel): Likewise.
	(sibcall_value_compact, sibcall_value_media): Likewise.
	(sibcall_value): Use new sibcall_value* patterns.
	(eh_set_ra_si): Use unspec_volatile and UNSPECV_EH_RETURN.
	(eh_set_ra_di, eh_set_ra_di+1): Likewise.

2007-02-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* mode-switching.c (create_pre_exit): Skip CLOBBER of pseudo
	register for the result when not optimizing.
	(optimize_mode_switching): Move	df_ri_add_problem and df_analyze
	calls after create_pre_exit call.

2007-02-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* modulo-sched.c (sms_schedule): Call df_ri_add_problem
	with DF_RI_LIFE.

2007-02-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* df-scan.c (df_get_entry_block_def_set): Use struct_value_rtx
	hook instead of TARGET_STRUCT_VALUE_RTX.

2007-02-03  Kaz Kojima  <kkojima@gcc.gnu.org>

	* passes.c (init_optimization_passes): Move df_finish after
	delay_slots.

2007-01-02  Kenneth Zadeck <zadeck@naturalbridge.com>

	* optabs.c (emit_no_conflict_block): Removed redundant code to
	number libcalls.
	* tree-pass.h (pass_initialize_subregs): Renamed to
	pass_initialize_regs.
	* passes.c (init_optimization_passes): Ditto.
	* builtins.c (expand_builtin_setjmp_receiver): Changed
	gen_rtx_ASM_INPUT to gen_blockage.
	* function.c (expand_function_end): Ditto.
	* stmt.c (gen_non_local_got_receiver): Ditto.
	* config/i386.md (blockage): Don't take an operand.
	(prologue_use): New.
	* config/i386.c (ix86_expand_prologue): Don't build a blockage
	insn with an operand.  If the PIC reg is used, use a prologue_use
	insn to protect it from being removed.
	* df-scan.c (df_get_entry_block_def_set): Generate ref for
	INCOMING_RETURN_ADDR_RTX after reload_completed.
	* df-core.c (df_ref_debug): Fixed formatting.
	* init-regs.c: Renamed from subregs_init.c and changed to
	initialize all fully uninitialized registers.
	* bt-load.c (compute_defs_uses_and_gen): Changed check for
	ASM_INPUT to UNSPEC_VOLATILE.
	* df-problems.c (df_set_unused_notes_for_mw,
	df_set_dead_notes_for_mw, df_ri_bb_compute): Cleaned up reg_notes
	debugging info.
	(df_set_dead_notes_for_mw): Added do_not_gen to test of all notes
	dead.
	* Makefile.in (subregs-init.*): Renamed to init-regs.*.
	* config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue):
	Removed code to generate explicit uses of LR_REGNUM from prologue.
	* config/arm/arm.h (EPILOGUE_USES): Made LR_REGNUM unconditionally
	added.
	* dce.c (deletable_insn_p): Made clobbers always live for use-def
	based dce.
	(prescan_insns_for_dce, prescan_insns_for_dse): Added fast
	parameter to deletable_insn_p.
	(run_fast_df_dce): Temporarily turn off DF_DEFER_INSN_RESCAN
	during this subphase.


2007-02-01  Seongbae Park <seongbae.park@gmail.com>

	* df-scan.c (df_sort_and_compress_refs):
	Style fix.
	(df_sort_and_compress_mws):
	Style fix. Fix missing & in parameters for df_mw_compare call.

2007-02-01  Seongbae Park <seongbae.park@gmail.com>

	* df-scan.c (df_swap_refs): New function.
	(df_sort_and_compress_refs, df_sort_and_compress_mws):
	Avoid qsort call overhead if the array has only 2 elements
	or if it's already sorted.

2007-01-17  Eric Christopher  <echristo@apple.com>

	* config/mips/mips.c (mips_output_function_epilogue): Use SET_REGNO
	instead of REGNO.
	(mips_output_mi_thunk): Ditto.

2007-01-17  Eric Christopher  <echristo@apple.com>

	* reorg.c (fill_simple_delay_slots): Fix prototype.

2007-01-15  Andreas Krebbel  <krebbel1@de.ibm.com>

	* regmove.c: (fixup_match_1): Call df_notes_rescan after
	changing insn notes.

2007-01-15  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c: Include df.h.
	(s390_emit_prologue): Call df_insn_rescan when annotating constant
	pool references.

2007-01-15  Andreas Krebbel  <krebbel1@de.ibm.com>

	* rtl.h (split_all_insns_noflow): Add prototype.
	* recog.c (split_all_insns_noflow): Remove static.

2007-01-14  Kenneth Zadeck <zadeck@naturalbridge.com>
	* fwprop.c (update_df): Only rescan if insn has really changed.
	(try_fwprop_subst): Removed call to df_set_bb_dirty.
	(fwprop_init): Added new parameter to df_maybe_reorganize_use_refs.
	* df-scan.c (df_scan_alloc): Removed calls to df_grow_ref_info.
	(df_scan_blocks, df_ref_create, df_reg_chain_unlink,
	df_maybe_reorganize_use_refs, df_maybe_reorganize_def_refs,
	df_install_ref, df_install_refs, df_refs_add_to_chains): Changed
	to support new modes adding refs to the df.ref_info.refs.
	(df_reg_chain_unlink, df_install_ref, df_ref_create_structure,
	df_hard_reg_used_p): Changed DF_REGS_EVER_LIVE to
	DF_HARD_REG_LIVE.
	(df_ref_remove, df_ref_create): Added call to dirty the block when
	a ref is changed manually.
	(df_insn_rescan, df_notes_rescan): Added bb param to
	df_refs_add_to_chains.
	(df_reorganize_refs): Renamed to df_reorganize_refs_by_reg.
	(df_count_refs, df_add_refs_to_table,
	df_reorganize_refs_by_insn_bb, df_reorganize_refs_by_insn,
	df_hard_reg_used_count): New functions.
	(df_drop_organized_tables): Removed.
	* df_core.c (df_set_blocks, df_finish_pass): Changed
	to support new modes adding refs to the df.ref_info.refs.
	* df.h (df_ref_flags.DF_REGS_EVER_LIVE): Renamed to
	DF_HARD_REG_LIVE.
	(df_ref_order): New Enum.
	(df_ref_info.{refs_organized_alone, refs_organized_with_eq_uses,
	add_refs_inline}): Replaced with df_ref_info.ref_order.
	(DF_REG_EVER_LIVE_P): Removed macro.
	* df-problems.c (df_ru_local_compute): Added parm to
	df_maybe_reorganize_use_refs.
	(df_rd_local_compute): Added parm to
	df_maybe_reorganize_def_refs.

2007-01-12  Kenneth Zadeck <zadeck@naturalbridge.com>
	* df-scan.c (df_collection_rec): New structure.
	(df_chains): Deleted structure.
	(DEBUG_DF_RESCAN): Removed conditional compilation of rescanning.
	(df_scan_start_block): Added ifdefed out code that prints the
	scanning of insns.

	(df_ref_create, df_get_artificial_defs, df_get_artificial_uses,
	df_reg_chain_unlink, df_ref_remove, df_ref_chain_delete_du_chain,
	df_ref_chain_delete, df_mw_hardreg_chain_delete, df_insn_rescan,
	df_ref_chain_change_bb, df_insn_change_bb,
	df_ref_change_reg_with_loc_1, df_mw_hardreg_chain_delete_eq_uses,
	df_notes_rescan, df_refs_add_to_chains, df_ref_create_structure,
	df_ref_record, df_def_record_1, df_defs_record, df_uses_record,
	df_get_conditional_uses, df_insn_refs_collect, df_recompute_luids,
	df_bb_refs_collect, df_entry_block_defs_collect,
	df_update_entry_block_defs, df_exit_block_uses_collect,
	df_record_exit_block_uses, df_update_exit_block_uses,
	df_compute_regs_ever_live, df_reg_chain_mark,
	df_reg_chain_verify_unmarked, df_insn_refs_verify, df_bb_verify,
	df_scan_verify): Changed to use vector rep for refs.
	(df_get_call_refs) Ditto plus fixed bug where clobber ref was
	generated for same ref as result of call.
	(df_reg_chain_create, df_ref_unlink, df_ref_chain_find_ref,
	df_ref_chain_find_ref_by_regno, df_ref_chain_append,
	df_ref_find_chains, df_ref_add_to_chains, df_insn_refs_record,
	df_ref_chain_verify_and_unmark, df_ref_chain_free, df_ref_verify,
	df_mw_hardreg_find_hardreg): Deleted function.
	(df_ref_compress_rec, df_free_collection_rec, df_ref_compare,
	df_sort_and_compress_refs, df_mw_compare, df_sort_and_compress_mws
	df_canonize_collection_rec, df_install_ref, df_install_refs,
	df_refs_verify, df_mws_verify): New function.
	(df_ref_is_equal): Renamed to df_ref_equal_p and changed to use
	vector rep for refs.
	(df_mw_is_equal): Renamed to df_mw_equal_p and changed to use
	vector rep for refs.
	* df.h (df_ref_flags.(DF_REF_MW_HARDREG_GROUP, DF_REF_REF_MARKER):
	Removed.
	(df_ref_flags.(DF_REF_REG_MARKER, DF_REGS_EVER_LIVE)): Renumbered.
	(df_mw_hardreg.(loc, start_regno, end_regno, mw_order)): New
	fields.
	(df_insn_info.(defs, uses, eq_uses, mw_hardregs): Made into arrays
	of pointers.
	(df_scan_bb_info.(artificial_defs, artificial_uses): Ditto.
	(df_ref.ref_order): New field.
	(df_ref.next): Removed.
	(df.ref_order): New field.
	(DF_REF_REF_MARK, DF_REF_REF_UNMARK, DF_REF_IS_REF_MARKED,
	DF_REF_NEXT_REF): Removed macro.
	(DF_REF_ORDER): New macro.
	* df-core.c (df_bb_regno_last_use_find, 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_refs_chain_dump,
	df_mws_dump, df_insn_uid_debug, df_insn_debug): Ditto.
	* fwprop.c (update_df): Do not call df_insn_rescan unless insn has
	changed.
	(local_ref_killed_between_p, all_uses_available_at,
	find_occurrence, update_df): Changed to use
	vector rep for refs.
	* see.c (see_handle_relevant_refs, see_update_relevancy,
	see_propagate_extensions_to_uses): Ditto.
	* auto-inc-dec.c (find_inc, merge_in_block): Ditto.
	* web.c (union_defs, web_main): Ditto.
	* global.c (compute_regs_asm_clobbered): Ditto.
	* ifcvt.c (dead_or_predicable): Ditto.
	* loop-invariant.c (find_defs, check_dependency,
	find_invariant_insn): Ditto.
	* combine.c (create_log_links): Ditto.
	* df-problems.c (df_ru_alloc, df_ru_bb_local_compute_process_def,
	df_ru_bb_local_compute_process_use, df_rd_alloc,
	df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
        df_lr_simulate_artificial_refs_at_end, df_lr_simulate_one_insn,
	df_ur_bb_local_compute, df_urec_bb_local_compute,
	df_urec_bb_local_compute, df_chain_remove_problem,
	df_chain_remove_problem, df_chain_reset,
	df_chain_create_bb_process_use, df_chain_create_bb,
	df_chain_top_dump, df_chain_top_dump, df_chain_bottom_dump,
	df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
	df_ri_bb_compute): Ditto.
	* dce.c (delete_corresponding_reg_eq_notes, mark_artificial_uses,
	mark_reg_dependencies, dce_process_block): Ditto.



2007-01-10  Seongbae Park <seongbae.park@gmail.com>
	* df-core.c (df_worklist_propagate_backward,
	df_worklist_dataflow)): More comments.
	(df_iterative_dataflow): Whitespace fixup.
	* cfganal.c (inverted_post_order_compute):
	More comments and rename a local variable DEST to PRED.
	(df_find_deadend): More comments. Use gcc_unreachable().

2007-01-09  Seongbae Park <seongbae.park@gmail.com>
	* df-core.c (rest_of_handle_df_initialize): Allocate and free new
	fields struct dataflow::{postorder_inverted,n_blocks_inverted}.
	(df_hybrid_search_forward, df_hybrid_search_backward): Pass visited,
	pending, considered as parameters instead of fields of struct df.
	(df_worklist_propagate_forward, df_worklist_propagate_backward,
	df_worklist_dataflow): New functions.
	(df_iterative_dataflow): Remove visited, pending, considered
	fields from struct dataflow.
	(df_analyze): Allocate and free new fields
	df::{postorder_inverted,n_blocks_inverted}.
	(df_get_n_blocks, df_get_postorder): Make them return
	different values depending on the direction of the dataflow problem.
	(df_simple_dataflow): Renamed from df_simple_iterative_dataflow.
	Call df_worklist_dataflow instead of df_iterative_dataflow.
	* cfganal.c (dfs_find_deadend, inverted_post_order_compute):
	New functions.
	* df.h (struct dataflow): Remove fields visited, pending, considered.
	Add new fields postorder_inverted, n_blocks_inverted.
	(df_get_nblocks, df_get_postorder): Prototype change.
	(df_simple_dataflow): Renamed from df_simple_iterative_dataflow.
	(df_worklist_dataflow): New function prototype.
	* df-problems.c: Use df_worklist_dataflow instead of
	df_iterative_dataflow for solver.
	* basic-block.h (inverted_post_order_compute): New function prototype.
	* dce.c (dce_process_block): Pass extra parameter to df_get_n_blocks
	and df_get_postorder.
	(calculate_reaching_stores): Call df_simple_dataflow,
	renamed from df_simple_iterative_dataflow.


2007-01-05  Kenneth Zadeck <zadeck@naturalbridge.com>
	* see.c (see_update_defs_relevancy): Type fixed.
	* df-scan.c (df_reg_chain_unlink, df_ref_verify): Made tolerant of
	refs table not being there.
	(df_drop_organized_tables): New function.
	* df-core.c (df_finish_pass): Drop refs tables after each pass.
	* web.c (web_main): Reorganized access to not use ref tables and
	go in order of insns.
	* df.h (df_drop_organized_tables): New function.
	* df-problems.c (df_chain_start_dump): Deleted function.
	(df_chain_top_dump, df_chain_bottom_dump): New functions.

2007-01-03  Kenneth Zadeck <zadeck@naturalbridge.com>
	* see.c (see_initialize_data_structures): Does not use
	DF_USES_TABLE_SIZE or DF_DEFS_TABLE_SIZE.
	(see_handle_relevant_defs, see_handle_relevant_uses): Removed
	outer loop.  Now a subrouting of see_handle_relevant_refs.
	(see_handle_relevant_refs, see_update_relevancy): New functions
	that now loops over insns.
	(see_update_uses_relevancy, see_update_defs_relevancy): Removed
	outer loop.  Now a subroutine of see_update_relevancy.
	(see_analyze_one_def): Removed unnecessary tests.
	(see_propagate_extensions_to_uses): Now iterates over insns and
	calls see_handle_relevant_refs and see_update_relevancy.
	* df-scan.c (df_reg_chain_unlink, df_insn_delete): Added code to
	skip the chain field of refs if the chain problem is not active.
	(df_scan_verify): Moved verification of the
	out_of_date_transfer_functions fields into the problem verifiers.
	* df-core.c (df_set_blocks): More logging.
	(df_finish_pass): Moved around when recanning is done.
	(rest_of_handle_df_initialize): Moved creation of
	handles out_of_date_transfer_functions to the problems.
	(df_set_bb_dirty, df_clear_bb_dirty, df_compact_blocks): Now
	handles out_of_date_transfer_functions in any problem.
	* df.h: Added comments.
	* df-problems.c (df_lr_add_problem, df_ur_add_problem,
	df_chain_add_problem): Allocates out_of_date_transfer_functions.
	(df_lr_verify_transfer_functions,
	df_ur_verify_transfer_functions): Now verifies
	out_of_date_transfer_functions.
	(df_chain_remove_problem): Tears down problem by looping over
	insns.
	(df_chain_fully_remove_problem, df_chain_free): Frees
	out_of_date_transfer_functions.
	(df_chain_create_bb): Sets out_of_date_transfer_functions.


2007-01-02  Kenneth Zadeck <zadeck@naturalbridge.com>
	* df-scan.c (df_reg_chain_create, df_reg_chain_unlink,
	df_ref_create_structure, df_hard_reg_used_p): Added code to
	process df->hard_regs_live_count.
	(df_ref_is_record_live, df_reg_chain_find_ref): Deleted.
	(df_refs_add_to_chains): Removed ifdefed code.
	(df_compute_regs_ever_live): Fixed "&" vs "&&" problem.
 	* df-core (rest_of_handle_df_initialize,
	rest_of_handle_df_finish): Added code to
	process df->hard_regs_live_count.
	* global.c (global_alloc): Repositioned use of urec problem.
	(build_insn_chain): Changed use of DF_RA_LIVE_TOP to df_get_live_top.
	(rest_of_handle_global_alloc): Removed call to df_analyze for no
	optimize case.
	* local-alloc.c (update_equiv_regs): Added calls to
	df_notes_rescan where eq notes are hacked.
	(block_alloc): Changed DF_RA_LIVE_TOP to DF_LR_TOP.
	(rest_of_handle_local_alloc): Removed addition of urec problem.
	* function.c (regno_clobbered_at_setjmp): Changed df_get_live_out
	to DF_LIVE_OUT.
	* (df_ref_flags.DF_REGS_EVER_LIVE): New flag.
	(df.hard_regs_live_count): New bitmap.
	(DF_LR_TOP, DF_REG_EVER_LIVE_P): New macro.
	(df_get_live_out): Removed.
	(df_get_live_top): Added.
	* df-problems.c (df_get_live_in): Does not look at DF_LIVE.
	(df_get_live_out): Deleted.
	(df_get_live_top): Added.
	* config/sh/sh.c (calc_live_regs): Changed regs_ever_live to
	df_regs_ever_live_p.
	* config/mn10300/mn10300.c (fp_regs_to_save): Ditto.
	* reload1.c (reload): Corrected the set of bitmaps to modify after
	reloading.


2007-01-01  Eric Christopher  <echristo@apple.com>

        * config/darwin.c: Include df.h.
        (machopic_legitimize_pic_address): Use
        df_set_regs_ever_live.

2006-12-28  Kenneth Zadeck <zadeck@naturalbridge.com>
	* regs.h: (regs_ever_live, regs_asm_clobbered): Removed.
	* final.c (regs_ever_live, regs_asm_clobbered):	Removed.
	(only_leaf_regs_used, leaf_renumber_regs_insn): Encapsulated
	references to regs_ever_live.
	* global.c (insn_contains_asm_1, insn_contains_asm,
	compute_regs_asm_clobbered): New functions.
	(global_alloc): Added call to compute_regs_asm_clobbered and
	encapsulated references to regs_ever_live.
	(dump_global_regs): Encapsulated references to regs_ever_live.
	(rest_of_handle_global_alloc): Changed call to df_scan_alloc.
	* regrename.c (regrename_optimize, regrename_optimize): Encapsulated
	references to regs_ever_live.
	* recog.c (peep2_find_free_register): Ditto.
	* rtl-factoring (recompute_gain_for_pattern_seq,
	abstract_best_seq): Ditto.
	* bt-load.c (move_btr_def, migrate_btr_defs): Ditto.
	* reg_stack.c (reg_to_stack): Ditto.
	* config/alpha/alpha.c (alpha_ra_ever_killed, alpha_sa_mask,
	alpha_sa_size): Ditto.
	* config/frv/frv.c (frv_stack_info, frv_function_prologue): Ditto.
	* config/s390/390.c (legitimize_pic_address,
	legitimize_tls_address, find_unused_clobbered_reg,
	s390_regs_ever_clobbered, s390_register_info,
	s390_init_frame_layout, s390_update_frame_layout,
	s390_emit_prologue): Ditto.
	* config/m32c/m32.c (need_to_save): Ditto.
	* config/spu/spu.c (spu_split_immediate): Ditto.
	* config/sparc/sparc.c (sparc_compute_frame_size,
	sparc_output_scratch_registers, save_or_restore_regs,
	order_regs_for_local_alloc): Ditto.
	* config/m32r/m32r.c (MUST_SAVE_FRAME_POINTER,
	MUST_SAVE_RETURN_ADDR, m32r_hard_regno_rename_ok): Ditto.
	* config/i386/i386.h (ix86_current_function_calls_tls_descriptor):
	Ditto.
	* config/i386/i386.c (ix86_select_alt_pic_regnum, ix86_save_reg,
	ix86_expand_prologue, legitimize_pic_address,
	legitimize_tls_address): Ditto.
	* config/sh/sh.c (calc_live_regs, sh_media_register_for_return,
	sh_expand_prologue, sh_hard_regno_rename_ok): Ditto.
	* config/pdp11/pdp11.c (pdp11_output_function_prologue,
	pdp11_output_function_epilogue): Ditto.
	* config/pdp11/pdp11.h (may_call_alloca): Ditto.
	* config/avr/avr.c (avr_regs_to_save, sequent_regs_live,
	avr_peep2_scratch_safe): Ditto.
	* config/crx/crx.h (HARD_REGNO_RENAME_OK): Ditto.
	* config/crx/crx.c (crx_compute_save_regs): Ditto.
	* config/c4x/c4x.c (c4x_isr_reg_used_p, c4x_expand_prologue,
	c4x_null_epilogue_p): Ditto.
	* config/c4x/c4x.h (reg_class): Ditto.
	* config/stormy16/stormy16.c (REG_NEEDS_SAVE): Ditto.
	* config/fr30/fr30.c (MUST_SAVE_FRAME_POINTER,
	MUST_SAVE_RETURN_POINTER): Ditto.
	* config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset,
	m68hc11_total_frame_size, expand_prologue): Ditto.
	* config/cris/cris.c (cris_reg_saved_in_regsave_area,
	cris_return_addr_rtx): Ditto.
	* config/iq2000/iq2000.h (MUST_SAVE_REGISTER): Ditto.
	* config/iq2000/iq2000.c (iq2000_can_use_return_insn): Ditto.
	* config/mt/mt.c (mt_compute_frame_size): Ditto.
	* config/mt/mt.h (save_direction): Ditto.
	* config/mn10300/mn10300.c (REG_SAVE_BYTES, can_use_return_insn,
	mn10300_get_live_callee_saved_regs, expand_prologue,
	initial_offset): Ditto.
	* config/ia64/ia64.c (find_gr_spill, ia64_compute_frame_size):
	Ditto.
	* config/m68k/m68k.c (m68k_save_reg, m68k_hard_regno_rename_ok):
	Ditto.
	* config/rs6000/rs6000.c (rs6000_got_register, first_reg_to_save,
	first_fp_reg_to_save, first_altivec_reg_to_save,
	compute_vrsave_mask, rs6000_stack_info, create_TOC_reference,
	rs6000_emit_prologue): Ditto.
	* config/rs6000/rs6000.h (HARD_REGNO_RENAME_OK): Ditto.
	* config/arc/arc.c (MUST_SAVE_REGISTER, MUST_SAVE_RETURN_ADDR):
	Ditto.
	* config/mcore/mcore.c (calc_live_regs): Ditto.
	* config/score/score-mdaux.c (score_save_reg_p): Ditto.
	* config/arm/arm.c (use_return_insn, thumb_find_work_register,
	arm_compute_save_reg0_reg12_mask, arm_compute_save_reg_mask,
	arm_get_vfp_saved_size, arm_output_epilogue, thumb_force_lr_save,
	arm_get_frame_offsets, arm_expand_prologue, thumb_far_jump_used_p,
	thumb_unexpanded_epilogue, thumb_expand_epilogue): Ditto.
	* config/arm/arm.h (HARD_REGNO_RENAME_OK): Ditto.
	* config/pa/pa.c (compute_frame_size, pa_output_function_prologue,
	hppa_expand_prologue, hppa_expand_epilogue,
	hppa_can_use_return_insn_p, output_lbranch): Ditto.
	* config/pa/pa.h (HARD_REGNO_RENAME_OK): Ditto.
	* config/mips/mips.c (mips_global_pointer, mips_save_reg_p,
	mips_can_use_return_insn, build_mips16_call_stub): Ditto.
	* config/vax/vax.c (vax_output_function_prologue): Ditto.
	* config/v850/v850.c (substitute_ep_register,
	compute_register_save_size): Ditto.
	* config/h8300/h8300.c (byte_reg, h8300_hard_regno_rename_ok):
	Ditto.
	* config/mmix/mmix.c (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS,
	mmix_initial_elimination_offset, mmix_reorg,
	mmix_use_simple_return, mmix_expand_prologue,
	mmix_expand_epilogue): Ditto.
	* config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
	n_regs_saved_by_prologue, expand_interrupt_handler_prologue,
	expand_interrupt_handler_epilogue, bfin_hard_regno_rename_ok):
	Ditto.
	* reload1.c (reload, mark_home_live, spill_hard_reg,
	finish_spills): Ditto.
	* df-scan.c (regs_ever_live): Added as local var.
	(df_scan_free_internal): Delete bitmap.
	(df_scan_free_bb_info): Inlined code from removed df_bb_delete.
	(df_scan_alloc): Removed blocks_to_rescan param and reference to
	out_of_date_transfer_functions and added insns_to_notes_rescan.
	(df_scan_free): Removed reference to
	out_of_date_transfer_functions.
	(df_scan_start_dump, df_scan_start_block): Added ";;" in front of
	debugging lines.
	(problem_SCAN): Added extra null fields.
	(df_scan_blocks): Added code to set entry and exit blocks as
	dirty.
	(df_insn_delete): Added basic block parameter and support for
	insns_to_notes_rescan.
	(df_bb_delete): Removed.
	(df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans,
	df_notes_rescan): Added support for insns_to_notes_rescan.
	(df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
	Added extra parameter to df_insn_delete.
	(df_process_deferred_rescans): Added support to fixup entry and
	exit blocks if regs_ever_live changes.
	(df_insn_change_bb): Added debugging.
	(df_ref_change_reg_with_loc_1): Added code to dirty the block.
	(df_insn_contains_asm_1, df_insn_contains_asm): Function moved to
	global.c.
	(df_insn_refs_record): Removed code to set insn_contains_asm.
	(df_bb_refs_record): Now sets itself dirty.
	(df_get_entry_block_def_set, df_get_exit_block_use_set):
	Encapsulated references to regs_ever_live.
	(df_update_entry_block_defs, df_update_exit_block_uses): Added
	finer grained control on dirtying the block.
	(df_regs_ever_live_p, df_set_regs_ever_live): New functions.
	(df_compute_regs_ever_live): New reset parameter.
	(df_verify_blocks): Renamed to df_scan_verify and added more
	checking code.
	* df-core.c (df_add_problem): Initialized solutions_dirty.
	(df_finish_pass): Added calls to verify transfer functions.
	(rest_of_handle_df_initialize): Added more initialization for
	persistent structures.
	* (df_hybrid_search_forward, df_hybrid_search_backward,
	df_iterative_dataflow, df_analyze_problem): Removed single_pass parameter.
	(df_analyze_problem): Added checking for results of dataflow.
	(df_analyze): Added more debugging and removed changing
	out_of_date_transfer functions.
	(df_get_bb_dirty, df_set_bb_dirty, df_compact_blocks): Supports
	each problem having it own incremental
	status bits.
	(df_clear_bb_dirty, df_verify, df_compute_cfg_image,
	df_check_cfg_clean, df_set_clean_cfg): New function.
	(df_compact_blocks, df_bb_replace): More debugging.
	*df.h (df_alloc_function, df_local_compute_function): Removed
	blocks_to_scan parameter.
	(df_dataflow_function): Removed single_pass parameter.
	(df_verify_solution_start, df_verify_solution_end): New function
	types.
	(dataflow.out_of_date_transfer_functions,
	dataflow.solutions_dirty): Moved from df structure so each problem
	could have its own copy.
	(df_insn_info.contains_asm, DF_INSN_CONTAINS_ASM): Functionality
	moved into global.c.
	(df.solutions.dirty, out_of_date_transfer_functions): Moved to
	struct dataflow.
	(df.redo_entry_and_exit, df.insns_to_notes_rescan): New fields.
	(DF_DEBUG_CFG): Flag to control code to check if cfg modifications
	are being reported to df.
	* df-problems.c (df_print_bb_index, df_lr_top_dump,
	df_lr_bottom_dump, df_ur_top_dump, df_ur_bottom_dump): Cleanup
	more dump info.
	(df_ru_alloc, df_ru_local_compute, df_rd_alloc,
	df_rd_local_compute, df_lr_alloc, df_lr_local_compute,
	df_ur_alloc, df_ur_local_compute, df_live_alloc, df_urec_alloc,
	df_urec_local_compute, df_chain_alloc, df_ri_alloc,
	df_ri_compute): Removed blocks_to_rescan parameter.
	(problem_RU, problem_RD, problem_LR, problem_UR, problem_LIVE,
	problem_UREC, problem_RI): Added two new fields.
	(df_lr_problem_data, df_ur_problem_data): New data structure to
	support checking of dataflow solutions.
	(df_lr_alloc, df_lr_local_compute, df_ur_alloc,
	df_ur_local_compute, df_ur_free): Now processes only out of date blocks.
	(df_lr_reset, df_lr_verify_solution_start,
	df_lr_verify_solution_end, df_lr_verify_transfer_functions,
	df_ur_reset, df_ur_local_finalize, df_ur_verify_solution_start,
	df_ur_verify_solution_end, df_ur_verify_transfer_functions): New function.
	(df_lr_bb_local_compute, df_lr_local_compute): Moved asm scanning to global.c.
	(df_lr_local_finalize, df_lr_free, df_live_local_finalize): Added
	code to support incremental checking of dataflow solution.
	* passes.c (pass_free_cfg): Moved to before machine_reorg.
	* cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
	cfg_layout_merge_blocks): Changed df_delete_basic_blocks to
	df_bb_delete.
	(update_bb_for_insn): Changed df_insn_rescan to df_insn_change_bb.
	(force_nonfallthru_and_redirect): Added call to
	df_mark_solutions_dirty.
	* dce.c (dce_process_block): Added more checking code and made the
	code closer to the functionality in df_lr.
	(fast_dce): Now skips entry and exit blocks.  Deleted last parm to
	df_analyze_problem and removed changed bitmap.
	* fwprop.c (update_df, try_fwprop_subst): Added calls to df_set_bb_dirty.
	* cfg.c (connect_src, connect_dest, disconnect_src,
	disconnect_dest): Added calls to df_mark_solutions_dirty.
	* haifa-sched.c	(move_succs): Ditto.
	* ifcvt.c (find_cond_trap): Moved calls to df_set_bb_dirty to
	before deletion of basic block.
	* emit-rtl.c (set_insn_deleted, remove_insn): Added basic block
	parm.
	* regclass.c (regclass_init): Added reset parm to df_compute_res_ever_live.


2006-12-28  Kenneth Zadeck <zadeck@naturalbridge.com>
	* local_alloc.c (rest_of_handle_local_alloc): changed
	extra_warnings to warn_clobbered.

2006-12-25  Kenneth Zadeck <zadeck@naturalbridge.com>
	* dce.c (delete_corresponding_reg_eq_notes): Added comment.
	(delete_unmarked_insns): Added code to delete noop moves
	inside of libcalls.  Changed to used delete_insn_and_edges.

2006-12-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/spu/spu.c (immediate_load_p): Change usage of
	flow2_completed over to epilogue_completed.

2006-12-22  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-problems.c (df_ru_start_dump, df_ru_top_dump,
	df_ru_bottom_dump, df_rd_start_dump, df_rd_top_dump,
	df_rd_bottom_dump, df_lr_top_dump, df_lr_bottom_dump,
	df_ur_top_dump, df_ur_bottom_dump, df_live_top_dump,
	df_urec_top_dump, df_urec_bottom_dump, df_chain_start_dump,
	df_ri_start_dump): Added ";; " to the beginning of dataflow
	information put in dump files.
	* dce.c (marked_libcalls, delete_unmarked_insns): Removed.
	(prescan_insns_for_dce, mark_libcall, dce_process_block,
	prescan_insns_for_dse): Replaced libcall marking mechanism.
	(init_dce, end_dce, end_fast_dce, run_fast_df_dce): Removed
	marked_libcalls.

2006-12-16  Kenneth Zadeck <zadeck@naturalbridge.com>

	* regrename.c (mrege_overlapping_regs): Removed df parameter
	and changed calls to df_ routines to support new incremental
	scanning.
	* sched_ebb (schedule_ebbs): Removed return value and changed
	calls to df_ routines to support new incremental scanning.
	* fwprop.c (local_ref_killed_between_p, use_killed_between,
	all_uses_available_at, update_df, try_fwprop_subst, fwprop,
	fwprop_addr): Removed df parameter and changed calls to df_
	routines to support new incremental scanning.
	(gate_fwprop, gate_fwprop_addr): Reenabled pass.
	* doc/cfg.texi: Updated liveness info documentation.
	* doc/rtl.texi: Updated liveness info documentation.
	* see.c (see_initialize_data_structures, see_emit_use_extension,
	see_commit_changes, see_analyze_merged_def_local_prop,
	see_analyze_use_local_prop, see_set_prop_merged_def,
	see_set_prop_unmerged_use, see_store_reference_and_extension,
	see_handle_relevant_defs, see_handle_relevant_uses,
	see_update_uses_relevancy, see_propagate_extensions_to_uses,
	pass_see): Removed df parameter and changed calls to df_ routines
	to support new incremental scanning.
	* postreload.c (reload_cse_simplify_operands): Changed REGNO to
	SET_REGNO.
	(reload_combine): Removed df parameter and changed calls to df_
	routines to support new incremental scanning.
	* tree.h (generate_setjmp_warnings): Removed df parameter.
	* reload.c (push_reload, find_dummy_reload): Removed df parameter
	and changed calls to df_ routines to support new incremental
	scanning.
	* tree-pass.h (pass_df_initialize, pass_df_finish): New passes.
	* rtlanal.c (remove_note): Call df_notes_rescan if the
	REG_EQUAL/EQUIV notes change.
	* ddg.c (add_deps_for_def, add_deps_for_use,
	add_inter_loop_mem_dep): Removed df parameter and changed calls to
	df_ routines to support new incremental scanning.
	* ddg.h (struct df) Removed.
	* final.c (cleanup_subreg_operands): Added call df_insn_rescan if
	insn changes.
	(walk_alter_subreg): Added changed parameter to track changes.
	(output_address): Added changed parameter to walk_alter_subreg.
	* cfg.c (compact_blocks, dump_bb_info): Removed df parameter to df_
	calls.
	* auto_inc_dec.c (attempt_changed): Moved call to
	df_recompute_luids so that it is only called when moves are added.
	(find_inc, merge_in_block, rest_of_handle_auto_inc_dec): Removed
	df parameter and changed calls to df_ routines to support new
	incremental scanning.
	(merge_in_block): Added call to df_recompute_luids.
	* reorg.c (delete_from_delay_slot, relax_delay_slots): Added basic
	block parm to add_insn_after.
	(fill_simple_delay_slots, fill_slots_from_thread,
	fill_eager_delay_slots, make_return_insns, dbr_schedule): Removed
	df parameter and changed calls to df_ routines to support new
	incremental scanning.
	* df-scan.c (struct df_reg_chains): Removed.
	(df_scan_free_internal, df_scan_free_internal,
	df_scan_free_bb_info, df_scan_alloc, df_scan_free,
	df_scan_start_dump, df_scan_add_problem, df_grow_reg_info,
	df_check_and_grow_ref_info, df_grow_insn_info, df_scan_blocks,
	df_ref_create, df_scan_alloc, df_scan_start_block,
	df_scan_add_problem, df_grow_reg_info, df_check_and_grow_ref_info,
	df_grow_insn_info, df_scan_blocks, df_ref_create,
	df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
	df_ref_remove, df_insn_create_insn_record,
	df_ref_chain_delete_du_chain, df_ref_chain_delete, df_insn_delete,
	df_bb_delete, df_insn_rescan, df_reorganize_refs,
	df_insn_change_bb, df_maybe_reorganize_use_refs,
	df_maybe_reorganize_def_refs, df_reg_chain_find_ref,
	df_ref_find_chains, df_ref_add_to_chains, df_refs_add_to_chains,
	df_ref_create_structure, df_ref_record, df_def_record_1,
	df_defs_record, df_uses_record, df_get_conditional_uses,
	df_get_call_refs, df_get_call_refs, df_insn_refs_collect,
	df_insn_refs_record, df_recompute_luids, df_bb_refs_collect,
	df_bb_refs_record, df_bb_refs_record, df_mark_reg,
	df_get_entry_block_def_set, df_entry_block_defs_collect,
	df_record_entry_block_defs, df_update_entry_block_defs,
	df_exit_block_uses_collect, df_record_exit_block_uses,
	df_update_exit_block_uses, df_compute_regs_ever_live,
	df_reg_chain_unmark, df_ref_chain_free, df_ref_verify,
	df_ref_verify, df_insn_refs_verify, df_bb_verify,
	df_exit_block_bitmap_verify, df_entry_block_bitmap_verify,
	df_verify_blocks): Removed df and dflow parameters and changed
	calls to df_ routines to support new incremental scanning.
	(df_ref_chain_unmark): Renamed to df_ref_chain_verify_and_unmark.
	(df_scan_get_bb_info, df_scan_set_bb_info): Made tolerant of
	missing basic block info.
	(df_insn_rescan_all, df_process_deferred_rescans,
	df_ref_chain_find_ref_by_regno, df_ref_change_reg_with_loc_1,
	df_ref_change_reg_with_loc,
	df_mw_hardreg_chain_delete_eq_uses, df_notes_rescan,
	df_update_entry_exit_and_calls, df_hard_reg_used_p,
	df_mw_hardreg_find_hardreg): New function.
	(df_ref_is_pointer_equal, df_bb_refs_verify): Deleted function.
	* haifa_sched.c (move_insn): Removed df parameter and changed calls to
	df_ routines to support new incremental scanning.
	* df-core.c (df_init): Deleted function.
	(df): New static instance of dataflow.
	(df_add_problem, df_remove_problem, df_set_flags, df_clear_flags,
	df_set_blocks, df_delete_basic_block, df_hybrid_search_forward,
	df_hybrid_search_backward, df_iterative_dataflow,
	df_analyze_problem, df_analyze, df_get_n_blocks, df_get_postorder,
	df_mark_solutions_dirty, df_get_bb_dirty, df_set_bb_dirty,
	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_reg_defined, df_find_use,
	df_reg_used, df_dump, df_dump_start, df_dump_top, df_dump_bottom,
	df_regs_chain_dump, df_insn_uid_debug, df_insn_debug,
	df_insn_debug_regno, df_regno_debug, debug_df_insn, debug_df_reg,
	debug_df_defno, debug_df_useno): Removed df parameter and
	changed calls to df_ routines to support new incremental scanning.
	(df_finish1): Deleted function.
	(df_remove_problem, df_finish_pass, rest_of_handle_df_initialize,
	rest_of_handle_df_finish): New function.
	(pass_df_finish, pass_df_initialize): New passes.
	* mode-switching.c (optimize_mode_switching):  Removed df parameter and
	changed calls to df_ routines to support new incremental scanning.
	* modulo-sched.c (sms_schedule): Removed df parameter and
	changed calls to df_ routines to support new incremental scanning.
	(add_insn_before): Added extra parameter to add_insn_before.
	* caller-save.c (init_caller_save): Changed REGNO to SET_REGNO.
	* cse.c (cse_main): Disabled incremental df update during this
	pass.
	* web.c (union_defs, replace_ref, web_main, pass_web): Removed df
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	* loop-init.c (rtl_unroll_and_peel_loops,
	pass_rtl_move_loop_invariants): Removed df parameter and changed
	calls to df_ routines to support new incremental scanning.
	* global.c (global_alloc, global_conflicts, retry_global_alloc,
	mark_elimination, build_insn_chain, rest_of_handle_global_alloc):
	Removed df parameter and changed calls to df_ routines to support
	new incremental scanning.
	* ifcvt.c (, find_if_header, find_if_case_1, find_if_case_2,
	dead_or_predicable, if_convert, pass_rtl_ifcvt,
	pass_if_after_combine, pass_if_after_reload): Removed df parameter
	and changed calls to df_ routines to support new incremental
	scanning.
	* expr.c (init_expr_once): Changed REGNO to SET_REGNO.
	* recog.c (peephole2_optimize, pass_split_all_insn): Removed df
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	* regmove.c (mark_flags_life_zones, optimize_reg_copy_2,
	regmove_optimize, rest_of_handle_stack_adjustments): Removed df
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	* local-alloc.c (block_alloc, rest_of_handle_local_alloc): Removed df
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	* function.c (regno_clobbered_at_setjmp, setjmp_vars_warning,
	setjmp_args_warning, generate_setjmp_warnings,
	keep_stack_depressed, thread_prologue_and_epilogue_insns,
	epilogue_done, rest_of_handle_thread_prologue_and_epilogue): Removed df
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	* function.h (df): Deleted variable.
	* df.h (DF_RU, DF_RD, DF_LR, DF_UR, DF_LIVE): Renumbered to put
	permanent problems before optional problems.
	(DF_FIRST_OPTIONAL_PROBLEM): New symbol.
	(df_ref_flags.DF_REF_REF_MARKER, df_ref_flags.DF_REF_REG_MARKER): New flag.
	(df_ref_flags.DF_REF_ARTIFICIAL, df_ref_flags.DF_REF_MARKER):
	Deleted flag.
	(df_alloc_function, df_reset_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_remove_problem_function, df_dump_problem_function,
	df_dump_bb_problem_function, DF_SCAN_BB_INFO, DF_RU_BB_INFO,
	DF_RD_BB_INFO, DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_BB_INFO,
	DF_LIVE_IN, DF_LIVE_OUT, DF_RA_LIVE_IN, DF_RA_LIVE_OUT,
	DF_RA_LIVE_TOP, DF_LR_IN, DF_LR_OUT, DF_UR_IN, DF_UR_OUT,
	DF_DEFS_GET, DF_DEFS_SET, DF_DEFS_COUNT, DF_DEFS_BEGIN,
	DF_USES_GET, DF_USES_SET, DF_USES_COUNT, DF_USES_BEGIN,
	DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_CHAIN, DF_REG_DEF_COUNT,
	DF_REG_USE_GET, DF_REG_USE_CHAIN, DF_REG_USE_COUNT,
	DF_REG_EQ_USE_GET, DF_REG_EQ_USE_CHAIN, DF_REG_EQ_USE_COUNT,
	DF_REGNO_FIRST_DEF, DF_REGNO_LAST_USE, 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_EQ_USES, DF_INSN_UID_GET, DF_INSN_UID_SAFE_GET,
	DF_INSN_UID_LUID, DF_INSN_UID_DEFS, DF_INSN_UID_USES,
	DF_INSN_UID_EQ_USES, DF_INSN_UID_MWS): Removed df or dflow
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	(DF_DEFS_SIZE, DF_USES_SIZE): Renamed to DF_DEFS_TABLE_SIZE and
	DF_USES_TABLE_SIZE.
	(DF_DEFS_TOTAL_SIZE, DF_USES_TOTAL_SIZE, df_scan, df_ru, df_rd,
	df_lr, df_ur, df_live, df_urec, df_chain, df_ri,
	DF_DEFS_TOTAL_SIZE, DF_USES_TOTAL_SIZE): New macros.
	(dataflow.df): Removed field.
	(df_ref_info.bitmap_size): Split into df_ref_info.table_size and
	df_ref_info.total_size.
	(dataflow.local_flags, df_insn_info.insn,
	df_changeable_flags.DF_DEFER_INSN_RESCAN, df_ref_info.count,
	df.insns_to_rescan, df.insns_to_delete): New field.
	(df_permanent_flags): Split into df_chain_flags and df_ri_flags.
	* gcse (try_replace_reg, adjust_libcall_notes,
	update_ld_motion_stores):  Removed df
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	(insert_insn_end_basic_block, insert_insn_start_basic_block):
	Added bb parameter to emit_insn_before_noloc.
	* rtl-factoring.c (match_seqs, collect_pattern_seqs,
	collect_pattern_seqs, clear_regs_live_in_seq,
	recompute_gain_for_pattern_seq,, recompute_gain,
	split_blocks_after_seqs, split_pattern_seq, erase_matching_seqs,
	abstract_best_seq, rtl_seqabstr): Removed df parameter and changed
	calls to df_ routines to support new incremental scanning.
	* expmed.c (init_expmed): Changed REGNO to SET_REGNO.
	* bt-load.c (, compute_defs_uses_and_gen, build_btr_def_use_webs,
	migrate_btr_defs, branch_target_load_optimize,
	pass_branch_target_load_optimize1,
	pass_branch_target_load_optimize1): Removed df parameter and changed
	calls to df_ routines to support new incremental scanning.
	* emit-rtl.c (add_insn_after, add_insn_before,
	emit_insn_before_noloc, emit_insn_after_1,
	emit_insn_after_noloc): Added basic block parameter and threaded
	it to subcalls.
	(emit_jump_insn_before_noloc,
	emit_call_insn_before_noloc, emit_barrier_before,
	emit_label_before, emit_note_before, emit_call_insn_after_noloc,
	emit_jump_insn_after_noloc, emit_label_after, emit_note_after,
	emit_insn_after_setloc, emit_insn_before_setloc): Add NULL basic
	block parameter to certain subcalls.
	(set_unique_reg_note): Now calls df_notes_rescan if REG_EQUAL or
	REG_EQUIV notes change.
	* loop-invariant.c (check_invariant_table_size,
	hash_invariant_expr_1, invariant_expr_equal_p, find_defs,
	check_dependencies, record_uses, find_invariants_to_move,
	move_invariant_reg, fail, free_inv_motion_data,
	move_loop_invariants):	Removed df parameter and changed
	calls to df_ routines to support new incremental scanning.
	* subregs_init (initialize_uninitialized_subregs): Removed df
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	* loop-iv.c (iv_current_loop_df): Deleted function.
	(check_iv_ref_table_size, clear_iv_info, iv_analysis_loop_init,
	latch_dominating_def, iv_get_reaching_def, iv_get_reaching_def,
	iv_analyze, iv_analyze_result, biv_p, iv_analysis_done): Removed df
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	* regclass.c (regclass_init): Insert call to recalculate the
	effects of changing regs_ever_live.
	(init_reg_autoinc):  Changed REGNO to SET_REGNO.
	* rtl.h (REGNO): Changed so that it cannot appear on lhs.
	(SET_REGNO): New macro.
	(rhs_regno): New function.
	(basic_block): New forward declaration.
	* integrate.c (allocate_initial_values): Changed REGNO to
	SET_REGNO and removed df parameter and changed calls to df_
	routines to support new incremental scanning.
	* combine.c (set_nonzero_bits_and_sign_copies, subst,
	reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
	get_last_value_validate, get_last_value, reg_dead_at_p,
	create_log_links, create_log_links, rest_of_handle_combine,
	pass_combine): Removed df parameter and changed calls to df_
	routines to support new incremental scanning.
	* stack-ptr-mod.c (notice_stack_pointer_modification): Removed df
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	* resource.c (mark_target_live_regs): Removed df
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	* resource.h (mark_target_live_regs): Removed df
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	* cfgloop.h (iv_current_loop_df): Removed.
	* df-problems.c (df_get_live_in, df_get_live_out,
	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_start_dump,
	df_ru_top_dump, df_ru_bottom_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_start_dump, df_rd_top_dump, df_rd_bottom_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_local_finalize,
	df_lr_free, df_lr_simulate_artificial_refs_at_end,
	df_lr_simulate_one_insn, df_lr_top_dump, df_lr_bottom_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_confluence_n,
	df_ur_transfer_function, df_ur_free, df_ur_top_dump,
	df_ur_bottom_dump, df_ur_add_problem, df_live_get_bb_info,
	df_live_set_bb_info, df_live_free_bb_info, df_live_alloc,
	df_live_local_finalize, df_live_free, df_live_top_dump,
	df_live_add_problem, df_urec_get_bb_info, df_urec_set_bb_info,
	df_urec_free_bb_info, df_urec_alloc, 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, df_urec_add_problem,
	df_chain_create, df_chain_unlink, df_chain_copy,
	df_chain_remove_problem, df_chain_alloc, df_chain_reset,
	df_chain_create_bb_process_use, df_chain_create_bb,
	df_chain_finalize, df_chain_free, df_chain_start_dump,
	df_chain_add_problem, df_ri_alloc, df_kill_notes,
	df_set_dead_notes_for_mw, df_set_unused_notes_for_mw,
	df_create_unused_note, df_ri_bb_compute, df_ri_compute,
	df_ri_free, df_ri_start_dump, df_ri_add_problem,
	df_ri_get_setjmp_crosses): Removed df and dflow parameters and
	changed calls to df_ routines to support new incremental scanning.
	(df_chain_unlink_1, df_chain_fully_remove_problem): New function.
	* reg-stack.c (reg_to_stack): Removed df parameter and changed
	calls to df_ routines to support new incremental scanning.
	* Makefile.in (rtlanal.o, expr.o, expmed.o, cse.o, gcse.o,
	regclass.o, caller-save.o, stack-ptr-mod.o, final.o): Added df.h.
	(reorg.o): Deleted df.h.
	* sched-rgn.c (check_live_1, update_live_1, schedule_insns):
	Removed df parameter and changed calls to df_ routines to support
	new incremental scanning.
	* basic-block.h (forward for basic_block): Moved to rtl.h.
	* passes.c (pass_df_initialize, pass_df_finish): New passes.
	(execute_todo): Changed TODO_df_finish.
	* struct-equiv.c (insns_match_p, struct_equiv_init): Removed df
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	* config/frv/frv.c (frv_function_prologue, frv_int_to_acc):
	Changed REGNO to SET_REGNO.
	(frv_reorder_packet): Added null basic block parm to
	add_insn_before.
	* config/i386/i386.c (ix86_eax_live_at_start_p): Removed df
	parameter and changed calls to df_ routines to support new
	incremental scanning.
	(ix86_expand_prologue, ix86_output_function_epilogue):
	Changed REGNO to SET_REGNO.
	* config/ia64/ia64.c (emit_predicate_relation_info, ia64_reorg):
	Removed df parameter and changed calls to df_ routines to support
	new incremental scanning.
	* config/mips/mips.c (mips_expand_prologue): Changed REGNO to
	SET_REGNO.
	* cfgrtl.c (commit_one_edge_insertion, rtl_dump_bb,
	print_rtl_with_bb, cfg_layout_merge_blocks,
	insert_insn_end_bb_new): Added bb parameter to insn insert calls.
	* dce.c (prescan_insns_for_dce): Removed fast parameter.
	(init_dce, end_dce, mark_artificial_uses, mark_reg_dependencies,
	end_fast_dce, dce_process_block, fast_dce, run_fast_df_dce,
	rs_init, rs_confluence, rs_transfer_function, dump_stores,
	record_store, mark_dependent_stores, prescan_insns_for_dse,
	rest_of_handle_dse): Removed df parameter and changed calls to df_
	routines to support new incremental scanning.
	(rest_of_handle_dce, gate_dce, run_dce, pass_rtl_dce): Deleted.
	(delete_corresponding_reg_equal_notes): Renamed to
	delete_corresponding_reg_eq_notes and made to process both kinds
	of notes.
	(delete_unmarked_insns): Changed call to
	delete_corresponding_reg_eq_notes.
	* dce.h (run_fast_df_dce): Removed df parameter.
	* reload1.c (compute_use_by_pseudos, reload): Removed df parameter
	and changed calls to df_ routines to support new incremental
	scanning.
	(alter_reg): Changed REGNO to SET_REGNO.


2006-12-07  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/predicates.md (lwa_operand): Allow PRE_MODIFY
	indexed address.
	* config/rs6000/rs6000-protos.h (legitimate_indexed_address_p):
	Declare.
	* config/rs6000/rs6000.c (legitimate_indexed_address_p): Remove
	static.

2006-12-07  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/predicates.md (lwa_operand): Exclude PRE_MODIFY
	addresses.

2006-12-01  Seongbae Park <seongbae.park@gmail.com>

  	* dbgcnt.def: New counters
	* postreload-gcse.c (delete_redundant_insns_1): New
	debug counter point.
	* postreload.c (reload_cse_move2add, gate_handle_postreload):
	New debug counter point.
	* auto-inc-dec.c (move_notes): Removed.
	(move_dead_notes): New function.
	(attempt_change): Call move_dead_notes(). Add missing dependency check.
	* haifa-sched.c (schedule_block): New debug counter point.
	* cse.c (delete_trivially_dead_insns): New debug counter point.
	* gcse.c (pre_delete): New debug counter point.
	* Makefile.in: Adding dependency on DBGCNT_H.
	* sched-rgn.c (schedule_region): New debug counter point.
	* dce.c (delete_corresponding_reg_equal_notes): New function
	(delete_unmarked_insns): Call delete_corresponding_reg_equal_notes.


2006-11-28  Seongbae Park <seongbae.park@gmail.com>

	* dbgcnt.def: Updated comments. Added new counters.
	* auto-inc-dec.c (try_merge): Debug counter.
	* global.c (global_conflicts): Use DF_RA_LIVE_TOP() instead of
	df_urec_get_live_at_top().
	* dbgcnt.c (count, limit): Use dbgcnt.def.
	(dbg_cnt_is_enabled): New function.
	(dbg_cnt): Use dbg_cnt_is_enabled().
	* local-alloc.c (block_alloc): Use DF_RA_LIVE_TOP instead of LIVE_IN.
	Add a debug counter.
	* df.h (DF_RA_LIVE_TOP): New Macro. Remove df_urec_get_live_at_top.
	(struct df_rd_bb_info): Added new fields ADEF, AUSE and TOP.
	(struct df_urec_bb_info): Added new field TOP.
	* loop-iv.c (iv_analyze_def): Added REG_P check.
	* df-problems.c (df_lr_free_bb_info): Free new fields AUSE, ADEF and
	TOP.
	(df_lr_alloc): Allocate new fields TOP, ADEF, AUSE.
	(df_lr_bb_local_compute): Compute ADEF and AUSE.
	(df_lr_transfer_function): Compute TOP, and then IN based on TOP, ADEF
	and AUSE.
	(df_lr_free): Free new fields AUSE, ADEF and TOP.
	(df_ur_bb_local_compute): Partial/conditional defs don't hide
	earlier defs.
	(df_urec_alloc): Allocate new field TOP.
	(df_urec_local_finalize): Calculate TOP as well as IN.
	(df_urec_free): Free new field TOP.
	(df_urec_get_live_at_top): Removed.
	* Makefile.in (auto-inc-dec.o, local-alloc.o, sched-rgn.o,
	sched-ebb.o, recog.o): Added dependency on DBGCNT_H.
	* sched-rgn.c (schedule_insns, gate_handle_sched, gate_handle_sched2):
	Added debug counter.
	* config/ia64/ia64.c (enum ia64_frame_regs): New enum.
	(struct ia64_frame_info): Changed register fields to use an array
	index by enum.
	(emitted_frame_related_regs): New static variable.
	(reg_emitted, get_reg, is_emitted): New function.
	(ia64_reload_gp): Use new enum.
	(find_gr_spill): Added a new param. Use emitted_frame_related_regs.
	(ia64_computea_frame_size, ia64_hard_regno_rename_ok,
	ia64_epilogue_uses):
	Use emitted_frame_related_regs.
	(ia64_expand_prologue): Extra deubg output. Use new enum.
	(ia64_expand_epilogue, ia64_direct_return, ia64_split_return_addr_rtx,
	ia64_output_function_prologue, ia64_output_function_epilogue,
	process_set):
	Use new enum.
	(ia64_init_expanders): New function.
	(ia64_reorg): New debug counter.
	* config/ia64/ia64.h (INIT_EXPANDERS): New call to
	ia64_init_expanders.



2006-11-18  Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree-pass.h (print_current_pass, debug_pass): New functions.
	* passes.c (print_current_pass, debug_pass): New functions.
	(exec_todo): Changed call to df_verify_blocks.
	(current_pass): New variable.
	* auto-inc-dec.c (attempt_change): Removed redundant call to
	df_insn_rescan and added debugging.
	(find_inc): Added debugging and fixed post-inc/dec bug.
	(merge_in_block): Fixed post-inc/dec bug.
	* dbgcnt.c: Fixed comments.
	* dbgcnt.c: Fixed comments.
	* loop-init.c (rtl_unroll_and_peel_loops): Added debugging.
	* loop-invariant.c (find_defs): Added debugging.
	* loop-iv.c (iv_analysis_loop_init): Added debugging.
	* df-scan.c (df_ref): Added parameter to control the deletion of
	chains.
	(df_reg_chain_unlink): Take care not to delete non existent refs.
	(df_ref_remove): Changed call to df_reg_chain_unlink.
	(df_ref_chain_delete_du_chain, df_ref_chain_delete,
	df_mw_hardreg_chain_delete): New function
	(df_insn_delete): Now calls df_ref_chain_delete_du_chain,
	df_ref_chain_delete, df_mw_hardreg_chain_delete.
	(df_bb_delete): Now calls df_ref_chain_delete_du_chain,
	df_ref_chain_delete.
	(df_insn_rescan): Now supports DF_NO_INSN_RESCAN and added
	debugging.
	(df_ref_verify): Added code to ignore refs from notes in the table
	of refs.
	(df_bb_verify, df_exit_block_bitmap_verify,
	df_entry_block_bitmap_verify, df_verify_blocks): Made it possible
	to abort closer to source of problem.
	(df_verify_blocks): Removed dflow parameter.  * df-core.c
	(df_insn_uid_debug, df_ref_debug): Fixed debugging.  *
	df-problems.c (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
	df_ur_bb_info, df_live_bb_info, df_urec_bb_info): Made tolerant of
	newly added basic blocks.
	(df_chain_alloc): Tolerant of missing refs in structure.
	(df_chain_insn_reset, df_chain_bb_reset, df_chain_remove_problem):
	Deleted function.
	(df_chain_alloc): New function.
	(df_chain_reset): Now just calls df_chain_remove_problem.
	* df.h: (DF_NO_REGS_EVER_LIVE): New flag.

2006-11-17  Kenneth Zadeck <zadeck@naturalbridge.com>

	* fwprop.c Removed bad version.
	* tree-ssa-pre.c (init_pre): Added parameter to post_order_compute.

2006-11-15  Seongbae Park <seongbae.park@gmail.com>

	* df-scan.c (df_insn_refs_collect): Code cleanup
	for COND_EXEC handling.
	(df_need_static_chain_reg): New function.
	(df_get_entry_block_def_set): Check and add the static chain register.
	* ifcvt.c (if_convert): Don't ignore the return value
	of find_if_header.


2006-11-14  Seongbae Park <seongbae.park@gmail.com>

	* function.c (thread_prologue_and_epilogue_insns):
	Update regs_ever_live during df scanning.

2006-11-14  Seongbae Park <seongbae.park@gmail.com>

 	* dbgcnt.c, dbgcnt.h: Added missing copyright notice. Now uses
	dbgcnt.def for the list of counters.
	* Makefile.in: Add missing dbgcnt.h header file dependencies.
	* dbgcnt.def: New file.

2006-11-14  Seongbae Park <seongbae.park@gmail.com>

	* tree-tailcall.c (execute_tail_recursion): Added dbg_cnt().
	* df-scan.c (df_mw_hardreg_find_hardreg, df_get_conditional_uses,
	df_get_call_refs):
	New function.
	(df_refs_add_to_chains): Don't add duplicate mw_hardreg.
	(df_ins_refs_collect): Refactored to use df_get_conditional_uses
	and df_get_call_refs.
	(df_insn_refs_verify): Find the matching mw_hardreg.
	* dbgcnt.c (dbg_cnt_process_opt): Fix a bug handling multiple
	counters. Add a new debug counter tail_call.
	* dbgcnt.h (enum debug_counter): Added a new counter tail_call.
	* calls.c (expand_call): Check dbg_cnt(tail_call).
	* df_problems.c (df_create_unused_note, df_ri_bb_compute):
	Handle NULL LOC case.
	* dce.c (init_dce): Add a debug dump.


2006-11-14  Paolo Bonzini  <bonzini@gnu.org>

	Merge from mainline:

	2006-11-14  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/29798

	* fwprop.c (use_killed_between): Check that DEF_INSN dominates
	TARGET_INSN before any other check.
	(fwprop_init): Always calculate dominators.
	(fwprop_done): Always free them.

2006-11-13  Seongbae Park <seongbae.park@gmail.com>
	    Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree-pass.h (TODO_df_verify_scan): New flag.
	* auto-inc-def.c (find_inc): Added code to check for case where
	output of inc is not overwritten by mem to be combined.
	* df-scan.c (df_scan_set_bb_info): Now increases the size of the
	array if necessary.
	(df_scan_blocks): Added flag to avoid recomputing regs_ever_live.
	(df_insn_rescan): Fixed missing case for rescanning.
	(df_insn_refs_collect): Special case for sibling calls.  Changed
	to not set up loc field with address of regno_reg_rtx element.
	(df_entry_block_defs_collect, df_exit_block_uses_collect,
	df_bb_refs_collect): Changed to not set up loc field with address
	of regno_reg_rtx element.
	(df_bb_refs_record): Removed dflow parameter and added scan_insn
	parameter. Changed call to df_bb_refs_record.
	(df_compute_regs_ever_live): New function.
	(df_reg_chain_unmark): Made to accept NULL blocks parameter.
	(df_ref_chain_unmark): New function.
	(df_ref_verify):  Added abort_if_fail parameter.
	(df_insn_refs_verify): Added abort_if_fail and return_refs
	parameter and changed function to return bool.  Added code to
	unmark chains.
	(df_bb_refs_verify): Added abort_if_fail parameter and now returns
	nothing.
	(df_bb_verify): Changed to expect subroutines to abort.
	(df_verify_blocks): Now accepts NULL blocks parameter.
	* ifcvt.c (if_convert): Added more to dump_files.
	* (pass_rtl_ifcvt, pass_if_after_combine, pass_if_after_reload):
	added TODO_df_verify_scan.
	* opts.c (command_handle_option): New flag OPT_fdbg_cnt_
	* recog.c (confirm_change_group): Fixed updating of df scanning.
	* function.c (thread_prologue_and_epilogue_insns):
	Pass DF_NO_REGS_EVER_LIVE in df_init, and
	call df_compute_regs_ever_live after prologue is generated.
        * df.h (enum df_ref_flags): Added DF_REF_ARTIFICIAL.
	(enum df_changeable_flags): Added DF_NO_REGS_EVER_LIVE.
	(DF_REF_IS_ARTIFICIAL): Added checking for the flag DF_REF_ARTIFICIAL.
	* cfgcleanup.c: Fixed typo in comment.
     	* common.opt: New flag -fdbg-cnt=
	* combine.c (try_combine): Added calls to keep df_scanning up to
	date.
	(pass_combine): Added TODO_df_verify_scan.
	* Makefile.in: New gcc object file dbgcnt.o
	* passes.c (execute_todo): Added support for TODO_df_verify_scan.
	* config/ia64/ia64.c (ia64_split_return_addr_rtx): Finalize
	the frame layout early.
	(ia64_expand_prologue): Pass DF_NO_REGS_EVER_LIVE to df_init().
	* cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
	cfg_layout_merge_blocks): Added debugging.
	* dbgcnt.c, dbgcnt.h: New files
	* dce.c (delete_unmarked_insns): Use dbg_cnt.
	(delete_insn_p): Do not delete unspecs.

2006-11-10  Seongbae Park <seongbae.park@gmail.com>

	* fwprop.c (forward_propagate_into): Use DF_REF_IS_ARTIFICIAL()
	instead of DF_REF_ARTIFICIAL flag.
	* df-scan.c (df_ref_record, df_def_record_1): Remove record_live
	(df_get_exit_block_use_set, df_get_entry_block_def_set):
	Renamed from df_get_{exit_block_uses,entry_block_defs}.
	(df_compute_regs_ever_live, df_ref_chain_change_bb,
	df_ref_is_record_live, df_reg_chain_unmark, df_ref_chain_free):
	New functions.
	(df_reg_chains): New structure
	(df_ref_add_to_chains):
	(df_scan_blocks): Add call to df_compute_regs_ever_live().
	(df_ref_create): Remove record_live, and replace DF_REF_ARTIFICIAL
	flag use with DF_REF_IS_ARTIFICIAL () macro.
	(df_insn_rescan): Avoid marking blocks dirty if nothing changed.
	(df_insn_change_bb): Refactored to use df_ref_change_bb.
	(df_ref_is_equal): Now ignores DF_REF_MARKER flag.
	(df_ref_chain_find_ref, df_reg_chain_find_reg): Fix the order of
	parameters to the evaluation function.
	(df_ref_find_chains): Avoid early evaluation of certain fields.
	(df_ref_add_to_chains): Remove update to regs_ever_live.
	(df_refs_add_to_chains): Use DF_REF_NEXT_REF macro.
	(df_ref_record): Remove DF_REF_RECORD_LIVE.
	(df_insn_refs_record): Now takes the reference list to be added as
	an argument.
	(df_bb_refs_record): Handles entry and exit block cases.
	(df_bb_refs_collect): Removed DF_REF_ARTIFICIAL.
	(df_refs_record): Scan entry and exit blocks first.
	(df_ref_verify): Takes reg_chain cache as an argument,
	verifies hardreg chain.
	(df_exit_block_bitmap_verify): Renamed from df_exit_block_verify
	(df_entry-block_bitmap_verify): Renamed from df_entry_block_verify
	(df_verify_blocks): Implement regchain cache. Assert immediately
	when verification fails in any subfunctions.
	* df.h (enum df_ref_flags): Remove DF_REF_ARTIFICIAL and renumber the
	enum.
	(DF_REF_IS_ARTIFICIAL, DF_REF_MARK, DF_REF_UNMARK, DF_REF_IS_MARKED,
	DF_INSN_UID_SAFE_GET): New macros:


2006-11-08  Kenneth Zadeck <zadeck@naturalbridge.com>

	* auto-inc-dec.c (attempt_change): Added code to properly maintain
	reg_next_inc_use when inc insns are deleted.
	(merge_in_block): Added debugging and changed to skip deleted
	instructions.
	(scan_dflow): Removed variable.
	* df-scan.c (df_scan_alloc): Always processes entire function.
	(df_scan_free): Removed df->blocks_to_scan.
	(df_scan_blocks): Removed blocks_parameter.  Now scan entire
	function.
	(df_insn_rescan, df_insn_change_bb): Renamed df_mark_bb_dirty to
	df_set_bb_dirty.
	* df.h (blocks_to_scan): Removed variable.
	* df-core.c (df_analyze): Add call to df_scan_alloc.  Removed
	df->blocks_to_scan.
	(df_get_bb_dirty): New function.
	(df_mark_bb_dirty): Renamed to df_set_bb_dirty.
	(df_compact_blocks): Removed df->blocks_to_scan.
	(df_bb_replace): Added check to make sure there was no block at
	old_index and fixed updating bugs.
	* ifcvt.c (cond_exec_process_if_block,
	noce_process_if_block, cond_move_process_if_block,
	process_if_block, merge_if_block, find_if_header,
	find_cond_trap, find_if_case_1, find_if_case_2, if_convert):
	Removed modified variable.
	(find_if_header, find_cond_trap, find_if_case_1, find_if_case_2,
	if_convert): Replaced BB_DIRTY with df_set_bb_dirty and
	df_get_bb_dirty.
	* recog.c (confirm_change_group): Ditto.
	* emit_rtl (remove_insn,, reorder_insns, emit_insn_after_1): Ditto.
	* cfgcleanup.c (try_forward_edges, try_crossjump_to_edge,
	merge_blocks_move_predecessor_nojumps, try_crossjump_bb): Ditto.
      	* modulo-sched.c (sms_schedule): Ditto.
	* cfgrtl.c (rtl_split_block, rtl_redirect_edge_and_branch,
	rtl_redirect_edge_and_branch_force, purge_dead_edges,
	cfg_layout_redirect_edge_and_branch): Ditto.
	* basic_block.h (BB_DIRTY): Removed.


2006-11-07  Kenneth Zadeck <zadeck@naturalbridge.com>

	* cfg.c (compact_blocks): Make df aware when blocks are moved around.
	* auto-inc-dec.c (attempt_change): Removed explicit df updating.
	* ifcvt.c (cond_exec_process_if_block,
	noce_mem_write_may_trap_or_fault_p, noce_process_if_block,
	cond_move_process_if_block, process_if_block, find_if_header):
	Removed unused df parameter.
	(merge_if_block, find_cond_trap, find_if_case_1, find_if_case_2):
	Removed explicit df updating.
	(if_convert): Rearranged calls to df.
	(struct tree_opt_pass pass_rtl_ifcvt, pass_if_after_combine,
	pass_if_after_reload): Added TODO_verify_flow.
	* recog.c (delete_insn_chain_and_flow): Deleted function.
	(peephole2_optimize): Removed unused dataflow problem and variable
	and delete explicit df updating calls.
	(pass_split_before_sched2): Added TODO_verify_flow.
	* emit_rtl (add_insn_after, add_insn_before, remove_insn,
	reorder_insns, emit_insn_after_1): Added explicit updating of df.
	(set_insn_deleted): New function.
	* loop_invariant.c (invariant_table_size, invariant_table): New
	variables.
	(check_invariant_table_size): New function.
	(invariant_for_use, find_defs, check_dependency,
	find_invariant_insn, free_inv_motion_data, move_loop_invariants):
	Replaced DF_REF_DATA with invariant_table.
	* loop-iv.c (clean_slate, iv_ref_table_size, iv_ref_table): New
	variables.
	(check_iv_ref_table_size): New function.
	(clear_iv_info, iv_analysis_loop_init, record_iv, iv_analyze_def,
	iv_analysis_done): Replaced DF_REF_DATA with iv_ref_table.
	* cfglayout.c (fixup_reorder_chain): Now uses compact_blocks.
	* rtl.h (SET_INSN_DELETED): now calls set_insn_deleted.
	* Makefile.in: (emit-rtl.o): Now dependent on df.h.
	* sched-rgn.c (pass_sched, pass_sched2): Added TODO_verify_flow.
	* cfgrtl.c (rtl_delete_block, update_bb_for_insn,
	rtl_merge_blocks, try_redirect_by_replacing_jump,
	cfg_layout_merge_blocks): Added explicit updating of df.
	* dce.c (delete_unmarked_insns): Removed df_delete parameter and
	explicit updating of df info.
	(rest_of_handle_dce, rest_of_handle_dse): Added call to
	df_remove_problem.
	(fast_dce, fast_dce, rest_of_handle_fast_dce, run_fast_df_dce):
	Removed df_delete parameter.
	* df-scan.c (df_scan_free_bb_info): Changed call.
	(df_scan_alloc, df_scan_free): Added setting of out_of_date_transfer_functions.
	(df_problem problem_SCAN): Added problem removal function.
	(df_scan_blocks): Added calls to df_refs_delete and df_bb_delete.
	(df_insn_create_insn_record): Added call to df_grow_insn_info.
	(df_insn_refs_delete): Renamed to df_insn_delete and removed dflow
	parameter.
	(df_bb_refs_delete): Renamed to df_bb_delete and removed dflow
	parameter.
	(df_refs_delete): Deleted.
	(df_insn_rescan, df_insn_change_bb): New function.
	(df_ref_create_structure): Removed DF_REF_DATA.
	* df-core.c (df_add_problem): Changed to use new form of problem
	dependency.
	(df_remove_problem): New function.
	(df_set_blocks): Does a better job of updating the proper blocks.
	(df_delete_basic_block): Removed df parameter and checks to see if
	block already had infomation.
	(df_get_bb_info): Returns NULL if no info was there.
	(df_set_bb_info): Checks to make sure problem block information.
	(df_mark_solutions_dirty, df_mark_bb_dirty, df_compact_blocks,
	df_bb_replace): New functions.
	* df.h (df_remove_problem_function): New typedef.
	(df_dependent_problem_function): Deleted typedef.
	(df_problem): Added remove_problem_fun and dependent_problem and
	deleted dependent_problem_fun.
	(df_ref.data): Removed.
	(df.out_of_date_transfer_functions, df.solutions_dirty): New
	variables.
	(DF_REF_DATA): Deleted macro.
	* df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
	problem_LIVE, problem_UREC, problem_CHAIN, problem_RI): Added
	problem removal function and changed dependent_function.

2006-11-04  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-scan.c (df_scan_start_dump): Changed print routine to print
	hard register names.
	* df-core.c (df_print_regset): New function.
	* global.c (global_alloc): Do not recompute register infomation
	when recomputing dataflow.
	* df.h (DF_RI_NO_UPDATE): New flag.
	* df-problems.c (df_lr_top_dump, df_lr_bottom_dump,
	df_ur_top_dump, df_ur_bottom_dump, df_live_top_dump,
	df_live_bottom_dump, df_urec_top_dump, df_urec_bottom_dump):
	Changed to use df_print_regset.
	(df_ri_alloc, df_ri_compute): Changed to not update if
	DF_RI_NO_UPDATE flag.
	* cfgrtl.c (print_rtl_with_bb): Changed to print preds and
	successor blocks in dump file.

2006-11-03  Seongbae Park <seongbae.park@gmail.com>

	* global.c (global_conflicts): Use df_urec_get_live_at_top ()
	instead of DF_RA_LIVE_IN ().
	* function.h: Add a declaration for current_function_assembler_name().
	* function.c (current_function_assembler_name):  New function.
	(thread_prologue_and_epilogue_insns): Insert rtx_USE when profiling.
	* df.h (DF_REF_FLAGS_CLEAR): New macro.
	(df_urec_get_live_at_top): New function declaration.
	* df-problems.c (df_urec_get_live_at_top): New function.

2006-10-28  Seongbae Park <seongbae.park@gmail.com>

	* df.h (df_rescan_blocks): Renamed to df_scan_blocks.
	* df-core.c (df_analyze): Use df_scan_blocks() instead.
	* ifcvt.c (if_convert): Use df_scan_blocks() instead.
	* df-scan.c
	(df_ref_record, df_def_record_1, df_defs_record, df_uses_record):
	They are made side-effect free.
	(df_ref_find_chains, df_ref_add_to_chains, df_refs_add_to_chains,
	df_ref_is_equal, df_ref_chain_find_ref, df_reg_chain_find_ref,
	df_scan_start_block, df_check_and_grow_ref_info,
	df_insn_refs_collect, df_bb_refs_collect,
	df_get_entry_block_defs, df_get_exit_block_uses,
	df_ref_verify, df_refs_verified, df_ref_chain_verify,
	df_reg_chain_clear_verified, df_bb_refs_verify,
	df_exit_block_verify, df_entry_block_verify, df_verify_blocks):
	New functions.
	(df_ref_create_structure): Initializes the fields
	of df_ref and does not connect it to various chains.
	(df_insn_refs_record, df_bb_refs_record, df_record_entry_block_defs,
	 df_record_exit_block_uses, df_refs_record):
	Separate side-effects (adding chains and updating regs_ever_live)
	from traversing and finding the refs in the insn/basic block.
	(df_ref_create): Separate calls for creating the ref and add it
	to the chains.

2006-10-24  Paolo Bonzini  <bonzinI@gnu.rg>

	* ddg.c (add_deps_for_def, add_deps_for_use): Use accessor macros.
	* df.h (DF_REF_STRIPPED, DF_SUBREGS): Remove.
	* df-core.c: Don't document scanning flags.
	* df-scan.c (df_ref_record): Always behave as if DF_SUBREGS was set.
	* df-problems.c (df_lr_bb_local_compute): Strip SUBREGs with
	DF_REF_REAL_REG.
	(df_chain_start_dump): Don't dump DF_REF_STRIPPED.
	(df_create_unused_note, df_ri_bb_compute): Don't "inline"
	DF_REF_REAL_LOC.
	* fwprop.c (fwprop_init): Do not pass DF_SUBREGS.
	* loop-invariant.c (record_use): Don't strip SUBREGs.
	(record_uses): Do it here with DF_REF_REAL_LOC.
	* loop-iv.c (iv_analyze_def): Only allow REGs.  Replace previous
	way to check for SUBREGs with an assertion.

2006-10-19  Kenneth Zadeck <zadeck@naturalbridge.com>

	* sched-ebb.c (schedule_ebbs): Changed flags to df_init.
	* fwprop.c (use_killed_between): Changed to use proper macros.
	(All_uses_available_at, try_fwprop_subst): Added support for
	separated reg_equiv/equal df_refs.
	(fwprop_init): Changed flags to df_init.
	(fwprop, fwprop_addr): Changed call to df_reorganize_refs to
	df_maybe_reorganize_use_refs.
	* see.c (see_initialize_data_structures): Changed flags to
	df_init.
	* ddg.c (build_inter_loop_deps): Now skips refs with
	reg_equal/equiv notes.
	* modulo-sched.c (sms_schedule): Changed flags to df_init.
	* web.c (union_defs): Added support for separated reg_equiv/equal
	df_refs.
	(web_main): Changed flags to df_init and changed call to
	df_reorganize_refs to df_maybe_reorganize_(use|def)_refs.
	* loop_invariant.c (check_dependency): New function split out from
	check_dependencies.
	(record_uses): Added support for separated reg_equiv/equal
	df_refs.
	(move_loop_invariants): Changed flags to df_init.
	* loop-iv.c (iv_analysis_loop_init): Changed flags to df_init.
	(latch_dominating_def): Changed to use proper macros.
	* combine.c (create_log_links): Ditto.
	* sched-rgn.c (schedule_insns): Changed flags to df_init.
	* dce.c (dce_process_block): Changed to use proper macros.
	* df.h (df_insn_info.eq_uses): New field.
	(DF_EQUIV_NOTES): Deleted permanent_flag.
	(DF_EQ_NOTES): New changeable_flag.
	(df_ref_info.regs_size, df_ref_info.regs_inited): Moved to df
	structure.
	(df.def_regs, df.use_regs, df.eq_use_regs): New fields.
	(df_ref_info.begin): Moved from df_reg_info.
	(DF_DEFS_COUNT, DF_DEFS_BEGIN, DF_DEFS_COUNT, DF_DEFS_BEGIN,
	DF_REG_EQ_USE_GET, DF_REG_EQ_USE_CHAIN, DF_REG_EQ_USE_COUNT): New
	macros.
	(DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_CHAIN, DF_REG_DEF_COUNT,
	DF_REG_USE_GET, DF_REG_USE_CHAIN, DF_REG_USE_COUNT): Redefined.
	(df_reorganize_refs): Split into df_maybe_reorganize_use_refs and
	df_maybe_reorganize_def_refs.
	(df_ref_info.refs_organized): Split into refs_organized_alone and
	refs_organized_with_eq_uses.
	* df-problems.c (df_ru_bb_local_compute_process_def,
	df_ru_local_compute, df_ru_confluence_n, df_ru_transfer_function,
	df_ru_start_dump, df_rd_bb_local_compute_process_def,
	df_rd_local_compute, df_rd_confluence_n, df_rd_transfer_function,
	df_rd_start_dump, df_chain_alloc, df_chain_insn_reset,
	df_chain_create_bb_process_use, df_chain_create_bb,
	df_chain_start_dump): Changed to use proper macros.
	(df_ru_bb_local_compute, df_chain_insn_reset, df_chain_create_bb):
	Added support for separated reg_equiv/equal df_refs.
	(df_ru_local_compute, df_rd_local_compute, df_chain_alloc): Split
	into df_maybe_reorganize_use_refs and
	df_maybe_reorganize_def_refs.
	* df-scan.c (df_grow_reg_info, df_rescan_blocks, df_ref_create):
	Changed to process all data structures dependent on number of
	registers at once.
	(df_scan_free_internal, df_scan_alloc): Changed to process new
	data structures properly.
	(df_rescan_blocks): Split into refs_organized_alone and
	refs_organized_with_eq_uses.
	(df_reg_chain_unlink): Remove decrement of bitmap_size fields.
	(df_reg_chain_unlink, df_insn_refs_delete,
	df_ref_create_structure): Changed to use proper macros.
	(df_reg_chain_unlink, df_ref_remove, df_insn_refs_delete,
	df_reorganize_refs, df_ref_create_structure, df_insn_refs_record):
	Added support for separated reg_equiv/equal df_refs.
	(df_maybe_reorganize_use_refs, df_maybe_reorganize_def_refs): New
	functions.
	* df-core.c (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_dump_start,
	df_regno_debug): Changed to use proper macros.
	(df_find_use, df_insn_uid_debug, df_insn_uid_debug,
	df_insn_debug_regno, df_insn_debug_regno): Added support for
	separated reg_equiv/equal df_refs.


2006-10-18  Paolo Bonzini  <bonzini@gnu.org>

	* stack-ptr-mod.c (pass_stack_ptr_mod): Don't set pass name.
	* final.c (pass_no_new_pseudos): Don't set pass name.

	* fwprop.c (all_uses_available_at): Use DF_REF_REG.
	(forward_propagate_into): Discard artificial defs/uses.
	(pass_rtl_fwprop_addr): Add TODO_df_finish.

2006-10-03  Richard Sandiford  <richard@codesourcery.com>

	* cselib.h (cselib_discard_hook): Declare.
	* cselib.c (cselib_discard_hook): New variable.
	(remove_useless_values): Call it before freeing useless values.
	* dce.c (base_address): New union.
	(store_base_info): Change the type of the base field from "rtx"
	to "union base_address".
	(local_invariant_stores, local_value_stores): New variables.
	(store_base_eq): Split into...
	(invariant_store_base_eq, value_store_base_eq): ...these new functions.
	(store_base_hash): Split into...
	(invariant_store_base_hash, value_store_base_hash): ...these
	new functions.
	(store_base_del): Fix formatting.
	(init_store_group): Split into...
	(init_invariant_store_group, init_value_store_group): ...these
	new functions.
	(init_dse): Use init_invariant_store_group instead of init_store_group.
	(get_canonical_address): Delete.
	(add_store_offset): Change the type of BASE from "rtx" to "union
	base_address *".
	(record_store): Remove the GROUP parameter.  Don't call
	get_canonical_address.  Store the base in a "union base_address" and
	add stores to either local_invariant_stores or local_value_stores.
	(record_stores): Remove the GROUP parameter and adjust the calls
	to record_store.
	(store_base_local): Add a parameter that indicates whether stores
	are invariant or cselib_vals.
	(invariant_store_base_local): New function.
	(value_store_base_local): Likewise.
	(value_store_base_useless): Likewise.
	(remove_useless_values): Likewise.
	(store_base_prune_needed): Adjust for store_base_info changes.
	(prescan_insns_for_dse): Remove the local group variable and use
	local_invariant_stores and local_value_stores instead.  Adjust the
	call to record_stores.  Use remove_useless_values as the
	cselib_discard_hook while processing a basic block.

2006-10-03  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>

 	* sched-ebb.c (ebb_head, ebb_tail, ebb_head_or_leaf_p): Removed.
	(begin_schedule_ready, schedule_ebb, ebb_head_or_leaf_p): Remove
	unnecessary argument, update all callers.
	(ebb_sched_info): Update initializer.
	(df): New static variable to keep dataflow info.
	(compute_jump_reg_dependencies): Use it instead of glat.
 	* haifa-sched.c (glat_start, glat_end, glat_size, init_glat,
	init_glat1, free_glat): Removed.
	(generate_recovery_code, begin_speculative_block,
	add_to_speculative_block, init_before_recovery,
	create_recovery_block, create_check_block_twin,
	schedule_block, sched_init, add_block): Remove
	unnecessary argument, update all callers.
 	* modulo-sched.c (sms_sched_info): Update initializer.
	(sms_schedule): Update call to sched_init ().
 	* sched-int.h (struct sched_info): Remove unnecessary argument and
	update all callers of field 'begin_schedule_ready'.  Remove field
	'region_head_or_leaf_p'.
	(glat_start, glat_end): Remove prototypes.
	(enum SCHED_FLAGS): Remove USE_GLAT, DETACH_LIFE_INFO.  Use NEW_BBS
	instead.
	(schedule_block, sched_init, add_block, schedule_region): Update
	prototypes.
	* sched-rgn.c (df, not_in_df): New static variables.
	(check_live_1, update_live_1, add_block1): Use them instead of glat.
	(begin_schedule_read, schedule_region): Remove unnecessary argument,
	update all callers.
	(region_head_or_leaf_p): Remove.
	(region_sched_info): Update initializer.
 	* config/ia64/ia64.c (set_sched_flags): Use NEW_BBS instead of
	DETACH_LIFE_INFO.

2006-10-01  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-scan.c (df_ref_record, df_insn_refs_record,
	df_bb_refs_record, df_refs_record, df_record_entry_block_defs):
	Removed DF_HARD_REGS flag.
	* df-core.c (comments): Ditto.
	* df.h (permanent_flags.DF_HARD_REFS): Removed.
	(changeable_flags.DF_NO_HARD_REGS): Added.
	* df-problems.c (df_rd_bb_local_compute_process_def,
	df_rd_bb_local_compute, df_chain_create_bb_process_use,
	df_chain_create_bb): Added support for DF_NO_HARD_REGS flag.
	* dce.c (init_dce): Removed DF_HARD_REFS flag.
	* reg_stack.c (reg_to_stack): Ditto.
	* sched_rgn.c (sched_insns): Ditto.
	* regrename.c (regrename_optimize): Ditto.
	* sched_ebb.c (schedule_ebbs): Ditto.
	* fwprop.c (fwprop_init): Ditto.
	* see.c (see_initialize_data_structures): Ditto.
	* auto_inc_dec.c (rest_of_handle_auto_inc_dec): Ditto.
	* mode-switching.c (optimize_mode_switching): Ditto.
	* modulo-sched.c (sms_schedule): Ditto.
	* ifcvt.c (if_convert): Ditto.
	* recog.c (peephole2_optimize): Ditto.
	* regmove.c (regmove_optimize, rest_of_handle_stack_adjustments):
	Ditto.
	* local_alloc.c (rest_of_handle_local_alloc): Ditto.
	* function.c (thread_prologue_and_epilogue_insns): Ditto.
	* rtl_factoring.c (rtl_sequabstr): Ditto.
	* bt_load.c (branch_target_load_optimize): Ditto.
	* loop_invariant.c (move_loop_invariants): Ditto.
	* subregs-init.c (initialize_uninitialized_subregs): Ditto.
	* loop-iv.c (iv_analysis_loop_init): Ditto.
	* combine.c (rest_of_handle_combine): Ditto.
	* web.c (web_main): Added DF_NO_HARD_REGS flag and changed loops
	to skip over hard regs.
	* reorg.c (dbr_schedule): Removed extra flags from
	df_*_add_problems calls.

2006-09-30  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-scan.c (problem_SCAN): Removed flags.
	(df_scan_add_problem): Ditto.
	(df_ref_record, df_insn_refs_record, df_bb_refs_record,
	df_refs_record, df_record_entry_block_defs,
	df_record_exit_block_uses ): Moved flags to df structure.
	* df-core.c (df_init): Added permanent_flags and changeable_flags.
	(df_add_problem): Removed flags parameter.
	(df_set_flags, df_clear_flags): Changed processing of flags.  *
	df.h (df_dependent_problem_function, struct df_problem): Removed
	flags.
	(DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS, DF_DU_CHAIN,
	DF_UD_CHAIN, DF_RI_LIFE, DF_RI_SETJMP): Changed to be fields in
	df_permanent_flags.
	(DF_LR_RUN_DCE): Changed to be fields in df_changeable_flags.
	(df_init, df_add_problem, df_set_flags, df_clear_flags,
	df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
	df_ur_add_problem, df_live_add_problem, df_urec_add_problem,
	df_chain_add_problem, df_ri_add_problem, df_scan_add_problem):
	Changed flag parameters.
	* df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
	problem_LIVE, problem_UREC, problem_CHAIN, problem_RI): Removed
	changeable flags field.
	(df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
	df_ur_add_problem, df_live_add_problem, df_urec_add_problem,
	df_chain_add_problem, df_ri_add_problem): Removed flags parameter.
	(df_lr_local_finalize, df_chain_alloc, df_chain_insn_reset,
	df_chain_bb_reset, df_chain_create_bb_process_use,
	df_chain_start_dump, df_ri_alloc, df_ri_bb_compute, df_ri_compute,
	df_ri_free): Changed location of flags.
	* dce.c (init_dce): Moved flags from df_*_add_problem to df_init.
	(fast_dce): Changed parameters to df_set_flags and df_clear_flags.
	* reg_stack.c (reg_to_stack): Moved flags from df_*_add_problem to df_init.
	* sched_rgn.c (sched_insns): Ditto.
	* regrename.c (regrename_optimize): Ditto.
	* sched_ebb.c (schedule_ebbs): Ditto.
	* fwprop.c (fwprop_init): Ditto.
	* see.c (see_initialize_data_structures): Ditto.
	* auto_inc_dec.c (rest_of_handle_auto_inc_dec): Ditto.
	* mode-switching.c (optimize_mode_switching): Ditto.
	* modulo-sched.c (sms_schedule): Ditto.
	* web.c (web_main): Ditto.
	* ifcvt.c (if_convert): Ditto.
	* recog.c (peephole2_optimize): Ditto.
	* regmove.c (regmove_optimize, rest_of_handle_stack_adjustments):
	Ditto.
	* local_alloc.c (rest_of_handle_local_alloc): Ditto.
	* function.c (thread_prologue_and_epilogue_insns): Ditto.
	* rtl_factoring.c (rtl_sequabstr): Ditto.
	* bt_load.c (branch_target_load_optimize): Ditto.
	* loop_invariant.c (move_loop_invariants): Ditto.
	* subregs-init.c (initialize_uninitialized_subregs): Ditto.
	* loop-iv.c (iv_analysis_loop_init): Ditto.
	* combine.c (rest_of_handle_combine): Ditto.

2006-08-04  Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree-pass.h (pass_rtl_dse): Split into pass_rtl_dse1,
	pass_rtl_dse2, pass_rtl_dse3.
	* passes.c (init_optimization_passes): Ditto.
	* timevar.def (TV_DSE): Split into TV_DSE1, TV_DSE2, and TV_DSE3.
	(TV_THREAD_PROLOGUE_AND_EPILOGUE): Made text shorter to improve
	readability.
	* df.core.c (df_init, df_finish1, df_analyze_problem, df_analyze):
	Made postorder and instance variable of df.
	(df_finish1): Made tolerant of being passed NULL instance.
	(df_get_n_blocks, df_get_postorder): New functions.
	* cfganal (post_order_compute): Added delete_unreachable
	parameter and code to delete unreachable blocks.
	* local_alloc (rest_of_handle_local_alloc): Removed unnecessary
	call to delete_unreachable_blocks.
	* df.h (postorder, n_blocks): New instance variables.
	(df_get_n_blocks, df_get_postorder): New functions.
	* sched-rgn.c (extend_rgns): Added extra parameter to
	post_order_compute.
	* basic-block.h (post_order_compute): Ditto.
	* dce.c (fast_dce, init_rs_dflow): Now uses postorder and n_blocks from df.
	(pass_rtl_dse): Split into pass_rtl_dse1,
	pass_rtl_dse2, pass_rtl_dse3.
	* sched-ebb.c (schedule-ebbs): Added return value.
	* haifa-sched.c (add_block): Made df parameter unused and fixed
	incorrect assert.

2006-08-01  Kenneth Zadeck <zadeck@naturalbridge.com>

	* sched-ebb.c (sched_ebbs): Now returns the df instance created.
	* rtl.h (sched_ebbs): Ditto.
	* recog.c (split_all_insns): Made public again so it can be called
	from ia64.c
	* rtl.h (split_all_insns): Ditto.
	* df-problems.c (df_ri_compute): Removed call to non existent
	function.
	* config/ia64/ia64.c (emit_predicate_relation_info): Added df
	parameter and removed rotten ref to global instance.
	(ia64_reorg): Added local instance of df and removed calls to non
	existent flow.c.

2006-07-26  Kenneth Zadeck <zadeck@naturalbridge.com>

	* regrename.c (regrename_optimize): Renamed df_clrur to df_live
	and removed df_finish call.
	(pass_regrename): Added TODO_df_finish flag.
	* sched-ebb.c (schedule_ebbs): Renamed df_clrur to df_live
	and removed df_finish call.
	* fwprop.c (fwprop_done): Removed df_finish call.
	(pass_rtl_fwprop): Added TODO_df_finish flag.
	* see.c (see_commit_changes): Removed unnecessary set to df.
	* postreload.c (rest_of_handle_postreload): Removed df_finish call.
	(pass_postreload_cse): Added TODO_df_finish flag.
	* tree-pass.h (TODO_df_finish): Added.
	* cfg.c (dump_bb_info): Added flow info to dumps
	(dump_reg_info): New function.
	(dump_flow_info): Moved reg info printing to dump_reg_info.
	* auto-inc-dec.c (rest_of_handle_auto_inc_dec): Renamed df_clrur to df_live
	and removed df_finish call.
	(pass_inc_dec): Added TODO_df_finish flag.
	* reorg.c (dbr_schedule): Renamed df_clrur to df_live
	and removed df_finish call.
	(pass_delay_slots): Added TODO_df_finish flag.
	* df-scan.c (df_scan_alloc): Added set to dflow->computed.
	(df_scan_dump): Renamed to df_scan_start_dump.
	(problem_SCAN): Updated for new dumpers.
	* haifa-sched.c (sched_finish): Removed df parameter and deleted
	call to df_finish.
	* df-core.c (ddf): Renamed to df_current_instance and made public.
	(df_init): Ditto and added check to make sure only one instance of
	df is alive at any point.
	(df_add_problem): Initialized dflow->computed.
	(df_analyze_problem): Set dflow->computed.
	(df_dump): Now calls new dumpers.
	(df_dump_start, df_dump_top, df_dump_bottom): New functions.
	(debug_df_insn, debug_df_reg, debug_df_regno, debug_df_defno,
	debug_df_useno): Renamed ddf to df_current_instance.
	* mode_switching (optimize_mode_switching): Renamed df_clrur to df_live
	and removed df_finish call.
	(pass_mode_switching): Added TODO_df_finish flag.
	* modulo-sched.c (sms_schedule): Removed calls to df_dump and df
	parameter from sched_finish.
	(pass_sms): Added TODO_df_finish flag.
	* web.c (web_main): Removed call to df_dump and df_finish.
	(pass_web): Added TODO_df_finish flag.
	* loop-init.c (pass_rtl_move_loop_init): Added TODO_df_finish
	flag.
	* global.c (global_alloc): Removed call to df_dump and debugging
	code.
	* ifcvt.c (if_convert):  Renamed df_clrur to df_live
	and removed df_finish call.
	(pass_rtl_ifcvt, pass_if_after_combine, pass_if_after_reload):
	Added TODO_df_finish flag.
	* recog.c (peephole2_optimize): Renamed df_clrur to df_live and
	removed df_finish call.
	(pass_peephole2): Added TODO_df_finish flag.
	* regmove.c (regmove_optimize, rest_of_handle_stack_adjustments):
	Renamed df_clrur to df_live and removed df_finish call.
	(pass_regmove, pass_stack_adjustments): Added TODO_df_finish flag.
	* function.c (epilogue_done): Removed df_finish call.
	(pass_thread_prologue): Added TODO_df_finish flag.
	* df.h (DF_CLRUR): Renamed to DF_LIVE.
	(df_dump_bb_problem_function): New function type.
	(df_problem.dump_fun): Deleted.
	(df_problem.dump_fun_start, df_problem.dump_fun_top,
	df_problem.dump_fun_bottom, problem_data.computed,
	df_current_instance): New fields.
	(DF_CLRUR_BB_INFO): Renamed to DF_LIVE_BB_INFO.
	(df_clrur_bb_info): Renamed to df_live_bb_info.
	(df_dump_start, df_dump_top, df_dump_bottom): New functions.
	* rtl-factoring (rtl_seqabstr): Renamed df_clrur to df_live
	and removed df_finish call.
	(pass_rtl_seqabstr):  Added TODO_df_finish flag.
	* bt-load (branch_target_load_optimize): Renamed df_clrur to df_live
	and removed df_finish call.
	(pass_branch_target_load_optimize1,
	pass_branch_target_load_optimize2): Added TODO_df_finish flag.
	* loop-invariant.c (move_loop_invariants): Removed call to
	df_finish.
	* subregs-init.c (initialize_uninitialized_subregs): Renamed
	df_clrur to df_live and changed call to dg_get_live_in to
	DF_LIVE_IN.
	* rtl.h (dump_reg_info): New function.
	* sched-int.h (sched_finish): Removed df parameter.
	* combine.c (rest_of_handle_combine): Renamed df_clrur to df_live
	and removed df_finish call.
	(pass_combine): Added TODO_df_finish flag.
	* df-problems.c (df_get_live_in, df_get_live_out): Renamed
	DF_CLRUR to DF_LIVE.
	(df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_clrur_dump,
	df_urec_dump, df_ri_dump): Deleted function.
	(df_ru_start_dump, df_ru_top_dump, df_ru_bottom_dump,
	df_rd_start_dump, df_rd_top_dump, df_rd_bottom_dump,
	df_lr_start_dump, df_lr_top_dump, df_lr_bottom_dump,
	df_ur_start_dump, df_ur_top_dump, df_ur_bottom_dump,
	df_live_top_dump, df_live_bottom_dump, df_ri_start_dump,
	df_urec_top_dump, df_urec_bottom_dump): New function.
	(problem_RU, problem_RD, problem_LR, problem_UR, problem_UREC,
	problem_CHAIN, problem_RI): Replaced dump functions.
	(df_clrur_get_bb_info): Renamed to df_live_get_bb_info.
	(df_clrur_set_bb_info): Renamed to df_live_set_bb_info.
	(df_clrur_free_bb_info): Renamed to df_live_free_bb_info.
	(df_clrur_alloc): Renamed to df_live_alloc.
	(df_clrur_local_finalize): Renamed to df_live_local_finalize.
	(df_clrur_free): Renamed to df_clrur_free.
	(problem_CLRUR): Renamed to problem_LIVE and dump functions
	changed.
	(df_clrur_add_problem): Renamed to df_live_add_problem.
	(df_chains_dump): Renamed to df_chain_start_dump.
	(df_chain_add_problem, df_ri_alloc, df_ri_compute): Removed
	problem_data->computed.
	* Makefile.in (passes.o): Added DF_H.
	* sched-rgn.c (schedule_insns): Renamed df_clrur to df_live
	and removed df_finish call.
	(pass_sched, pass_sched2): Added TODO_df_finish flag.
	* passes.c (execute_todo): Added call to df_finish for
	TODO_df_finish flag.
	* cfgrtl.c (dump_regset_in, dump_regset_out): Deleted.
	(rtl_dump_bb, print_rtl_with_bb): Fixed to find and print df info.
	* dce.c (init_dce): Removed call to df_dump.
	(end_dce, end_fast_dce): Removed call df_finish and null out local
	df instance variable.
	(pass_rtl_dce, pass_fast_rtl_dce, pass_rtl_dse): Added
	TODO_df_finish flag.


2006-07-23  Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree-pass.h (pass_regclass_init, pass_no_new_pseudos,
	pass_split_before_sched2): Added.
	(pass_life, pass_remove_death_notes): Deleted.
	* rtlanal.c: Documentation.
	* stack-ptr-mod.c: Ditto.
	* output.h: Ditto.
	* function.c: Ditto.
	* caller-save.c: Ditto.
	* sched-deps.c: Ditto.
	* jump.c: Ditto.
	* alias.c: Ditto.
	* calls.c: Ditto.
	* cfgloop.c: Ditto.
	(establish_preds, flow_loops_find): Removed ref to cfun->max_loop_depth.
	* final.c: (rest_of_no_new_pseudos, pass_no_new_pseudos): Added.
	* cfg.c (dump_regset, debug_regset): Moved from flow.c.
	* regs.h (regs_may_share): Deleted.
	(allocate_reg_life_data): Added.
	* flow.c: Deleted.
	* global.c (reg_may_share): Deleted.
	(global_alloc): Removed support for regs_may_share.
	* ifcvt.c (rest_or_handel_if_conversion): Removed ref to
	clear_reg_deaths.
	* timevar.def (TV_FLOW): Removed.
	* recog.c (find_single_use, find_single_use_1): Moved to combine
	and made static.
	(split_all_insns, split_all_insns_noflow): Made static.
	(pass_split_before_regclass): Fixed tv_id.
	(gate_handle_split_before_sched2,
	rest_of_handle_split_before_sched2, pass_split_before_sched2): New.
	(pass_split_for_shorten_branches): Renamed and fixed tv_id.
	* recog.h (find_single_use): Removed.
	* regmove.c (find_use_as_address): Moved from flow and made
	static.
	* function.h (max_loop_depth): Removed.
	* cfgcleanup.c (delete_dead_jumptables): Moved from flow.c.
	* subregs-init.c (initialize_uninitialized_subregs): Added call to
	allocate_reg_life_data if new regs were added.
	* regclass.c (max_regno, reg_set_to_hard_reg_set,
	allocate_reg_life_data): Moved from flow.c.
	(regclass_init): Now static and returns unsigned int.
	(pass_regclass_init, find_subregs_of_mode): New.
	(init_subregs_of_mode): Now fills the hash table.
	* rtl.h (find_use_as_address, split_all_insns,
	split_all_insns_noflow, regclass_init): Deleted.
	* combine.c (find_single_use_1, find_single_use): Moved from recog
	and made static.
	(delete_noop_moves): Moved from flow.c and made static.
	(rest_of_handle_combine): Now runs dce as part of df_init.
	* df-problems.c (reg_n_info): Moved from flow.c.
	(df_ri_problem_data.computed): Added field.
	(print_note, df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
	df_create_unused_note, df_ri_bb_compute, df_ri_compute): Changed
	note printing to go to dump_file.
	(df_ri_alloc, df_ri_compute, df_ri_free, df_ri_dump): Added
	support for computed flag.
	* Makefile.in: (flow.c flow.o): Removed.
	* sched-rgn.c (check_dead_notes1, deaths_in_region): Removed.
	(init_regions, add_block1): Removed last of note counting code.
	(rest_of_handle_sched2): Moved call to split_all_insns to separate
	pass.
	* basic_block.h (first_insn_after_basic_block_note,
	update_life_extent, PROP_* flags, life_analysis, update_life_info
	update_life_info_in_dirty_blocks, count_or_remove_death_notes,
	propagate_block, clear_reg_deaths, propagate_block_info,
	propagate_one_insn, init_propagate_block_info,
	free_propagate_block_info): Removed.
	(CLEANUP_*): Renumbered.
	sched_vis.c: (print_exp): Added proper printing for PRE and
	POST_MODIFY.
	* passes.c (init_optimization_passes): Added pass_regclass_init,
	pass_no_new_pseudos, and pass_split_before_sched2.  Deleted
	pass_life.
	* struct-equiv.c (struct_equiv_init): Removed dead conditional.
	* config/rs6000/rs6000.c (print_operand): More fixes for
	PRE_MODIFY.
	* config/rs6000/rs6000.md ("*movdf_hardfloat32",
	"*movdf_softfloat32"): Ditto.
	* cfgrtl (first_insn_after_basic_block_note): Moved from flow.c
	and made static.


2006-07-16  Zdenek Dvorak <dvorakz@suse.cz>
	    Kenneth Zadeck <zadeck@naturalbridge.com>

	* regrename.c: Fixed comments.
	* see.c (rest_of_handle_see): Removed call to
	update_life_info_in_dirty_blocks.
	* tree-pass.h: (pass_clear_df, pass_reset_df): Removed.
	* passes.c (init_optimization_passes): Ditto.
	* cfghooks.c (split_block): Remove call to split_block_end.
	(merge_blocks): Removed call to merge_blocks_end.
	(duplicate_block): Removed call to duplicate_block_end.
	* cfghooks.h (split_block_end, merge_blocks_end,
	duplicate_block_end): Removed.
	* cfgrtl.c (rtl_split_block_end, rtl_merge_blocks_end): Removed.
	(rtl_create_basic_block, force_nonfallthru_and_redirect,
	rtl_split_edge, cfg_layout_merge_blocks, cfg_layout_split_edge):
	Removed old calls to incremental dataflow.
	(dump_regset_in, dump_regset_out): Removed call to dump_regset.
	(rtl_dump_bb, print_rtl_with_bb): Rearranged dataflow printing.
	* cfg.c (compact_blocks): Removed code to keep dataflow up to
	date.
	* flow.c (clear_log_links): Deleted
	(life_analysis, init_propagate_block_info): Removed PROP_LOG_LINKS.
	(update_life_info): Removed call to clear_log_links.
	(mark_set_1): Removed code to build log links.
	(clear_log_links): Deleted.
	* df-scan.c (df_uses_record): Added code to set
	DF_REF_PRE_POST_MODIFY.
	(df_insn_refs_record): Added code to set DF_REF_CALL_STACK_FRAME.
	* df-core.c (df_analyze_simple_change_some_blocks,
	df_analyze_simple_change_one_block, df_compact_blocks,
	df_bb_replace, reset_df, pass_reset_df, clear_df, pass_clear_df):
	Deleted.
	* recog.c (peephole2_optimize): Deleted some rotted code.
	* df.h (DF_REF_PRE_POST_MODIFY, DF_REF_CALL_STACK_USAGE): New
	Flags.
	(df_analyze_simple_change_some_blocks,
	df_analyze_simple_change_one_block, df_compact_blocks,
	df_bb_replace): Deleted.
	* bt-load (branch_target_load_optimize): Removed call to
	update_life_info.
	* cfgcleanup.c (thread_jump, try_forward_edges): Deleted mode
	parameter to thread_jump.
	(try_optimize_cfg, cleanup_cfg): Removed CLEANUP_UPDATE_LIFE.
	* cfglayout.c (cfg_layout_duplicate_bb_end): Deleted.
	* combine.c (combine_instructions): Removed call to
	update_life_info.
	(set_nonzero_bits_and_sign_copies, reg_nonzero_bits_for_combine,
	reg_num_sign_bit_copies_for_combine, get_last_value_validate,
	get_last_value, reg_dead_at_p): Changed to use local df instance.
	(create_log_links, clear_log_links): New function.
	(rest_of_handle_combine): Added new version of df, create and
	destroy log links locally.
	* bb-reorder.c (rest_of_handle_partition_blocks): Removed call to
	update_life_info.
	* basic-block.h (PROP_LOG_LINKS): Removed and renumbered other
	PROP_*.
	(CLEANUP_UPDATE_LIFE, CLEANUP_LOG_LINKS): Removed and renumbered
	other CLEANUP_*.
	* tree-cfg.c (tree_cfg_hooks): Removed fields.
	* struct-equiv.c (struct_equiv_init): Removed call to
	update_life_in_dirty_blocks.
	* dce.c (init_dce, end_dce, end_fast_dce): Removed code to service
	rtl_df.

2006-07-12  Kenneth Zadeck <zadeck@naturalbridge.com>

	* auto-inc-dec.c (parse_add_or_inc): Moved test to merge_in_block.
	(find_inc): Now returns success flag if transformation was made.
	(find_mem): Ditto.
	(merge_in_block): Restructed to loop if any merges were made.
	Added max_reg parameter.  Added test from parse_add_or_inc.

2006-07-11  Kenneth Zadeck <zadeck@naturalbridge.com>

	* regrename.c (regrename_optimize): Changed df problem
	initialization.
	* sched-ebb.c (schedule_ebbs): Ditto.
	* reorg.c (dbr_schedule): Ditto.
	* mode-switching.c (optimize_mode_switching): Ditto.
	* ifcvt.c (if_convert): Ditto.
	* reorg.c (peephole2_optimize): Ditto.
	* regmove.c (regmove_optimize, rest_of_handle_stack_adjustments):
	Ditto.
	* sched-rgn.c (schedule_insns): Ditto.
	* rtl-factoring.c (rtl_seqabstr): Ditto.
	* bt-load.c (branch_target_load_optimize): Ditto.
	* subregs-init.c (initialize_uninitialized_subregs): Ditto.
	* df-core.c (reset_df): Ditto.
	* flow.c (update_life_info, propagate_one_insn): Renamed UPWARD_LIVE
	to LR.
	(rest_of_handle_life): Changed df problem
	initialization.
	* function.c (keep_stack_depressed): Renamed UPWARD_LIVE to LR.
	* combine.c (set_nonzero_bits_and_sign_copies): Changed DF_LIVE_IN
	to DF_UR_IN or DF_LR_IN.
	(reg_nonzero_bits_for_combine,
	reg_num_sign_bit_copies_for_combine, get_last_value): Changed
	DF_LIVE_IN to DF_UR_IN.
	* reg-stack.c (reg_to_stack): Changed df problem
	initialization. Changed DF_LIVE_IN to DF_LR_IN. str
	* struct-equiv.c (struct_equiv_init): Renamed UPWARD_LIVE
	to LR.
	* dce.c (dce_process_block): Changed DF_UPWARD_LIVE_* to DF_LR_*.
	* df.h: (DF_CLRUR) Added symbol and renamed others in block.
	(DF_CLRUR_BB_INFO): New macro.
	(DF_LIVE_IN, DF_LIVE_OUT): Changed to use output of clrur problem.
	(DF_UPWARD_LIVE_IN): Renamed to DF_LR_IN.
	(DF_UPWARD_LIVE_OUT): Renamed to DF_LR_OUT.
	(df_clrur_bb_info): New structure.
	(df_clrur_add_problem, df_clrur_get_bb_info): New functions.
	* df-problems: (df_get_live_in, df_get_live_out,
	df_lr_simulate_artificial_refs_at_end): Reworked to
	to be consistent with new dataflow problems and naming.
	(df_ur_local_finalize): Deleted function.
	(df_problem problem_UR): Removed ref to df_ur_local_finalize.
	(df_clrur_get_bb_info, df_clrur_set_bb_info,
	df_clrur_free_bb_info, df_clrur_alloc, df_clrur_free,
	df_clrur_dump, df_clrur_add_problem): New functions.
	(df_problem problem_CLRUR): New datastructure.
	* auto-inc-dec.c (reg_next_inc_use): New Array.
	(attempt_change): Added inc_reg parm and boolean result.  Move
	some tests to try_merge.  Added processing for reg_next_inc_use.
	(try_merge): Added boolean result and some test moved from
	attempt_change and parse_add_or_inc.
	(parse_add_or_inc): Move test to try_merge.  Improved debugging,
	and added code to support reg_next_inc_use.  Added more
	correctness tests.
	(rest_of_handle_auto_inc_dec): Changed df problem initialization
	and added code to support reg_next_inc_use.

2006-07-05  Richard Sandiford  <richard@codesourcery.com>

	* passes.c (init_optimization_passes): Move the final RTL DSE pass
	after thread_prologue_and_epilogue.

2006-07-01  Daniel Berlin  <dberlin@dberlin.org>
	    David Edelsohn  <edelsohn@gnu.org>
	    Kenneth Zadeck <zadeck@naturalbridge.com>

	tree-pass.h (pass_inc_dec): New pass variable.
	auto-inc-dec.c: New file that contains pass to find auto-inc/dec
	instruction combinations.
	flow.c: Removed unused includes for execinfo.h and stdio.h.
	(init_propagate_block_info): Fixed missing comma typo.
	(attempt_auto_inc, try_pre_increment): Added code to abort if any
	auto-inc/dec insns are found by this pass.
	df-scan.c (df_defs_record): Added flags parameter.
	(df_insn_refs_record): Added code to check for conditional def.
	(df_recompute_luids): New function.
	df-core.c: Fixed comment.
	global.c (global_alloc): Moved misplaced debugging code.
	(global_conflicts): Added patch to fix the way auto-incs are
	accounted for in conflicts graph.
	timevar.def (TV_AUTO_INC_DEC): New variable.
	recog.c: Fixed comment.
	function.c: Fixed comment.
	df.h (DF_REF_CONDITIONAL): New flag.
	(df_recompute_luids): New function.
	gcse.c (extract_mentioned_regs_helper): Added PRE/POST_MODIFY
	cases.
	common.opt (fauto-inc-dec): New flag.
	rtl.h (AUTO_INC_DEC): Made this symbol dependent on
	HAVE_(PRE/POST)_MODIFY_(REG/DISP).  Made other symbols dependent
	on AUTO_INC_DEC rather than components that defined AUTO_INC_DEC.
	df-problems.c (df_ru_bb_local_compute_process_def,
	df_lr_bb_local_compute, df_lr_simulate_artificial_refs_at_end,
	df_lr_simulate_one_insn, df_chain_create_bb,
	df_create_unused_note): Added DF_REF_CONDITIONAL to keep
	conditional defs from being added to kill sets.
	dce.c (dce_process_block): Ditto.
	Makefile.in (auto-inc-dec.c): New file.
	basic-block.h: Preparation to get rid of PROP_AUTO_INC flag.
	passes.c (init_optimization_passes): Added pass_inc_dec.
	config/rs6000/rs6000.c (rs6000_legitimate_address): Added code for
	PRE_MODIFY.
	(rs6000_mode_dependent_address, print_operand): Added case for pre_modify.
	config/rs6000/rs6000.h (HAVE_PRE_MODIFY_DISP,
	HAVE_PRE_MODIFY_REG): Added flags.
	reload1 (eliminate_regs_1, elimination_effects): Added cases for
	PRE/POST_MODIFY.



2006-05-27  Steven Bosscher  <steven@gcc.gnu.org>

	* reorg.c (dbr_schedule): Fix df_ur_add_problem calls.

2006-05-24  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-scan.c (df_scan_free_internal, df_grow_reg_info,
	df_reg_chain_unlink, df_ref_remove,
	df_insn_create_insn_record, df_insn_refs_delete,
	df_ref_create_structure, df_ref_record, df_mark_reg,
	df_record_entry_block_defs, df_record_exit_block_uses):
	Formatting fixes.
	(df_get_artificial_defs): Spelling fixes.
	(df_ref_record, df_def_record_1, df_uses_record):
	Fix the way that subregs are processed.
	(df_defs_record, df_def_record_1, df_insn_refs_record):
	Split DF_REF_CLOBBER into two cases.
	* df-core.c (df_analyze): Added comments
	(df_simple_iterative_dataflow): New function.
	(df_dump): Formatting fixes.
	* df.h (DF_REF_CLOBBER): Deleted.
	(DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New enums.
	(df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
	df_urec_bb_info): Added comments.
	(df_simple_iterative_dataflow): New function.
	* df-problems.c (df_print_bb_index, df_set_dead_notes_for_mw):
	Added comments.
	(df_ru_alloc, df_ru_local_compute, df_ru_confluence_n,
	df_ru_free, df_ru_dump, df_rd_alloc,
	df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
	df_rd_local_compute, df_rd_confluence_n, df_rd_free,
	df_rd_dump, df_lr_bb_local_compute, df_lr_bb_local_compute,
	df_lr_local_compute, df_ur_alloc, df_ur_dump, df_urec_alloc,
	df_urec_bb_local_compute, df_urec_local_compute,
	df_urec_local_finalize, df_urec_dump, df_chain_create_bb,
	df_create_unused_note,  df_ri_bb_compute): Formatting fixes.
	(df_ru_bb_local_compute_process_def): Do not clear gen set.
	(df_ru_bb_local_compute): Reorder processing insn.
	(df_ru_transfer_function): Fixed incorrect use of bitmaps.
	(df_ru_dump, df_rd_dump, df_chains_dump): Added debugging code.
	(df_lr_bb_local_compute, df_lr_simulate_one_insn,
	df_ur_bb_local_compute, df_chain_create_bb,
	df_create_unused_note, df_ri_bb_compute): Split
	DF_REF_CLOBBER into two cases.
	* ddg.c (add_deps_for_def): Changed to use ru info.
	* modulo-sched.c (sms_schedule): Added debugging.
	* dce.c (rs_dflow, df_problem reaching_stores_problem): Deleted.
	(init_rs_dflow, calculate_reaching_stores): Move dataflow to new
	df function.

2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>

	* fwprop.c (local_ref_killed_between_p): Rearranged definition.

2006-05-23  Steven Bosscher  <stevenb.gcc@gmail.com>

	* rtlanal.c (find_occurrence): Move to fwprop.c.
	* rtl.h (find_occurrence): Remove prototype.
	* fwprop.c (can_simplify_addr): Fix check for frame based addresses.
	(should_replace_address): Update comment before this function.
	(local_ref_killed_between_p): Don't choque on NOTEs.
	(use_killed_between): Handle the exceptional case that a DEF does
	not dominate one of its uses.
	(varying_mem_p): Simplify return type.
	(all_uses_available_at): Clean up unnecessary single_set calls.
	(find_occurrence_callback, find_occurrence): New.
	(subst): Rename to try_fwprop_subst.
	(forward_propagate_subreg): Update caller.
	(forward_propagate_and_simplify): Likewise.
	(fwprop_init): Find loops before computing data flow info.
	(fwprop_done): Call cleanup_cfg without CLEANUP_PRE_LOOP.  Free
	loop tree before cleanup_cfg.

2006-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>

	* regclass.c (init_subregs_of_mode): Created dummy version
	when CANNOT_CHANGE_MODE_CLASS is undefined.

2006-05-13  Steven Bosscher  <stevenb.gcc@gmail.com>

	* df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
	information attached to non-INSNs such as NOTEs.
	(df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.

2006-05-05  Kenneth Zadeck <zadeck@naturalbridge.com>

	* haifa-sched.c (glat_size): New variable.
        (sched-init, extend_bb): Properly initialized glat_start and
        glat_end.
	(free_glat): Fixed double free of bitmaps.
	* df-scan.c (df_scan_get_bb_info, df_scan_set_bb_info): Added
	assertions.
	* df-problems.c (df_ru_get_bb_info, df_ru_set_bb_info,
	df_rd_get_bb_info, df_rd_set_bb_info, df_lr_get_bb_info,
	df_lr_set_bb_info, df_ur_get_bb_info, df_ur_set_bb_info,
	df_urec_get_bb_info, df_urec_set_bb_info): Ditto.

2006-04-25  Kenneth Zadeck <zadeck@naturalbridge.com>

	* flow.c (rest_of_handle_life): Removed unnecessary code.
	* df-scan.c (df_scan_free_internal, df_scan_free): Fixed
	storage leak.
	* df-core.c (df_delete_basic_block): Removed dangling pointer.
	* mode-switching.c (optimize_move_switching): Moved creation of df
	instance to avoid storage leak.
	* ifcvt.c (if_convert): Fixed storage leak.
	* dce.c (mark_insn,
	rest_of_handle_dce): Removed old way of processing libcalls.
	(libcall_matches_p, mark_libcall_insns): Removed.
	(mark_libcall): New function.
	(mark_reg_dependencies, dce_process_block): New code to check for
	libcalls.
	(fast_dce): Fixed storage leak.

2006-04-24  Kenneth Zadeck <zadeck@naturalbridge.com>

	* sched-ebb.c (schedule_ebbs): Updated register lifetime info.
	* modulo-sched.c (sms_schedule): Ditto.
	* sched-reg.c (schedule_insns): Ditto.
	* regmove.c (regmove-optimize): Ditto.
	* tree.h (setjmp_vars_warning, setjmp_args_warning): Removed.
	(generate_setjmp_warning): Added.
	* tree-pass.h (pass_subregs_of_mode_init): Added.
	* flow.c (life_analysis): Moved parts to other passes.
	(regno_clobbered_at_setjmp):Moved setjmp warning to local-alloc.
	(rest_of_handle_life): Ditto.
	* df-scan.c (df_ref_record): Reformatted comment.
	* ifcvt.c (rest_of_handle_if_conversion): Removed last bit of
	rtl_df scafolding.
	* local-alloc.c (local_alloc, no_equiv, block_alloc): Changed to
	use same instance of df as global_alloc,
	(rest_of_handle_local_alloc): Now also produces setjmp warnings.
	* function.c (regno_clobbered_at_setjmp): Moved from flow.
	(setjmp_vars_warning, setjmp_args_warning): Added parms to use
	passed in df instance.
	(generate_setjmp_warnings): New function.
	* df.h (DF_RI_SETJMP): New constant.
	(df_ri_get_setjmp_crosses): New function.
	* df-problems.c (df_ri_problem_data, setjmp_crosses): New
	variables.
	(df_ri_alloc, df_ri_bb_compute, df_ri_bb_compute, df_ri_compute):
	Changed variables live across setjmp computation.
	(df_ri_get_setjmp_crosses): New function.
	* regclass.c (init_subregs_of_mode): Changed return.
	(gate_subregs_of_mode_init, pass_subregs_of_mode_init): New.
	* rtl.h (init_subregs_of_mode): Removed.
	* integrate.c (allocate_initial_values): Removed incorrect parm
	attribute and changed instance of df used.
	* output.h (regno_clobbered_at_setjmp): Removed.
	* stack-ptr-mod.c: Fixed comment.
	* Makefile.in (regclass.o): Added tree-pass.h.
	* basic-block.h (safe_insert_insn_on_edge): Deleted.
	* passes.c (init_optimization_passes): Added
	pass_subregs_of_mode_init.
	* cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Deleted.
	* rtl-profile.c: Removed.

2006-04-21  Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree-pass.h (pass_stack_ptr_mod, pass_initialize_subregs,
	pass_reset_df): New.
	* flow.c (notice_stack_pointer_modification_1,
	notice_stack_pointer_modification, find_regno_partial_param,
	find_regno_partial, initialize_uninitialized_subregs): Moved to
	separate passes in separate files.
	(life_analysis): Removed call to notice_stack_pointer_modification.
	(rest_of_handle_life): Removed call to initialize_uninitialized_subargs.
	* df-core.c (reset_df, pass_reset_df): New.
	* Makefile.in (stack-ptr-mod.o, subregs-init.o): New.
	* passes.c (pass_stack_ptr_mod, pass_initialize_subregs,
	pass_reset_df): New passes.
	* subregs-init.c: New file that contains separate pass for
	initialize_uninitialized_subargs.
	* stack-pointer-mod.c: New file that contains separate pass for
	notice_stack_pointer_modification.

2006-04-19  Kenneth Zadeck <zadeck@naturalbridge.com>

	* ifcvt.c (rest_of_handle_if_after_combine): Removed flow
	scaffolding.
	* passes.c (init_optimization_passes): Moved clear_df to after
	combine and changed two expensive dce passes into a dse and fast
	dce pass.

2006-04-18  Kenneth Zadeck <zadeck@naturalbridge.com>

	* mode-switching.c (optimize_mode_switching): Created local
	instance of df and removed references to flow.
	* regmove.c (mark_flags_life_zones, regmove_optimize): Ditto.
	* global.c (global_alloc, rest_of_handle_global_alloc): Reused
	instance of df created in local alloc.
	* local-alloc.c (rest_of_handle_local_alloc): Create instance of
	ra_df used by all register allocation.
	* bb-reorder.c (fix_crossing_conditional_branches): Removed code
	to keep dataflow up to date.
	* Makefile.in (bb-reorder.o): Removed ref to DF_H.
	* passes.c (init_optimization_passes): Meved clear_df to before
	partition_blocks.

2006-04-17  Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree-pass.h (pass_recompute_reg_usage): Deleted.  flow.c
	(pass_recompute_reg_usage, recompute_reg_usage): Deleted.  *
	sched-ebb.c (begin_schedule_ready, schedule_ebb,
	begin_schedule_ready, schedule_ebb, schedule_block): Threaded
	local instance of df.
	(schedule_ebbs): Created local instance of df.
	* haifa-sched.c (schedule_block, sched_init, sched_finish,
	generate_recovery_code, begin_speculative_block,
	add_to_speculative_block, init_before_recovery,
	create_recovery_block, create_check_block_twin, init_glat,
	init_glat1): Threaded local instance of df.
	* modulo-sched.c (sms_schedule): Ditto.
	(rest_of_handle_sms): Removed unnecessary update of flow info.
	* sched-int.h (df.h): Now includes this.
	(schedule_block, sched_init, sched_finish, add_block): Added df
	parm.
	* sched-rgn.c (begin_schedule_ready, schedule_region,
	schedule_insns): Threaded local instance of df.
	(schedule_insns): Removed unnecessary update of flow info.
	* Makefile.in (SCHED_INT_H): Added DF_H.
	(ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
	sched-ebb.o): Removed DF_H.
	* ddg.c (build_inter_loop_deps): Swapped parms.
	(create_ddg): Swapped parms for call.
	* passes.c (init_optimization_passes): Removed dce and
	recompute_reg_use pass and moved clear_df to before first
	schedulers.

2006-04-16  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df.h (shared_df): Removed.
	(ra_df): New.
	* core.c (shared_df): Removed.
	(ra_df): New.
	* postreload.c (reload_combine): Changed to use ra_df.
	* reload.c (push_reload, find_dummy_reload): Ditto.
	* global.c (global_alloc, global_conflicts, mark_elimination,
	build_insn_chain, rest_of_handle_global_alloc): Ditto.
	* reload1.c (compute_use_by_pseudos, reload): Ditto.
	* local-alloc.c (local_alloc, block_alloc): Created local instance
	of df.
	* passes.c (init_optimization_passes): Moved clear_df to before
	register allocators.
	* tree-pass.h (pass_partition_blocks): Removed redundant
	copy.

2006-04-16  Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree-pass.h (pass_reset_df_after_reload): Removed.
	* df-core.c (reset_df_after_reload, pass_reset_df_after_reload):
	Removed.
	* function.c (prologue_epilogue_df): New global.
	(rtx keep_stack_depressed, thread_prologue_and_epilogue_insns):
	Unthreaded local version of df and replaced with
	prologue_epilogue_df.
	* rtl.h (prologue_epilogue_df): New.
	* passes.c (init_optimization_passes): Removed all uses of flow
	after register allocation.
	* config/i386/i386.c (ix86_eax_live_at_start_p): Replaced use of
	flow with prologue_epilogue_df.

2006-04-15  Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree-pass.h (pass_flow2): Renamed to
	pass_thread_prologue_and_epilogue.
	* passes.c (pass_flow2): Ditto.
	* final.c (rest_of_clean_state): Removed flow2_completed.
	* config/i386/i386.md: Ditto.
	* config/sh/sh.md: Ditto.
	* config/mips/mips.md: Ditto.
	* config/h8300/h8300.md: Ditto.
	* flow.c: Ditto.
	(rest_of_handle_flow2): Moved to function.c as
	rest_of_handle_thread_prologue_and_epilogue.
	* timevar.def (TV_FLOW2): Renamed to
	TV_THREAD_PROLOGUE_AND_EPILOGUE.
	* function.c (keep_stack_depressed): Added df parameter.
	(thread_prologue_and_epilogue_insns): Made local function and
	removed unused parameter.  Added local instance of df.
	(rest_of_handle_thread_prologue_and_epilogue): New function
	renamed from flow.c.
	(pass_thread_prologue_and_epilogue): New pass.
	* rtl.h	(flow2_completed, thread_prologue_and_epilogue_insns):
	Removed.
	* df-problems.c (df_ru_get_bb_info, df_rd_get_bb_info,
	df_lr_get_bb_info, df_ur_get_bb_info, df_urec_get_bb_info): Added
	check.
	* Makefile.in (function.o): Added timevar.h.

2006-04-13  Kenneth Zadeck <zadeck@naturalbridge.com>

	* rtl-factoring (collect_pattern_seqs, clear_regs_live_in_seq,
	recompute_gain_for_pattern_seq, clear_regs_live_in_seq,
	recompute_gain, split_blocks_after_seqs, split_pattern_seq,
	erase_matching_seqs, abstract_best_seq, rtl_seqabstr): Threaded
	local instance of df to replace all references to flow.
	(gate_rtl_seqabstr): Removed unnecessary calls.
	* passes.c (init_optimization_passes): Moved clear_df before
	rtl_seqabstr.  Removed some expensive calls to dce.
	* tree-pass.h (pass_fast_rtl_dce): New.
	* regrename.c (gate_handle_regrename): Update call to pass.
	* sched-rgn.c (rest_of_handle_sched2): Remove outdated calls.

2006-04-13  Kenneth Zadeck <zadeck@naturalbridge.com>

	* regmove.c (rest_of_handle_stack_adjustments): Removed all
	references to flow.c and replaced with df.
	* passes.c (init_optimization_passes): Moved clear_df before
	pass_stack_adjustments.

2006-04-12  Kenneth Zadeck <zadeck@naturalbridge.com>

	* recog.c (delete_insn_chain_and_dflow): New function.
	(peephole2_optimize): Replaced all flow references with df.  Added
	local instance of df.
	* passes.c (init_optimization_passes): Moved clear_df before peephole2.

2006-04-11  Kenneth Zadeck <zadeck@naturalbridge.com>

	* ifcvt.c (cond_exec_process_if_block, merge_if_block,
	noce_process_if_block, cond_move_process_if_block,
	process_if_block, find_if_header, find_cond_trap, find_if_case_1,
	find_if_case_2, dead_or_predicable): Threaded local copy of df
	thru the call stack.
	(merge_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
	dead_or_predicable): Added code to update df in place.
	(if_convert): Removed parameter concerned with correct dataflow
	info, it now always is. Created instance of df.  Removed code to
	update old flow info.
	(rest_of_handle_if_after_reload): Removed unnecessary calls to
	cleanup_cfg.
	* passes.c (init_optimization_passes): Moved clear_df to before
	last ifconvert.  Renamed pass_cprop to pass_cprop_hardreg.
	* regrename.c (rest_of_handle_cprop): Renamed pass_cprop to
	pass_cprop_hardreg.
	* tree-pass.h: Renamed cprop to cprop_hardreg.

2006-04-11  Kenneth Zadeck <zadeck@naturalbridge.com>

	* sched-ebb.c (schedule_ebbs): Removed code to update dataflow
	after scheduling and removed unused parm from
	reposition_prologue_and_epilogue_notes.
	* sched-rgn.c (schedule_insns): Ditto.
	(rest_of_handle_sched): Added temp hack to rebuild flow based dataflow
	until flow is permanently removed.
	* haifa-sched.c (init_glat): Modified to create glat from df info.
	(attach_life_info, attach_life_info1, check_reg_live): Removed.
	(free_glat): Now cleans up df.
	* modulo-sched.c (compute_jump_reg_dependencies): Removed df parm.
	* ifcvt.c (rest_of_handle_if_conversion): Added code to clean up
	flow based reg_deaths after first call to ifconvert.
	* function.c (reposition_prologue_and_epilogue_notes): Removed
	unused parm.
	* rtl.h (reposition_prologue_and_epilogue_notes): Ditto.
	* sched-int.h (check_reg_live): Removed.

2006-04-10  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-core.c (reset_df_after_reload, clear_df): Added return to
	make compatible with pass manager.
	* dce.c (rest_of_handle_dce, rest_of_handle_fast_dce,
	rest_of_handle_dse): Ditto.

2006-04-09 Kenneth Zadeck <zadeck@naturalbridge.com>

	* regrename.c (merge_overlapping_regs, regrename_optimize):
	Threaded private instance of df.
	(regrename_optimize): Created private instance of df, removed
	all references or flow.
	(copyprop_hardreg_forward): Removed all references to flow.
	(gate_handle_regrename): Split reg rename and cprop into separate
	passes.
	(gate_handle_cprop): New function.
	(pass_cprop): New pass structure.
	* tree-pass.h (pass_cprop): New pass structure.
	* passes.c (init_optimization_passes): Added cprop pass and
	moved clear_df pass closer to beginning.

2006-04-08  Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree-pass.h (pass_split_after_reload, pass_branch_target_load_optimize1
	pass_branch_target_load_optimize2): Added.
	(pass_branch_target_load_optimize): Deleted.
	* flow.c (rest_of_handle_flow2): Split the calls to split_all_insns and
	branch_target_load_optimize into their own passes.
	* passes.c (init_optimization_passes): Ditto.
	(init_optimization_passes): Moved clear_df pass to before
	second branch_target_load_optimize pass.
	* bt-load (compute_defs_uses_and_gen, build_btr_def_use_webs,
	migrate_btr_defs): Threaded private copy of df into these functions.
	(branch_target_load_optimize): Made private and add local
	instance of df.  Removed all references to flow.
	(rest_of_handle_branch_target_load_optimize1): New function.
	(rest_of_handle_branch_target_load_optimize): Renamed to
	rest_of_handle_branch_target_load_optimize2.
	rtl.h (branch_target_load_optimize): Removed.

2006-04-08  Kenneth Zadeck <zadeck@naturalbridge.com>

	* sched-ebb.c (init_ready_list, can_schedule_ready_p, new_ready,
	compute_jump_reg_dependencies, schedule_ebb, sched_analyze,
	schedule_block): Changed to pass instance of df.
	(compute_jump_reg_dependencies): Changed to use local instance
	of dataflow.
	* ddg.c (build_intra_loop_deps, sched_analyze,
	build_intra_loop_deps): Changed to pass instance of df.
	* ddg.h: added forward reference to struct df.
	* haifa-sched.c (schedule_insns, schedule_insn,
	schedule_block): Changed to pass instance of df.
	* modulo-sched (compute_jump_reg_dependencies): Ditto.
	(sms_schedule): Added call to do dce when stated.
	* sched-deps.c (sched_analyze_insn, sched_analyze):
	Changed to pass instance of df.
	* rtl.h (schedule_insns, schedule_ebbs): Ditto.
	* sched-int.h (init_ready_list, can_schedule_ready_p, new_ready,
	compute_jump_reg_dependencies, sched_analyze, schedule_block):
	Ditto.
	* sched-rgn.c (check_live_1, update_live_1, check_live,
	update_live, init_ready_list, can_schedule_ready_p, new_ready,
	compute_jump_reg_dependencies, compute_block_backward_dependences,
	schedule_region, schedule_insns): Ditto.
	(schedule_insns): Removed call to update_life_info when finished.
 	(rest_of_handle_sched, rest_of_handle_sched2): Creates local
 	instance of df.
	* passes.c (init_optimization_passes): moved clear_df pass
	earlier.
	* Makefile.in (df-core.o): Added except.h and dce.h
	(modulo-sched.o): Added DF_H.
	* recog.c (split_all_insns): Removed old code that was used to
	update dataflow.
	* reg-stack.c (rest_of_handle_stack_regs): Removed ifdefed out code.

2006-04-07  Kenneth Zadeck <zadeck@naturalbridge.com>

	* recog.c (split_all_insns): Removed parameter and code to
	update dataflow.
	* sched-rgn.c (rest_of_handle_sched2): Removed parm to
	split_all_insns.
	* flow.c (rest_of_handle_flow2): Ditto.
	(rest_of_handle_split_all_insns): Added call to update old
	dataflow after this pass.
	(rest_of_handle_split_after_reload,
	rest_of_handle_split_before_regstack): New function.
	(pass_split_after_reload): New structure.
	* rtl.h (split_all_insns): Removed param.
	* bb-reorder.c (rest_of_handle_reorder_blocks): Removed
	references to flow.
	* reg-stack.c (subst_stack_regs_pat): Removed unnecessary
	assertion.

2006-04-07  Daniel Berlin  <dberlin@dberlin.org>
	    Kenneth Zadeck <zadeck@naturalbridge.com>

	* regoc.c (dbr_schedule): Added parm to call to df_lr_add_problem.
	* ifcvt.c (if_convert): Ditto.
	* modulo-sched.c (sms_schedule): Ditto.
	* reg-stack.c (reg_to_stack): Ditto.
	* global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
	(rest_of_handle_global_alloc): Removed call to df_set_state.
	* basic_block.h (clear_reg_deaths): New function.
	* flow.c: (clear_reg_deaths): New function.
	(rest_of_handle_life): Added parm to call to df_lr_add_problem and
	df_ur_add_problem.
	* df-scan.c (df_scan_free_internal): Added code to clear new
	bit vectors.
	(df_scan_alloc): Added extra parameter and code to initialize
	new bit vectors.
	(df_scan_dump): Added code to dump new bit vectors.
	(df_problem problem_SCAN): Added extra field.
	(df_scan_add_problem): Added flags parameter.
	(df_rescan_blocks): Added code to remove deleted blocks from
	bitmap and extra parm to call to df_scan_alloc.
	(df_insn_create_insn_record): Removed return value.
	(df_set_state): Removed function.
	(df_ref_record, df_bb_refs_record, df_record_entry_block_defs,
	df_record_exit_block_uses): Changed the way flags are processed.
	(df_bb_refs_record, df_refs_record, df_record_exit_block_uses):
	Restructured scanning to fixed hard regs so bitmaps could be
	recorded for later use.
	(df_has_eh_preds): Now public.
	* 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.
	(clear_df): Added call to clear_reg_deaths.
	* df.h: Some reordering to remove forward references.
	(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_SCAN_INITIAL,
	DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
	(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, df_has_eh_preds) New functions.
	* df-problems.c (df_get_dependent_problem): Deleted function.
	(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_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_lr_bb_local_compute): Fixed case to account for return value
	correctly.
	(df_lr_bb_local_compute): Changed processing of exit block.
	(df_lr_transfer_function): Added hook to call dce.
	(df_lr_free): Added lr problem data.
	(df_set_notes_for_mw, df_reg_lifetime): Removed function.
	(df_lr_simulate_artificial_refs_at_end, df_lr_simulate_one_insn,
	df_kill_notes, df_set_unused_notes_for_mw, df_set_dead_notes_for_mw):
	New function.
	(df_ri_alloc, df_ri_bb_compute, df_create_unused_note,
	df_ri_bb_compute, df_ri_compute, df_ri_free, df_ri_add_problem):
	Added functionality to compute register information.
	dce.c (deletable_insn_p): Cannot delete PREFETCHes.
	(delete_unmarked_insns): Also delete noop moves as well as support for
	calling dce from df.
	(prescan_insns_for_dce, rest_of_handle_dce, end_fast_dce,
	dce_process_block, rest_of_handle_fast_dce,
	rest_of_handle_dse): Restructured to handle being directly called from
	df.


2006-03-14  Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree-pass.h: Added pass to clear other dataflow infomation out.
	* final.c (rest_of_handle_final, rest_of_clean_state): Cleared out
	references to df.
	(rest_of_clean_state) Added regstack_completed.
	* reorg.c (fill_simple_delay_slots, fill_slots_from_thread,
	fill_eager_delay_slots, make_return_insns): Added df parameter to function.
	(make_return_insns, dbr_schedule) Added df parameter to calls.
	* flow.c (update_life_info): Added glue code to df calls.
	* df-scan.c (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
	code to properly handle multiword hard registers.
	(df_ref_create_structure, df_ref_record): Added code to properly handle subregs.
	(df_ref_create_structure): Changed switching structure.
	(df_bb_refs_record): Fixed case where duplicate artificial refs
	were created.
	(df_record_entry_block_defs): Added code to make stack pointer
	live in entry block.  Refined cases where frame pointer is needed.
	* df-core.c (df_mvs_dump, clear_df): New function.
	(pass_clear_df): New pass structure.
	(df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
	debug_df_chain): Improved debugging output.
	* df.h: Some reordering to remove forward reference.
	(df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL): New fields.
	(df_ref_flags.DF_REF_DIES_AFTER_THIS_USE): 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.
	* rtl.h (regstack_completed): New global var.
	* resource.c (mark_target_live_regs): Added passed in instance of
	df.
	* resource.h (mark_target_live_regs): Ditto.
	* df-problems.c (df_chain_dump): Removed df parameter.
        (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_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_ur_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.
	* reg-stack.c (regstack_completed): New variable.
	(reg_to_stack): Modified to use it's own instance of df.
	(rest_of_handle_stack_regs): Removed most cleanup code.
	* Makefile.in (reorg.o, RESOURCE_H): Added dependancy to df.h.
	(final.o): Removed dependency to df.h
	* passes.c (pass_magic_life): Removed.
	(pass_clear_df): Added.
	* dce.c (prescan_insns_for_dce, end_fast_dce): Now works if no instance of
	df is available.
	(dce_process_block): Made subreg aware.
	(rest_of_handle_fast_dce): Reset bitvectors when iterating.
	(prescan_insns_for_dse): Removed useless code.

2006-02-06  Daniel Berlin  <dberlin@dberlin.org>

	* doc/rtl.texi: Document REG_LIBCALL_ID.
	* optabs.c (libcall_id): New variable.
	(emit_no_conflict_block): Use it to emit
	REG_LIBCALL_ID.
	(emit_libcall_block): Ditto.
	* combine.c (distribute_notes): Deal with
	REG_LIBCALL_ID.
	* reg-notes.def (LIBCALL_ID): New note.
	* dce.c (marked_libcalls): New variable.
	(in_libcall): Removed.
	(mark_insn): Mark which libcalls we need to fully mark.
	(mark_libcall_insns): New function.
	(end_dce): Free marked_libcalls.
	(init_dce): Allocate marked_libcalls.
	Call mark_libcall_insns.

2006-01-17  Kenneth Zadeck <zadeck@naturalbridge.com>
	* df-core.c (df_iterative_dataflow): Added debugging assert.
	(df_insn_uid_debug): New debugging function.
	(df_insn_debug): Changed to used df_insn_uid_debug.
	(df_analyze_problem): Made public.
	* df.h (df_analyze_problem): Ditto.
	* cfgcleanup.c (cleanup_cfg): Now calls run_fsst_dce.
	* flow.c (update_life_info): Ditto.
	* dce.c (init_dce, mark_insn,
	mark_nonreg_stores, prescan_insns_for_dce): Added parameter so
	that they could be called from both handle_rest_of_dce and
	handle_rest_of_fast_dce.
	(marked_insn_p): Added code to be tolerant of artifical defs,
	which do not have insns.
	(mark_nonreg_stores_2): New function.
	(mark_artificial_uses, mark_reg_dependencies, store_base_local,
	mark_escaping_stores, mark_dependent_stores,
	prescan_insns_for_dse): Added parameter to mark_insn.
	(rest_of_handle_dce): Added parameter to prescan_insns_for_dce.
	(record_stores): Added parameter to mark_non_reg_stores.
	(dce_process_block, rest_of_handle_fast_dce, gate_fast_dce,
	run_fast_dce): New functions to do dce faster.
	(rest_of_handle_dse) Added parameter to init_dce.
	* dce.h (run_fast_dce): Added declaration.

2006-01-17  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-scan.c (df_hard_reg_init): Moved declaration of i outside macro.

2006-01-17  Ian Lance Taylor <ian@airs.com>

	* combine.c (combine_instructions): Pass instruction
        to note_stores and set_nonzero_bits_and_sign_copies.
	(set_nonzero_bits_and_sign_copies): We can't assume
        anything about non-zero bits for registers initialized with
	themselves if the register is not live on entry to the block.


2005-01-17  Kenneth Zadeck <zadeck@naturalbridge.com>

	PR dataflow/25799
	* df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
	Corrected confluence operator to remove bits from op2 before oring
	with op1 rather than removing bits from op1.
	* (df_ru_transfer_function): Corrected test on wrong bitmap which
	caused infinite loop.


2005-01-17  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.
	(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.

2006-01-06  Daniel Berlin  <dberlin@dberlin.org>
  	    Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-scan.c (df_reg_use_gen, df_reg_def_gen): Removed.
	(df_insn_contains_asm_1): New function.
	(df_insn_contains_asm): Rewritten to use for_each_rtx.
	(df_insn_refs_record): Fixed call to df_insn_contains_asm and
	the way calls are processed.
	(df_insn_refs_record, df_bb_refs_record): Changed calls to not
	need df_reg_use_gen or df_reg_def_gen.
	* loop-invariant.c (free_inv_motion_data): Removed duplicated code typo.

2005-12-30  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df-core.c (df_find_def, df_find_use):  Added subreg aware code.
	(df_reg_defined, df_reg_used): New function.
	* df.h (df_reg_defined, df_reg_used): New function.
	* loop-invariant.c (struct invariant, hash_invariant_expr,
	eq_invariant_expr, find_or_insert_inv, find_or_insert_inv,
	find_identical_invariants, merge_identical_invariants,
	find_defs, create_new_invariant, check_dependencies,
	find_invariant_insn, find_invariants, get_inv_cost,
	best_gain_for_invariant, set_move_mark, move_invariants,
	free_inv_motion_data): Functions added from mainline patch.
	(invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p,
	check_dependencies, create_new_invariant, find_invariant_insn
	move_invariant_reg): Functions modified from mainline patch to be
	consistent with latest df.

2005-12-22  Paolo Bonzini  <bonzini@gnu.org>

	* df-scan.c (df_ref_unlink): Fix thinko when REF == CHAIN.

2005-12-22  Danny Berlin <dberlin@dberlin.org>
    	    Richard Sandiford  <richard@codesourcery.com>
	    Kenneth Zadeck <zadeck@naturalbridge.com>

	* tree-pass.h: Added passes for new dce and dse.
	* flow.c (update_life_info, propagate_block): Added hooks to
	call new dead code elimination.
	* common.opt (flag_flow_dce, flag_new_dce): Ditto.
	* passes.c (init_optimization_passes): Ditto.
	* cfgcleanup.c (cleanup_cfg): Ditto.
	* timevar.def: New time vars for dce and dse.
	(propagate_block_delete_insn): Added debugging.
	* dce.c: New File containing dead code elimination and dead
	store elimination based on df.

2005-12-19  Kenneth Zadeck <zadeck@naturalbridge.com>

        * flow.c (update_life_info, count_or_remove_death_notes): Fixed
	latent bug that could happen if update_life_info was called with a
	blocks parameter and the call to cleanup_cfg actually deleted one
	of those blocks.
	* loop-invariant.c (move_loop_invariants): Fixed df
	initialization.
	* struct-equiv.c (struct_equiv_init): Made dataflow compatible with
	df.


2005-12-18  Daniel Berlin  <dberlin@dberlin.org>
            Kenneth Zadeck <zadeck@naturalbridge.com>

	* fwprop.c (local_ref_killed_between_p): New Function.
	(use_killed_between, varying_mem_p, all_uses_available_at,
	update_df, subst, forward_propagate_subreg,
	forward_propagate_and_simplify, forward_propagate_into, fwprop,
	fwprop_addr): Changes to support modifications to df datastructures.
	* ddg.c (add_deps_for_def, add_deps_for_use, build_inter_loop_deps):
	Ditto.
	* flow.c (verify_local_live_at_start, update_life_info,
	update_life_info, initialize_uninitialized_subregs,
	propagate_one_insn, init_propagate_block_info,
	init_propagate_block_info, regno_clobbered_at_setjmp,
	rest_of_handle_life): Ditto.
	* modulo-sched.c (sms_schedule): Ditto.
	* web.c (union_defs, entry_register, web_main): Ditto.
	* global.c (global_alloc, global_conflicts, mark_elimination,
	build_insn_chain, rest_of_handle_global_alloc): Ditto.
	* ifcvt.c (find_if_case_1, if_convert): Ditto.
	* loop_invariant.c (find_defs, record_use, find_invariant_insn,
	find_invariants_to_move, move_invariant_reg, move_invariant_reg,
	free_inv_motion_data, move_loop_invariants):
     	* bb-reorder.c (rest_of_handle_reorder_blocks): Ditto.
	* reg-stack.c (reg_to_stack): Ditto.
	* postreload.c (reload_combine): Changed set reference to
	reflect different dataflow problem.
	* reload.c (push_reload, find_dummy_reload): Ditto.
	* postreload.c (rest_of_handle_postreload): Fixed typo in comment.
	* tree-pass.h: Added pass_reset_df_after_reload.
	* df.c: Removed, rewritten as df-core.c, df-problems.c and df-scan.c.
	* 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.
	* cfgrtl.c (dump_regset_in, dump_regset_out): New dataflow
	* print functions.
	(rtl_dump_bb, print_rtl_with_bb): Changed to use
	dump_regset_in, dump_regset_out).
	* sched_deps (sched_analyze_1): Changed to used renamed
	df_read_modify_subreg_p (was read_modify_subreg_p).
	(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_reg_use_gen,
	df_reg_def_gen, 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,
	df_insn_refs_record, df_bb_refs_record, df_refs_record,
	df_mark_reg, df_record_exit_block_uses, df_hard_reg_init): New 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_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_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-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.h: Complete rewrite to support new df-problems.c, df-scan.c and
	df-core.c.

2005-12-14  Kenneth Zadeck <zadeck@naturalbridge.com>

	* bitmap.c (bitmap_clear_range): Removed extra debugging.

2005-12-12  Paolo Bonzini  <bonzini@gnu.org>

	* rtl.h (find_occurrence): Declare.
	* rtlanal.c (find_occurrence): New.
	(loc_mentioned_in_p): Accept a NULL value for IN.
	(commutative_operand_precedence): Remove useless code looking
	for constant RTX_EXTRA rtxen.
	* common.opt (-fforward-propagate): New.
	* tree-pass.h: Add forward propagation passes.
	* passes.c: Ditto.
	* timevar.def: Add forward propagation timevar.
	* fwprop.c: New file.
	* Makefile.in: Add fwprop.o dependencies.

2005-11-28  Paolo Bonzini  <bonzini@gnu.org>

	* config/sh/sh.c (sh_output_mi_thunk): Use df_finish.

2005-11-17  Paolo Bonzini  <bonzini@gnu.org>

        * df.h (struct df_reach): Add size field.
        * df.c (df_realloc_reach_bitmaps, df_renumber_refs): New.
        (df_reg_use_chain_create, df_reg_def_chain_create): Use them.
        Fix GNU coding standards compliancy.

2005-11-11  Richard Earnshaw  <richard.earnshaw@arm.com>

	* df.c (df_chain_create): Move declaration of bb outside define
	for ENABLE_CHECKING.

2005-11-08  Paolo Bonzini  <bonzini@gnu.org>

	* df.c (df_local_ref_killed_between_p): Reinstate.

2005-11-08  Daniel Berlin  <dberlin@dberlin.org>
            Kenneth Zadeck <zadeck@naturalbridge.com>

	* bitmap.c (bitmap_element_free, bitmap_element_link, bitmap_and,
	bitmap_and_compl, bitmap_ior, bitmap_ior_into, bitmap_xor,
	bitmap_xor_into): Fixed latent performance issue where current
	was being properly kept up to date.
	(bitmap_clear_range, bitmap_compl_and_into): New functions to support
	dataflow analysis.
	* df.c (df_rd_confluence_n, df_alloc_reach_bitmaps, df_free_reach_bitmaps,
	df_clear_reach_bitmaps, df_ru_confluence_n, df_lr_confluence_0,
	df_lr_confluence_n, df_init, df_dump): Changed the way EH_USES is processed.
       	(df_bitmaps_alloc, df_bitmaps_free,
	df_bb_reg_def_chain_create, df_bb_reg_def_chain_create,
	df_reg_use_chain_create, df_rd_transfer_function,
	df_alloc_reach_bitmaps, df_ref_bitmap, df_bb_rd_local_compute,
	df_rd_local_compute, df_bb_ru_local_compute, df_analyze,
	df_analyze_subcfg, df_analyze_simple_change_some_blocks): Fixed
	performance problems by grouping all defs and uses
	for the same pseudo into contigious ranges.
	(df_bb_du_chain_create, df_bb_ud_chain_create): Combined in
	new function df_bb_chain_create.
	(df_chain_create, df_alloc_reach_bitmaps, df_free_reach_bitmaps,
	df_clear_reach_bitmaps, df_ref_bitmap): New function.
	(df_rd_init, df_rd_confluence_n, df_rd_transfer_function,
	df_rd_set_dflow, df_ru_transfer_function, df_ru_confluence_n,
	df_ru_transfer_function, df_ru_set_dflow, df_lr_transfer_function,
	df_lr_set_dflow, df_lr_confluence_n, df_ur_transfer_function,
	df_ur_set_dflow, df_ur_init, df_ur_transfer_function, df_ur_set_dflow
	df_ur_confluence_n, hybrid_search_forward, hybrid_search_backward
	iterative_dataflow): Changed interface for dataflow callback
	functions to hide where the source of bitmaps.
       	(df_rd_set_bitmaps, df_ru_set_bitmaps, df_lr_set_bitmaps,
	df_ur_set_bitmaps, df_bitmap_ior_edge):	Removed as part of
	changing dataflow callback interface.
	(df_free, df_ref_create, df_ref_record_1,
	df_record_exit_block_uses, df_refs_record, df_exit_lr_local_compute,
	df_insn_move_before, df_local_ref_killed_between_p,
	df_bb_regno_last_def_find, df_chain_dump, df_dump):
	Added chains that go to artifical uses in exit block.
	(df_exit_bb_reg_use_chain_create, df_exit_bb_chain_create):
	New functions to support artifical uses in exit block.
	(df_insn_refs_record): Added new DF_REF_CLOBBER ref type to
	avoid creation of artifical chains for clobbers at call sites.

2005-11-03  Paolo Bonzini  <bonzini@gnu.org>
	    Steven Bosscher  <stevenb@suse.de>

	* df.c (df_free): Fix call to df_bitmaps_free.
	(df_bb_regno_last_def_find): Make it return what it is supposed
	to return.
	(df_local_ref_killed_between_p): New.

2005-11-01  Daniel Berlin  <dberlin@dberlin.org>
            Kenneth Zadeck <zadeck@naturalbridge.com>

	* flow.c (update_life_info): Added debugging.
	(init_propagate_block_info): Fixed typo.
	* df.c (df_refs_unlink, df_ref_record_1, df_ref_record,
	read_modify_subreg_p, df_def_record_1, df_insn_refs_record):
	Fixed control of when regs_ever_live is modified.
	* combine.c: Documentation rot.
	* reload1.c: Used wrong type of comment.

2005-10-31  Jan Hubicka  <jh@suse.cz>

	* reg-stack.c (subst_stack_regs_pat): Expect USEs to be ignored for
	liveness.
	(change_stack): Initialize partially dead registers.
	(convert_regs_1): Handle dead return values.
	(reg_to_stack): Switch to partial liveness.
	(propagate_stack): Push in partially live stuff.

2005-10-25  Daniel Berlin  <dberlin@dberlin.org>
            Kenneth Zadeck <zadeck@naturalbridge.com>

	* cfgrtl.c (print_rtl_with_bb): Fixed problem with debugging
	output of bitmaps.
	* df.c (mark_reg_change): Fixed problem computing sizes of hard regs.
	* reload1.c (reload): Fixed over agressive updating of bitmaps.
	* sched-rgn.c (schedule_insns): Cleaned away some useless verification
	code.
	(rest_of_handle_sched2): Removed debugging.


2005-10-24  Kenneth Zadeck <zadeck@naturalbridge.com>

	* sched-rgn.c (check_live_1, update_live_1, rest_of_handle_sched):
	Converted to use partially available liveness.
	(init_regions, schedule_insns, rest_of_handle_sched):
	Removed assertion checking based on death notes.


2005-10-23  Daniel Berlin  <dberlin@dberlin.org>
	    Kenneth Zadeck <zadeck@naturalbridge.com>

	* df.c (df_bitmaps_alloc, df_lr_local_compute, df_compute_all_blocks):
	Removed df->all_blocks.
	(df_lr_local_compute): Added flag to indicate that
	blocks was really the whole function.
	(df_ref_record): Fixed missing case for memory refs.
	(df_insn_refs_record): Fixed regs ever live processing.
	(df_bb_refs_record): Removed debugging code.
	(df_bb_lr_local_compute, notice_stack_pointer_modification,
	df_bb_lr_local_compute): Moved stack pointer modification
	detection code back to flow.c.
	(df_bb_lr_local_compute, hybrid_search_forward,
	hybrid_search_backward): Formatting cleanup.
	(df_compute_all_blocks, notice_stack_pointer_modification):
	Removed.
	(df_analyze):  Changed the definition of whole program to be all
	reachable blocks rather than all blocks.
	(df_analyze_subcfg, df_analyze_simple_change_some_blocks): Added
	parameter to df_lr_local_compute.
	(df_rtx_reg_replace): Fixed way it decided it was processing
	entire function.
	* df.h: Removed all_blocks from struct df definition.
	* flow.c (notice_stack_pointer_modification_1,
	notice_stack_pointer_modification): Added back.
	(life_analysis): Added back call to
	notice_stack_pointer_modification.
	(struct tree_opt_pass pass_life, rest_of_handle_flow2):
	Added debugging.
	* gcse.c (gcse_main, bypass_jumps): Additional places where we had missed
	in renumbering entry and exit blocks.
	* global.c (global_alloc): Additional debugging code.


2005-10-19  Daniel Berlin  <dberlin@dberlin.org>

	* df.c (df_lr_local_compute): Fix thinko regarding pseudos and call
	defs.

2005-10-19  Kenneth Zadeck <zadeck@naturalbridge.com>

	* df.c (df_bitmap_ior_edge, df_lr_confluence_0
	df_lr_confluence_n, df_ur_confluence_n, df_ur_set_bitmaps): New
	functions.
	(df_exit_lr_local_compute, dataflow_set_a_op_b): Removed
	functions.
	(df_ur_set_bitmaps, mark_reg_change, df_ur_local_finalize,
	mark_reg_use_for_earlyclobber, df_ur_local_compute,
	df_bb_reg_live_start, df_bb_reg_live_end, df_bb_reg_live_start_p,
	df_bb_reg_live_end_p): Renamed "reaching registers"
	problem (rr) to "uninitialized registers" problem.
	(df_free): Changed variables freed.
	(df_ref_record): Added more sophisticated hard register scan.
	(df_insn_refs_record): Changed way invalidated_by_call is
	processed.
	(df_bb_refs_record, df_exit_lr_local_compute,
	df_bb_lr_local_compute): Removed bad way to simulate edge functions.
	There are now real confluence functions.
	(notice_stack_pointer_modification): Disabled.
	(df_bb_lr_local_compute): Disabled call to
	notice_stack_pointer_modification. Added code to properly handle hard
	regs at call site.
	(df_lr_local_compute): Added more hard reg processing.
	Changed order exit block is processed.
	(df_init): Added some invariant hard regs initialization.
	(df_refs_process): Removed artifical special case.
	(df_print_bb_index, df_dump): Removed parameter to df_dump.
	(hybrid_search_forward, hybrid_search_backward): Added
	confluence function calls.
	(iterative_dataflow): Added hack to initialize in and out sets
	with hard registers.  This will be removed later.
	* df.h: Removed DF_ARTIFICIAL_DEFS.  Renamed "reaching registers".
	problem (rr) to "uninitialized registers" problem. Changed confluence
	operator to general confluence functions.
	* flow.c (verify_wide_reg, verify_local_live_at_start): Removed
	parameter to df_dump.
	* reg_stack.c (reg_to_stack): Ditto.
	* sched_rgn.c (init_regions, schedule_insns): Ditto.
	* web.c (web_main): Ditto.
	* flow.c: (update_life_info): Removed DF_ARTIFICIAL_DEFS.
	* global.c (global_alloc): Ditto.


Copyright (C) 2005-2007 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
