aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfglayout.c
AgeCommit message (Collapse)AuthorFilesLines
2002-05-16Revert "Basic block renumbering removal", and two followup patches.Richard Henderson1-42/+32
From-SVN: r53537
2002-05-16Basic block renumbering removal.Zdenek Dvorak1-32/+42
From-SVN: r53522
2002-05-11i386.md (testsi to testqi spliters): New.Jan Hubicka1-0/+81
* i386.md (testsi to testqi spliters): New. 2002-01-14 Josef Zlomek <zlomek@matfyz.cz> cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU. Wed Jan 9 2002 Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz> * basic-block.h: New flag EDGE_CAN_FALLTHRU * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges that can be made fallthru. Mon Nov 12 16:25:53 CET 2001 Jan Hubicka <jh@suse.cz> * cfglayout.c (cleanup_unconditional_jumps): New static function. (cfg_layout_initialize): Use it. Co-Authored-By: Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz> From-SVN: r53383
2002-05-08cfglayout.c (function_tail_eff_head): Rename to ...Jan Hubicka1-40/+340
* cfglayout.c (function_tail_eff_head): Rename to ... (function_footer): ... this one. (unlink_insn_chain): New functions. (label_for_bb): Only call block_label and emit debug message. (record_effective_endpoints): Actually unlink the headers and footers. (fixup_reorder_cahin): Re-insert the unlinked sequences. (cfg_layout_duplicate_bb): Use duplicate_insn_chain. * cfglayout.h (struct reorder_block_def): New fields footer/header; remove eff_head/eff_end. * rtl.h (set_first_insn): Declare. * emit-rtl.c (set_first_insn): New function. * cfglayout.c (fixup_reorder_chain): Dump duplicated (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge, cfg_layout_duplicate_bb): New global function. (duplicate_insn_chain): New static function. * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge, cfg_layout_duplicate_bb): Declare. (struct reorder_block_def): Add "original" field. * emit-rtl.c (emit_copy_of_insn_after): New function. * rtl.h (emit_copy_of_insn_after): Declare. * cfglayout.c (fixup_fallthru_exit_predecessor): Kill. (fixup_reorder_chain): properly handle edges to exit block. Wed May 8 11:10:31 CEST 2002 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> Jan Hubicka <jh@suse.cz> * basic-block.h (note_prediction_to_br_prob): declare. * c-semantics.c: Inlucde predit.h (expand_stmt): predict GOTO_STMT as not taken. * cfgcleanup.c: (delete_unreachable_blocks): Make global. (cleanup_cfg): Do not free tail_recursion_list. * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION. (flow_delete_block): Kill predictions past end of basic block. * output.h (delete_unreachable_blocks): Declare. * predict.c (predicted_by_p, process_note_predictions, process_note_prediction, last_block_p): New function. (estimate_probability): Bypass loop on PRED_CONTINUE; do not handle noreturn heuristics; kill PRED_RETURN; add PRED_EARLY_RETURN. * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO, PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New. * predict.h (IS_TAKEN): New constant. * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION. * rtl.c (NOTE_INSN_PREDICTION): New. * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS): New macro. (insn_note): add NOTE_INSN_PREDICTION. * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build CFG; free tail_recursion_label_list. * stmt.c: Include predict.h; (return_prediction): New. (expand_value_return): Use it. * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall. From-SVN: r53285
2002-01-10basic-block.h (update_br_prob_note): Declare.Jan Hubicka1-0/+2
* basic-block.h (update_br_prob_note): Declare. * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note. (try_forward_edges): Care negative frequencies and update note. (outgoing_edges_match): Tweek conditional merging heuristics. (try_crossjump_to_edge): use update_br_prob_note. * cfglayout.c (fixup_reorder_chain): Likewise. * cfrtl.c (update_br_prob_note): New. * ifcvt.c (dead_or_predicable): Call update_br_prob_note. * i386.c (ix86_decompose_address): Return -1 if address contains shift. (legitimate_address_p): Require ix86_decompose_address to return 1. * gcse.c (hash_scan_set): Use CONSTANT_INSN_P. (cprop_insn): Likewise. From-SVN: r48750
2001-12-30cfglayout.c (scope_def, [...]): Remove.Richard Henderson1-624/+96
* cfglayout.c (scope_def, scope_forest_info, forest, relate_bbs_with_scopes, make_new_scope, build_scope_forest, remove_scope_notes, insert_intra_before_1, insert_intra_1, insert_intra_bb_scope_notes, insert_inter_bb_scope_notes, rebuild_scope_notes, free_scope_forest_1, dump_scope_forest, dump_scope_forest_1, get_next_bb_note, get_prev_bb_note): Remove. (fixup_reorder_chain): Don't set scope for bb. (insn_scopes, scope_to_insns_initialize, set_block_levels, change_scope, scope_to_insns_finalize): New. (cfg_layout_initialize, cfg_layout_finalize): Update to match. * cfglayout.h (scope_def, scope): Remove. (reorder_block_def): Remove scope member. (scope_to_insns_initialize, scope_to_insns_finalize): Declare. * haifa-sched.c: Revert reemit_other_notes change. * sched-ebb.c (schedule_ebbs): Don't call remove_unnecessary_notes. Use scope_to_insns_initialize and scope_to_insns_finalize. * sched-rgn.c (schedule_insns): Likewise. * gcc.dg/debug-6.c: New. From-SVN: r48412
2001-12-29cfglayout.c (insert_intra_before_1): New.Jakub Jelinek1-12/+57
* cfglayout.c (insert_intra_before_1): New. (insert_inter_bb_scope_notes): Emit sibling block notes which don't span multiple basic blocks. * gcc.dg/debug-3.c: New test. * gcc.dg/debug-4.c: New test. * gcc.dg/debug-5.c: New test. From-SVN: r48380
2001-12-27haifa-sched.c (reemit_other_notes): New.Richard Henderson1-1/+2
* haifa-sched.c (reemit_other_notes): New. (schedule_block): Use it. * sched-ebb.c (schedule_ebbs): Call remove_unnecessary_notes. * sched-rgn.c (schedule_insns): Likewise. * cfglayout.c (remove_scope_notes): Handle removing note at the end of the insn chain. * function.c (debug_find_var_in_block_tree): New. * gcc.dg/debug-1.c, gcc.dg/debug-2.c: New. From-SVN: r48333
2001-12-24rtl.h (in_expr_list_p): New declaration.Richard Kenner1-150/+121
* rtl.h (in_expr_list_p): New declaration. * rtlanal.c (in_expr_list_p): New function. * cfgcleanup.c: Reformatting and minor code rearrangement. * cfglayout.c, cfgloop.c, cfgrtl.c: Likewise. From-SVN: r48304
2001-11-16cfglayout.c (fixup_fallthru_exit_predecesor): Make void, rename to ....Andreas Jaeger1-7/+7
* cfglayout.c (fixup_fallthru_exit_predecesor): Make void, rename to .... (fixup_fallthru_exit_predecessor): ... this. Change callers and prototype. From-SVN: r47098
2001-11-14cfglayout.c (fixup_fallthru_exit_predecesor): New static function.Jan Hubicka1-0/+26
* cfglayout.c (fixup_fallthru_exit_predecesor): New static function. (cfg_layout_finalize): Use it. * bb-reorder.c (HAVE_epilogue): Remove. (make_reorder_chain): Do not care special placement of last basic block. * predict.c (expected_value_to_br_prob): Delete the note once transformed. * c-decl.c (c_expand_body): Fix TV_EXPAND nesting problem; measure integration time separately. From-SVN: r47019
2001-11-11ChangeLog.2, [...]: Fix spelling errors.Joseph Myers1-1/+1
* ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog.5, ChangeLog, cfg.c, cfganal.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, collect2.c, combine.c, config.in, configure, configure.in, conflict.c, dwarf2out.c, dwarfout.c, except.c, final.c, flow.c, genattrtab.c, ggc-page.c, jump.c, lcm.c, predict.c, reg-stack.c, reload1.c, rtlanal.c, sched-rgn.c, toplev.c, unwind-dw2-fde.h: Fix spelling errors. From-SVN: r46928
2001-11-05Makefile.in (bb-reoder.o): Add depdendency on cfglayout.h; remove unneded ↵Jan Hubicka1-0/+1079
depdendencies; * Makefile.in (bb-reoder.o): Add depdendency on cfglayout.h; remove unneded depdendencies; (cfglayout.o): New. * cfglayout.c, cfglayout.h: New files; break out from ... * bb-reorder.c: ... here; Remove unneeded includes; From-SVN: r46786