1. 27 Jan, 2003 1 commit
  2. 25 Jan, 2003 3 commits
  3. 23 Jan, 2003 1 commit
    • re PR rtl-optimization/8423 (CSE1 not propagating __builtin_constant_p enough) · 34ee7f82
      	PR optimization/8423
      	* cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when
      	its argument is constant, or 0 if !flag_gcse.
      	* simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1
      	if it's argument is constant.
      	* gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes.
      	(hash_scan_set): Don't record CONSTANT_P_RTX expressions.
      	(do_local_cprop): Don't propagate CONSTANT_P_RTX constants.
      	* builtins.c (purge_builtin_constant_p): New function to force
      	instantiation of any remaining CONSTANT_P_RTX nodes.
      	* rtl.h (purge_builtin_constant_p): Prototype here.
      	* toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p
      	pass after GCSE and before loop.
      	(flag_gcse): No longer static.
      	* flags.h (flag_gcse): Prototype here.
      
      From-SVN: r61642
      Roger Sayle committed
  4. 17 Jan, 2003 1 commit
    • et-forest.c: Fix comment typos. · fbe5a4a6
      	* et-forest.c: Fix comment typos.
      	* et-forest.h: Likewise.
      	* except.c: Likewise.
      	* expr.c: Likewise.
      	* flags.h: Likewise.
      	* flow.c: Likewise.
      	* gcc.c: Likewise.
      	* gcse.c: Likewise.
      	* genattrtab.c: Likewise.
      	* genautomata.c: Likewise.
      	* gengtype.c: Likewise.
      	* genrecog.c: Likewise.
      	* global.c: Likewise.
      	* gthr-rtems.h: Likewise.
      
      From-SVN: r61443
      Kazu Hirata committed
  5. 16 Jan, 2003 1 commit
    • gcse.c (one_cprop_pass): Change function arguments to take both cprop_jumps and… · a0134312
      gcse.c (one_cprop_pass): Change function arguments to take both cprop_jumps and bypass_jumps flags...
      
      
      	* gcse.c (one_cprop_pass): Change function arguments to take both
      	cprop_jumps and bypass_jumps flags instead of just alter_jumps.
      	(gcse_main): Update calls to one_cprop_pass, disabling bypassing.
      	(bypass_jumps): New function to perform separate jump bypassing pass.
      	* rtl.h (bypass_jumps): Add function prototype.
      	* timevar.def (TV_BYPASS): New timing variable.
      	* toplev.c (enum dump_file_index): Add new entry DFI_bypass.
      	(dump_file): New entry for the bypass RTL dump file.
      	(rest_of_compilation): Insert new jump bypassing optimization
      	pass after loop.
      	* doc/passes.texi: Document new pass.
      
      From-SVN: r61374
      Roger Sayle committed
  6. 07 Jan, 2003 1 commit
  7. 16 Dec, 2002 1 commit
  8. 19 Nov, 2002 1 commit
  9. 14 Oct, 2002 1 commit
  10. 11 Oct, 2002 1 commit
  11. 30 Sep, 2002 1 commit
  12. 22 Sep, 2002 1 commit
    • dbxout.c: Follow spelling conventions. · cc2902df
      	* dbxout.c: Follow spelling conventions.
      	* defaults.h: Likewise.
      	* df.c: Likewise.
      	* diagnostic.h: Likewise.
      	* doloop.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* dwarfout.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* except.c: Likewise.
      	* explow.c: Likewise.
      	* expmed.c: Likewise.
      	* expr.c: Likewise.
      	* expr.h: Likewise.
      	* flags.h: Likewise.
      	* flow.c: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* gcc.c: Likewise.
      	* gcov-io.h: Likewise.
      	* gcov.c: Likewise.
      	* gcse.c: Likewise.
      	* genattrtab.c: Likewise.
      	* genconfig.c: Likewise.
      	* genrecog.c: Likewise.
      	* ggc-page.c: Likewise.
      	* ggc.h: Likewise.
      	* global.c: Likewise.
      	* gthr-win32.h: Likewise.
      	* integrate.c: Likewise.
      	* jump.c: Likewise.
      	* langhooks.c: Likewise.
      	* langhooks.h: Likewise.
      	* line-map.h: Likewise.
      	* local-alloc.c: Likewise.
      	* longlong.h: Likewise.
      	* loop.c: Likewise.
      	* loop.h: Likewise.
      
      From-SVN: r57406
      Kazu Hirata committed
  13. 13 Aug, 2002 1 commit
  14. 01 Aug, 2002 1 commit
    • gcse.c (expr_hash_table_size, [...]): Removed. · 02280659
      	* gcse.c (expr_hash_table_size, n_exprs, set_hash_table_size,
      	n_sets): Removed.
      	(expr_hash_table, set_hash_table): Type changed to ...
      	(struct hash_table): New type.
      	(hash_scan_insn, hash_scan_set, hash_scan_clobber, hash_scan_call,
      	insert_expr_in_table, insert_set_in_table, compute_hash_table,
      	dump_hash_table, lookup_expr, lookup_set, compute_local_properties,
      	compute_ae_gen, compute_ae_kill): Modified to pass the table explicitly.
      	(alloc_set_hash_table, alloc_expr_hash_table): Merged to ...
      	(alloc_hash_table): New.
      	(free_set_hash_table, free_expr_hash_table): Merged to ...
      	(free_hash_table): New.
      	(compute_set_hash_table, compute_expr_hash_table): Merged to ...
      	(compute_hash_table_work): New.
      	(classic_gcse, one_classic_gcse_pass, compute_cprop_data,
      	find_avail_set, one_cprop_pass, find_bypass_set, compute_pre_data,
      	pre_edge_insert, pre_insert_copies, pre_delete, pre_gcse,
      	one_pre_gcse_pass, compute_transpout, compute_code_hoist_vbeinout,
      	hoist_code, one_code_hoisting_pass,
      	trim_ld_motion_mems): Altered due to changed type of hash tables.
      
      From-SVN: r55940
      Zdenek Dvorak committed
  15. 30 Jul, 2002 1 commit
  16. 25 Jul, 2002 1 commit
  17. 23 Jul, 2002 3 commits
    • genautomata.c (VLA_HWINT_SHORTEN, [...]): Remove. · 10d6af32
      	* genautomata.c (VLA_HWINT_SHORTEN, VLA_HWINT_LAST): Remove.
      	* df.c (HANDLE_SUBREG, FOR_EACH_BB_IN_BITMAP_REV,
      	FOR_EACH_BB_IN_SBITMAP): Remove.
      	* gcse.c (NEVER_SET, FOLLOW_BACK_EDGES): Remove.
      	* haifa-sched.c (DONE_PRIORITY, MAX_PRIORITY, TAIL_PRIORITY,
      	LAUNCH_PRIORITY, DONE_PRIORITY_P, LOW_PRIORITY_P): Remove.
      	* loop.c (PREFETCH_BLOACK_IN_LOOP_MIN,
      	PREFETCH_LIMIT_TO_SIMULTANEOUS): Remove.
      	* regrename.c (REGNO_MODE_OK_FOR_BASE_P): Remove.
      
      From-SVN: r55685
      Neil Booth committed
    • gcse.c (try_replace_reg): Use num_changes_pending. · 2b773ee2
      2002-07-23  Jan Hubicka  <jh@suse.cz>
      
      	* gcse.c (try_replace_reg): Use num_changes_pending.
      	* recog.c (num_changes_pending): New function.
      	(validate_replace_src): Use validate_repalce_src_group.
      	(validate_replace_src_group): New.
      	* recog.h (validate_repalce_src_group): New.
      	(num_changes_pending): Likewise.
      
      From-SVN: r55677
      Jan Hubicka committed
    • defaults.h (obstack_chunk_alloc, [...]): Default definition. · 4fa31c2a
      	* defaults.h (obstack_chunk_alloc, obstack_chunk_free):
      	Default definition.
      	* gcse.c: Don't define obstack_chunk_free.
      	* collect2.c, conflict.c, df.c, diagnostic.c, fix-header.c,
      	flow.c, gcc.c, genattrtab.c, genautomata.c, genflags.c, gensupport.c,
      	integrate.c, loop.c, ra.c, read-rtl.c, regrename.c, reload1.c,
      	reorg.c, tlink.c, tree.c, config/arm/arm.c, objc/objc-act.c:
      	Don't define obstack macros.
      cp:
      	* class.c, method.c, pt.c, search.c: Similarly.
      
      From-SVN: r55665
      Neil Booth committed
  18. 21 Jul, 2002 1 commit
  19. 20 Jul, 2002 1 commit
    • gcse.c: Include cselib.h · ae860ff7
      	* gcse.c: Include cselib.h
      	(constptop_register): Break out from ...
      	(cprop_insn): ... here; kill basic_block argument.
      	(do_local_cprop, local_cprop_pass): New functions.
      	(one_cprop_pass): Call local_cprop_pass.
      
      From-SVN: r55615
      Jan Hubicka committed
  20. 18 Jul, 2002 1 commit
  21. 28 Jun, 2002 1 commit
  22. 27 Jun, 2002 1 commit
  23. 20 Jun, 2002 1 commit
    • Mon Jun 10 20:42:34 CEST 2002 Jan Hubicka <jh@suse.cz> · 355be0dc
      	* basic-block.h: Do not include et-forest.h
      	(dominance_info): Declare as struct dominance-info.
      	* cfglayout.c (cleanup_unconditional_jumps): Remove the edge before
      	deleting block.
      	* dominance.c (struct dominance_info): Define.
      	(BB_NODE, SET_BB_NODE): New macros.
      	(bb_hash_func, bb_eq_func): Kill.
      	(calculate_dominace_info, free_dominacne_info, set_immediate_dominator,
      	nearest_common_dominator, dominated_by_p, recount_dominator,
      	add_to_dominance_info, delete_from_dominance_info): update for new
      	representation.
      	(get_dominated_by, redirect_immediate_dominators): Rewrite using
      	enumerate_sons.
      	* ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap,
      	find_if_case_1, find_if_case_2): Remove killed blocks from dominance
      	structure.
      
      	* et-forest.h: Update copyright; revamp all function to operate on
      	nodes
      	(et_forest_value): Kill.
      	(et_forest_enumerate_sons, et_forest_node_value): New.
      	* et-forest.c: Update copyright.
      	* et-forest.h: Update copyright; revamp all function to operate on
      	nodes
      	(et_forest_value): Kill.
      	(et_forest_enumerate_sons, et_forest_node_value): New.
      
      	Thu Jun  6 22:43:43 CEST 2002  Jan Hubicka  <jh@suse.cz>
      
      	* basic-block.h: Inlude et-forest.h
      	(basic_block_def): Kill dominator.
      	(dominance_info): New type.
      	(loops): Use dominace_info.
      	(dominace handling functions): Take dominace_info as argument
      	instead of bitmaps.
      	(create_preheader): Likewise.
      	* cfg.c (entry_exit_blocks): Kill dominator.
      	(dump_flow_info): Do not dump dominators.
      	* cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from
      	dominators.
      	* cfgloop.c (flow_pre_header_find): Use dominacne_info.
      	(flow_loops_pre_header_scan, make_forwarder_block,
      	canonicale_loop_headers, flow_loops_find): Likewise.
      	* dominance.c: Include error.h
      	(idoms_to_doms): Kill.
      	(bb_hash_func, bb_eq_func): New static functions.
      	(debug_dominace_info): New global function.
      	(calculate_dominance_info): Use new et forest structure.
      	(free_dominace_info, get_immediate_dominator, set_immediate_dominator,
      	get_dominated_by, redirect_immediate_dominators,
      	nearest_common_dominator, dominated_by_p, verify_dominators,
      	recount_dominator, iterate_fix_dominators, add_to_dominace_info,
      	delete_from_dominance_info): New global functions.
      	* gcse.c (domnators): CHange to dominance_info.
      	(alloc_hoist_mem): Do not alloc dominators
      	(free_code_hoist_mem): Use free_dominance_info.
      	(compute_code_hoist_data): Use dominance_info.
      	(hoist_code): Likewise.
      	* ifcvt.c (post_dominators): Likewise.
      	(find_if_case_2, if_convert): Likewise.
      	* predict.c (process_note_predictions, process_note_prediction,
      	estimate-probability): Likewise.
      	* sched-rgn.c (find_rgns, init_regions): Likewise.
      	* ssa-dce.c (find_all_control_dependences, fint_control_depemndence,
      	find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise.
      	* ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers,
      	find_evaluations, convert_to_ssa): Likewise.
      	* ssa.h (compute_dominance_frontiers): Likewise.
      
      	Thu Jun  6 22:57:34 CEST 2002  Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
      
      	* Makefile.in (et-forest.c): Add.
      	* et-forest.c: New file.
      	* at-forest.h: New file.
      
      Co-Authored-By: Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz>
      
      From-SVN: r54843
      Jan Hubicka committed
  24. 14 Jun, 2002 1 commit
  25. 11 Jun, 2002 2 commits
    • i386.c (x86_promote_QImode): Set for Athlon · 285464d0
      	* i386.c (x86_promote_QImode): Set for Athlon
      	(x86_fast_prefix): New global variable.
      	(x86_arch_always_fancy_math_387): Fix formating.
      	* i386.h (x86_fast_prefix): Declare
      	(TARGET_FAST_PREFIX): define.
      	* i386.md (and to strict_low_part, HI to SI
      	promoting splitter): Use new macro.
      
      	* i386.h (RTX_COSTS): float_extend is not for free for SSE.
      
      From-SVN: r54521
      Jan Hubicka committed
    • Delete SEQUENCE rtl usage outside of reorg and ssa passes. · 2f937369
      2002-06-05  David S. Miller  <davem@redhat.com>
      
      	Delete SEQUENCE rtl usage outside of reorg and ssa passes.
      	* rtl.h (gen_sequence, emit_insns, emit_insns_before,
      	emit_insns_before_scope, emit_insns_after,
      	emit_insns_after_scope): Delete declaration.
      	* ada/misc.c (insert_code_for): Use emit_insn* instead of
      	emit_insns_foo.
      	* config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE.
      	(alpha_set_memflags): Fix comment.
      	(set_frame_related_p): Use get_insns instead of gen_sequence.
      	* config/alpha/alpha.md (setjmp receiver splitter): Avoid
      	emitting no insns.
      	* config/arm/arm.c (arm_finalize_pic): Use get_insns instead of
      	gen_sequence.
      	(arm_gen_load_multiple, arm_gen_store_multiple): Likewise.
      	* config/fr30/fr30.c (fr30_move_double): Likewise.
      	* config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr):
      	Likewise.
      	* config/ia64/ia64.c (spill_restore_mem): Likewise.
      	* config/ia64/ia64.md (conditional move spliiter): Avoid emitting
      	no insns.
      	* config/m32r/m32r.c (gen_split_move_double): Use get_insns
      	instead of gen_sequence.
      	* config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise.
      	(mips_expand_prologue, mips16_gp_pseudo_reg): Likewise.
      	* config/sh/sh.c (sh_need_epilogue): Likewise.
      	* config/sparc/sparc.md (current_function_calls_alloca, flat): New
      	attributes.
      	(setjmp pattern and split): Use them to avoid splitter which emits
      	no RTL.
      	* genattrtab.c (main): Emit include of function.h
      	* config/stormy16/stormy16.c (xstormy16_split_cbranch): Use
      	get_insns instead of gen_sequence.
      	* config/cris/cris.c (cris_split_movdx): Likewise.
      	* emit-rtl.c (emit_insns*): Kill.
      	(try_split): Expect insn list instead of SEQUENCE.
      	(make_jump_insn_raw, make_call_insn_raw): Fix comments.
      	(emit_*insn*): Reimplement to work with INSN lists and PATTERNs.
      	Make them abort if a SEQUENCE is given and RTL checking is
      	enabled.
      	(emit_*_scope): Don't forget to set scope on final insn.
      	(gen_sequence): Move from here...
      	* ssa.c (gen_sequence): To here as private function.
      	* builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix
      	comments.
      	(expand_builtin_return, expand_builtin_mathfn): Likewise.
      	(expand_builtin_strlen): Use get_insns instead of gen_sequence.
      	(expand_builtin_saveregs): Use emit_insn_foo, fix comments.
      	(expand_builtin_expect_jump): Use get_insns and fix comments.
      	* calls.c (try_to_integrate): Use emit_insn_foo.
      	(expand_call, emit_library_call_value_1): Likewise.
      	* expr.c (emit_queue): Handle insn lists instead of SEQUENCE.
      	(emit_move_insn_1): Use get_insns instead of gen_sequence.
      	(expand_expr): Use emit_insn_foo.
      	* cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo.
      	* except.c (build_post_landing_pads): Likewise.
      	* flow.c (attempt_auto_inc): Likewise.
      	* stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label,
      	expand_nl_goto_receivers, expand_decl_cleanup): Likewise.
      	* function.c (fixup_var_refs_insn): Use get_insns instead of
      	gen_sequence.
      	(fixup_var_refs_1): Likewise and expect insn list from gen_foo.
      	(fixup_memory_subreg): Use get_insns instead of gen_sequence.
      	(fixup_stack_1, purge_addressof_1, expand_main_function,
      	get_arg_pointer_save_area): Likewise.
      	(optimize_bit_field, instantiate_virtual_regs_1, assign_parms,
      	expand_function_end): Use emit_insn_foo.
      	(record_insns, keep_stack_depressed): Work with insn list instead
      	of SEQUENCE, fix comments.
      	* ifcvt.c (noce_emit_store_flag, noce_try_store_flag,
      	noce_try_store_flag_constants, noce_try_store_flag_inc,
      	noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith,
      	noce_try_minmax, noce_try_abs): Use emit_insn_foo.
      	(noce_process_if_block): Use get_insns instead of gen_sequence.
      	* optabs.c (add_equal_note): Work with insn list, fix comments.
      	(expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo.
      	(expand_unop, expand_complex_abs, expand_unop_insn,
      	expand_no_conflict_block): Likewise.
      	(gen_move_insn): Use get_insns instead of gen_sequence.
      	(gen_cond_trap): Likewise.
      	* integrate.c (copy_rtx_and_substitute): Likewise.
      	(emit_initial_value_sets): Use emit_insn_foo.
      	* reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise.
      	(fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently
      	now that RTL generators give insn lists.
      	* sibcall.c (replace_call_placeholder): Use emit_insn_foo.
      	* doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns
      	instead of gen_sequence.
      	(doloop_optimize): Work with insn lists instead of SEQUENCE rtl.
      	* explow.c (emit_stack_save, emit_stack_restore): Use get_insns
      	instead of gen_sequence.
      	* loop.c (move_movables, emit_prefetch_instructions,
      	gen_add_mult, check_dbra_loop, gen_load_of_final_value):
      	Likewise.
      	(loop_regs_update): Work with insn list instead of SEQUENCE rtl.
      	(product_cheap_p): Likewise, and add commentary about RTL wastage
      	here.
      	* lcm.c (optimize_mode_switching): Use get_insns instead of
      	gen_sequence.
      	* profile.c (gen_edge_profiler): Likewise.
      	* regmove.c (copy_src_to_dest): Likewise.
      	* reg-stack.c (compensate_edge): Likewise and fix comment.
      	* gcse.c (process_insert_insn): Likewise.
      	(insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl.
      	* jump.c (delete_prior_computation): Update comment.
      	* genemit.c (gen_expand, gen_split, main): Use get_insns instead
      	of gen_sequence, update comments to match.
      	* recog.c (peephole2_optimize): Work with insn lists instead of
      	SEQUENCE rtl.
      	* sched-vis.c (print_pattern): Abort on SEQUENCE.
      	* unroll.c (unroll_loop, find_splittable_givs, final_giv_value):
      	Use get_insns instead of gen_sequence.
      	(copy_loop_body): Likewise and don't emit dummy NOTE.
      	* genrecog.c: Don't mention SEQUENCE rtl in comments.
      	* combine.c (try_combine): Expect insn lists from split generator.
      	* reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by
      	hand.
      
      From-SVN: r54497
      David S. Miller committed
  26. 10 Jun, 2002 1 commit
  27. 04 Jun, 2002 3 commits
  28. 02 Jun, 2002 5 commits
    • loop.c (emit_prefetch_instructions): Properly place the address computation. · ba4f7968
      
      	* loop.c (emit_prefetch_instructions): Properly place the address computation.
      
      
      	* basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill.
      	(set_block_for_insn): Turn into macro.
      	* cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn.
      	* cfglayout.c (insn_scopes): Kill.
      	(scope_to_insns_initialize): Do not use insn_scopes.
      	(scope_to_insns_finalize): Likewise.
      	(duplicate_insn_chain): Likewise.
      	(cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes.
      	* cfgrtl.c (basic_block_for_insn): Kill.
      	(delete_insn_and_edges, delete_insn_chain_and_edges): Simplify.
      	(create_basic_block_structure): Use reorder_insns.
      	(compute_bb_for_insn): Do not use basic_block_for_insn.
      	(merge_blocks_nomove): Likewise.
      	(update_bb_for_insn): Likewise.
      	(verify_flow_info): Likewise.
      	(set_block_for_insn): Kill.
      	* combine.c (try_combine): Update gen_rtx_INSN call.
      	* emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call.
      	(mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear
      	scopes and BBs.
      	(add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify.
      	(emit_note_before, emit_note_after, emit_line_note_after, emit_note):
      	Clear BB.
      	(emit_insns_after): Simplify.
      	(emit_copy_of_insn_after): Copy scope.
      	* final.c (final_start_function): Lower scopes.
      	* flow.c (check_function_return_warnings): Do not rely on deleted insn.
      	* integrate.c (copy_insn_list): Cope scopes.
      	* jump.c (duplicate_loop_exit_test): LIkewise; simplify.
      	* loop.c (loop_optimize): Do not care block notes.
      	* print-rtl.c (print_rtx): Print BB.
      	* recog.c (apply_change_group): Simplify.
      	* rtl.c (copy_rtx): Handle 'B'.
      	* rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields.
      	* rtl.h (Field accessors): Update indexes.
      	* sched-ebb.c (schedule_ebbs): Do not lower notes.
      	* sched-rgn.c (schedule_insns): Likewise.
      	* toplev.c (rest_of_compilation): Lower notes.
      	* unroll.c (unroll_loop): Do not care scoping notes.
      	(copy_loop_body): Copy scopes.
      
      From-SVN: r54188
      Jan Hubicka committed
    • rtl.h (CC0_P): New. · 818b6b7f
              * rtl.h (CC0_P): New.
              * gcse.c (cprop_jump): Use it with single_set.  Tweak dump text.
              (cprop_insn): Allow any mode register; use CC0_P.  CSE out single_set.
              (bypass_block): Save old dest block for dump text.
              (bypass_conditional_jumps): Allow any mode register; use CC0_P.
              Allow only true SET insns, not single_set.
      
      From-SVN: r54178
      Richard Henderson committed
    • cfgrtl.c (commit_one_edge_insertion): Fix warning. · eae4bc56
      	* cfgrtl.c (commit_one_edge_insertion): Fix warning.
      	* gcse.c (bypass_conditional_jumps): CSE out single_set call.
      
      From-SVN: r54175
      Jan Hubicka committed
  29. 01 Jun, 2002 1 commit
    • gcse.c (cprop_cc0_jump): Function deleted. · 0e3f0221
      	* gcse.c (cprop_cc0_jump): Function deleted.
      	(cprop_jump): Take an additional argument which is the possibly
      	NULL cc setting insn immediately before the conditional jump.
      	When a MODE_CC set is present, substitute it into the JUMP_INSN
      	before attempting the constant propagation.
      	(cprop_insn):  Recognize cc setters followed by conditional jumps
      	as a special case.   Use cprop_jump instead of cprop_cc0_jump.
      	(cprop_one_pass):  Call bypass_conditional_jumps if altering jumps.
      	(find_bypass_set): New function based upon find_avail_set used by
      	cprop, but finds constant expressions available at the end of
      	basic blocks.
      	(bypass_block): New function.  Given a basic block that begins
      	with a conditional jump and multiple incoming edges, perform
      	the jump bypass optimization.
      	(bypass_conditional_jumps): New function.  Call bypass_block with
      	each suitable basic block in the CFG using a simple single pass.
      
      From-SVN: r54152
      Roger Sayle committed