summaryrefslogtreecommitdiff
path: root/gcc/cfgrtl.c
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Basic block renumbering removal", and two followup patches.rth2002-05-171-124/+118
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53537 138bc75d-0d04-0410-961f-82ee72b054a4
* Basic block renumbering removal.rth2002-05-161-118/+124
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53522 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.mmitchel2002-05-161-5/+14
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53521 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (purge_dead_edges): Handle abnormal call edges createdrth2002-05-131-13/+23
| | | | | | | | by non-local gotos. * recog.c (peephole2_optimize): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53438 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfganal.c (can_fallthru): Fix fast path.hubicka2002-05-091-0/+1
| | | | | | | | * cfgrtl.c (verify_flow_info): Avoid crash on conditionals with edges to the next block. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53327 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfglayout.c (function_tail_eff_head): Rename to ...hubicka2002-05-081-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53285 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computedhubicka2002-05-021-1/+7
| | | | | | | | jumps post reload. * toplev.c (rest_of_compilation): Revert Richard's patch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53052 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insnrth2002-04-271-2/+3
| | | | | | | for fallthru search. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52826 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h (flow_delete_block_noexpunge): Declare.rth2002-04-101-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (expunge_block_nocompact): Declare. * cfg.c (expunge_block_nocompact): Split out from ... (expunge_block): ... here. * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels. (flow_delete_block_noexpunge): Split out from ... (flow_delete_block): ... here. * cfgcleanup.c (delete_unreachable_blocks): Compact while removing dead blocks. * except.c (exception_handler_labels): Remove. (exception_handler_label_map): New. (struct eh_region): Add aka member. (mark_ehl_map_entry, mark_ehl_map, free_region): New. (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New. (for_each_eh_label, for_each_eh_label_1): New. (init_eh): Register exception_handler_label_map. (free_eh_status): Use free_region. (find_exception_handler_labels): Use the map, not the list. (remove_exception_handler_label): Likewise. (maybe_remove_eh_handler): Likewise. (remove_eh_handler): Use the region aka bitmap. * except.h (exception_handler_labels): Remove. (for_each_eh_label): Declare. * jump.c (rebuild_jump_labels): Don't check exception_handler_labels. * loop.c (invalidate_loops_containing_label): New. (find_and_verify_loops): Use it. Use for_each_eh_label. * sched-rgn.c (is_cfg_nonregular): Use current_function_has_exception_handlers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52100 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead ofhubicka2002-03-271-2/+2
| | | | | | | assigning to BLOCK_FOR_INSN directly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51475 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgcleanup.c (outgoing_edges_math): Fix condition; relaxhubicka2002-03-221-0/+10
| | | | | | | | | | | | | | | | | | | frequencies match; avoid match on different loop depths. (try_crossjump_to_bb): Kill tests that no longer brings time savings. * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth updating code. (split_edge): Likewise. * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized variable. * Makefile.in (cfgrtl): Add insn-config.h depenendency. * cfgrtl.c: Include insn-config.h (split_block) Dirtify block in presence of conditional execution git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51168 138bc75d-0d04-0410-961f-82ee72b054a4
* * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanuphubicka2002-03-141-7/+2
| | | | | | | | | | | | | call after liveness analysis. * recog.c (split_insn): Use delete_insn_and_edges. * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump instructions to have branch prediction notes. * ia64reorg.c (ia64_reorg): Do not rebuild CFG. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50765 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has beenhubicka2002-03-081-3/+9
| | | | | | | | | | removed; fix return value. * combine.c (combine_instructions): Dirtify blocks where we failed to update liveness; purge dead edges; use update_life_info_in_dirty_blocks. * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50454 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.hubicka2002-03-061-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50363 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.hubicka2002-03-061-57/+203
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare * basic-block.h (update_life_info, update_life_info_in_dirty_blocks, delete_noop_moves): Return indeger. * flow.c (ndead): New variable. (propagate_block_delete_insn): Use delete_insn_and_edges; remove BB argument; update callers. (propagate_block_delete_libcall): Use delete_insn_chain_and_edges. (life_analysis): Do not call purge_all_dead_edges. (update_life_info): Return number of deleted insns; print statistics. (update_life_info_in_dirty_blocks): likewise. (delete_noop_moves): Use delete_insn_and_edges; print statistics; return number of insns deleted. * cse.c: Include timevar.h (delete_trivially_dead_insns): Kill preserve_basic_blocks argument; iterate until stabilizes; print statistics; return number of killed insns. * Makefile.in: (cse.o): Add timevar.h dependency * rtl.h (delete_trivially_dead_insns): New. * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer. * toplev.c (rest_of_compilation): Update callers. * cfgcleanup.c (try_optimize_cfg): Kill blocks. (try_optimize_cfg): Do not update liveness. (cleanup-cfg): Loop until try_optimize_cfg and dead code removal stabilizes; use delete_trivially_dead_insns. * cfgrtl.c (verify_flow_info): Sanity check outgoing edges. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50355 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfg.c (dump_flow_info): Warn about profile mismatches.hubicka2002-03-051-0/+52
| | | | | | | | * cfgrtl.c (verify_flow_info): Few aditional sanity checks. (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50320 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.hubicka2002-02-281-28/+24
| | | | | | | | * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50128 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h (BB_REACHABLE): Renumber.hubicka2002-02-281-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (BB_DIRTY, BB_NEW): New flags. (clear_bb_flags): Declare. (update_life_info_in_dirty_blocks): Declare. * cfg.c (clear_bb_flags): New function. * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW. * emit-rtl.c (add_insn_after, add_insn_before, remove_insn, reorder_insns, emit_insn_after): Mark block as dirty. * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS. (update_life_info_in_dirty_blocks): New function. * recog.c (apply_change_group): Dirtify block. * cse.c (cse_insn): Reorder emitting of jump insn to keep cfg consistent. * gcse.c (delete_null_pointer_checks): Likewise. * toplev.c (dump_file_index): Move cse2 after bp, add DFI_null (dump_file_info): Similary. (rest_of_compilation): Avoid most of CFG rebuilds; do first if converision after null pointer checks, do cse2 after branch prediction; avoid full liveness rebuild after initializing subregs. * invoke.texi (-d options): Document -du, renumber. * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE. (notice_new_block): Do not set BB_UPDATE_LIFE. (try_forward_edges, merge_blocks_move_predecessor_nojumps, merge_blocks_move_successor_nojumps, merge_blocks, try_crossjump_to_edge): Likewise. (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks. * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a. * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill. (merge_of_block): Do not use life_data_ok. (find_if_case_1): Do not use SET_UPDATE_LIFE. (if_convert): Use BB_DIRTY mechanizm to update life. * lcm.c (optimize_mode_switching): Update update_life_info_in_dirty_blocks git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50127 138bc75d-0d04-0410-961f-82ee72b054a4
* * jump.c (never_reached_warning): Add finish argument.jakub2002-02-121-1/+1
| | | | | | | | | | | | | | | If finish is NULL, stop on CODE_LABEL, otherwise stop before first real insn after end. * rtl.h (never_reached_warning): Adjust prototype. * cse.c (cse_insn): Pass NULL as finish to never_reached_warning. * cfgrtl.c (flow_delete_block): Pass b->end as finish to never_reached_warning. * gcc.dg/Wunreachable-1.c: New test. * gcc.dg/Wunreachable-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49713 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirectbernds2002-02-041-1/+22
| | | | | | | the entry block. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49488 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (try_redirect_by_replacing_jump): Remove associatedlaw2002-02-041-1/+14
| | | | | | | | CODE_LABEL and jump table when replacing a table jump with a simple jump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49478 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.rth2002-01-111-0/+3
| | | | | | | | * reload1.c (delete_output_reload): Zap spill_reg_store. Take care not to delete instructions twice. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48760 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h (update_br_prob_note): Declare.hubicka2002-01-101-0/+13
| | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48750 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (delete_insn): Check for not NOTE_INSN_DELETED_LABELrth2001-12-311-1/+9
| | | | | | | before decrementing LABEL_NUSES from a jump table. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48431 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (try_redirect_by_replacing_jump): Allow redirect_jumpjakub2001-12-301-5/+23
| | | | | | | | | | | | to fail if target is EXIT_BLOCK_PTR, die otherwise. (redirect_edge_and_branch): Likewise. * cfgcleanup.c (try_forward_edge): Don't force jump redirecting if target is EXIT_BLOCK_PTR. * gcc.c-torture/compile/20011229-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48399 138bc75d-0d04-0410-961f-82ee72b054a4
* Oops, wrong tree, sorryhubicka2001-12-291-1/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48374 138bc75d-0d04-0410-961f-82ee72b054a4
* Temoporarily disable broken verify flow info.hubicka2001-12-291-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48372 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtl.h (in_expr_list_p): New declaration.kenner2001-12-241-225/+235
| | | | | | | | | * rtlanal.c (in_expr_list_p): New function. * cfgcleanup.c: Reformatting and minor code rearrangement. * cfglayout.c, cfgloop.c, cfgrtl.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48304 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (redirect_edge_and_branch): Do simplify abnormalhubicka2001-12-171-1/+1
| | | | | | | edges resulting from computed jump git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48113 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (verify_flow_info): Allow jump table data in fallthru ifdanglin2001-12-051-1/+6
| | | | | | | CASE_DROPS_THROUGH. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47655 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-decl.c (grokdeclarator): Use ISO word.neil2001-12-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cppinit.c: Remove leading capital from diagnostic messages, as per GNU coding standards. * diagnostic.c: Similarly. * emit-rtl.c: Similarly. * final.c: Similarly. * gcc.c: Similarly. * tradcpp.c: Similarly. * config/arm/arm.c: Similarly. * config/arm/arm.h: Similarly. * config/avr/avr.c: Similarly. * config/avr/avr.h: Similarly. * config/c4x/c4x.c: Similarly. * config/cris/cris.c: Similarly. * config/cris/cris.h: Similarly. * config/d30v/d30v.c: Similarly. * config/dsp16xx/dsp16xx.c: Similarly. * config/dsp16xx/dsp16xx.h: Similarly. * config/h8300/h8300.c: Similarly. * config/i386/i386.c: Similarly. * config/i386/xm-djgpp.h: Similarly. * config/i960/i960.h: Similarly. * config/m32r/m32r.c: Similarly. * config/m68hc11/m68hc11.c: Similarly. * config/m88k/m88k.c: Similarly. * config/m88k/m88k.h: Similarly. * config/mcore/mcore.c: Similarly. * config/mcore/mcore.h: Similarly. * config/mips/mips.c: Similarly. * config/mmix/mmix.c: Similarly. * config/pa/pa.c: Similarly. * config/rs6000/rs6000.c: Similarly. * config/rs6000/sysv4.h: Similarly. * config/s390/s390.c: Similarly. * config/sparc/sparc.c: Similarly. * config/v850/v850-c.c: Similarly. * config/v850/v850.c: Similarly. ch: * actions.c: Remove leading capital from diagnostic messages, as per GNU coding standards. * decl.c: Similarly. * expr.c: Similarly. * inout.c: Similarly. * lang.c: Similarly. * loop.c: Similarly. * nloop.c: Similarly. * parse.c: Similarly. * satisfy.c: Similarly. * tasking.c: Similarly. * tree.c: Similarly. * typeck.c: Similarly. cp: * typeck2.c: Remove leading capital from diagnostic messages, as per GNU coding standards. f: * com.c: Remove leading capital from diagnostic messages, as per GNU coding standards. * g77spec.c: Similarly. * lex.c: Similarly. java: * expr.c: Remove leading capital from diagnostic messages, as per GNU coding standards. * jcf-io.c: Similarly. * jcf-parse.c: Similarly. * jv-scan.c: Similarly. * jvspec.c: Similarly. * mangle.c: Similarly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47558 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (purge_all_dead_edges): Initialize variable.ghazi2001-12-021-1/+1
| | | | | | | | | | * dwarf2out.c (is_cxx): Prototype. * local-alloc.c (block_alloc): Avoid 'unsigned>=0 is always true' warning. * objc/objc-act.c (defer_fn): Avoid signed/unsigned warning. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47528 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-decl.c (duplicate_decls, push_parm_decl): Remove leadingneil2001-12-021-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | capital from diagnostics. * c-lex.c (cb_file_change): Similarly. * c-parse.in : Similarly. * cfgrtl.c (verify_flow_info): Similarly. * collect2.c: Similarly. * cppfiles.c (find_include_file): Similarly. * cppinit.c (cpp_handle_option): Similarly. * cpplex.c (cpp_spell_token): Similarly. * cppmain.c (do_preprocessing): Similarly. * gcc.c (translate_options, process_command, do_spec1, main, pfatal_execute): Similarly. * genattr.c (main): Similarly. * genattrtab.c (check_attr_test, operate_exp, simplify_test_exp, write_test_expr, main): Similarly. * gencodes.c (main): Similarly. * genconfig.c (main): Similarly. * genconstants.c (main): Similarly. * genemit.c (main): Similarly. * genextract.c (main): Similarly. * genflags.c (main): Similarly. * genopinit.c (main): Similarly. * genoutput.c (process_template, main): Similarly. * genpeep.c (main): Similarly. * genrecog.c (main): Similarly. * gensupport.c (is_predicable, identify_predicable_attribute, alter_predicate_for_insn, init_md_reader_args, main): Similarly. * ggc-page.c (alloc_anon): Similarly. * mips-tfile.c (add_string, add_procedure, add_file, read_line, parse_begin, parse_bend, parse_def, parse_end, parse_file, parse_stabs_common, parse_stabs, write_varray, write_object, read_seek, copy_object, main, error): Similarly. * profile.c (compute_branch_probabilities): Similarly. * reg-stack.c (check_asm_stack_operands): Similarly. * reload.c (find_reloads): Similarly. * reload1.c (spill_failure, failed_reload): Similarly. * rtl-error.c (_fatal_insn_not_found): Similarly. * toplev.c (read_integral_parameter, crash_signal, decode_f_option, set_target_switch, parse_options_and_default_flags) : Similarly. * tradcif.y (parse_number, yylex): Similarly. * tradcpp.c (main, fancy_abort): Similarly. * tree.c (tree_check_failed): Similarly. * varray.c (varray_check_failed): Similarly. * xcoffout.c (xcoff_output_standard_types): Similarly. cp: * call.c (build_java_interface_fn_ref): Similarly. * except.c (is_admissible_throw_operand): Similarly. * init.c (build_java_class_ref): Similarly. * xref.c (open_xref_file): Similarly. objc: * objc-act.c (get_object_ref, lookup_and_install_protocols, build_objc_string_object, objc_declare_alias, build_ivar_chain, finish_message_expr, build_protocol_expr, is_public, start_class): Similarly. testsuite: * objc.dg/alias.m: Update. * objc.dg/class-1.m: Update. * objc.dg/const-str-1.m: Update. * objc.dg/fwd-proto-1.m: Update. * objc.dg/id-1.m: Update. * objc.dg/super-class-1.m: Update. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47518 138bc75d-0d04-0410-961f-82ee72b054a4
* * sparc.c (sparc_absnegfloat_split_legitimate): Do not callhubicka2001-11-261-1/+1
| | | | | | | | | alter_subreg. * sparc.md (post-reload splitters): Do not call alter_subreg. * cfgrtl.c (purge_dead_edges): Fix typo in previous fix. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47339 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (try_redirect_by_replacing_jump): Fix typo, emitgrahams2001-11-221-3/+4
| | | | | | | | | | | replacement jump after original jump. (verify_flow_info): Remove redundent initialisation. Handle reaching end of insn list before finding a BARRIER. Only issue one missing barrier diagnostic. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47269 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (try_replace_reg): Copy RTX before creating note.hubicka2001-11-191-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | * df.h (df_ref_flags): New uenum. (DF_REF_FLAGS): New macro. (struct ref): Add field "flags". * df.c (HANDLE_SUBREG): Remove. (df_ref_create): Likewise; set flags field of ref. (df_def_record_1): Strip down read_write subreg; remove commented out code; set READ_WRITE flag. (read_modify_subreg_p): New static function. (df_uses_record): Cleanup SET handling; set READ_WRITE flag; new argument "flags". (df_insn_refs_record): Update call of df_uses_record. (df_insn_modify): Avoid #if 0 around comment. (df_dump): Dump the read/write flag. * predict.c (propagate_freq): Make cyclic_probability and frequency volatile * i386.c (ix86_cc_mode): Accept USE. * cfgrtl.c (purge_dead_edges): Cleanup EDGE_ABNORMAL flag if computed jump is turned into simplejump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47175 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (purge_all_dead_edges): Use int as argument foraj2001-11-151-1/+1
| | | | | | | | portability. * basic-block.h: Adjust prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47041 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog.5, ChangeLog,jsm282001-11-111-11/+11
| | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46928 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (purge_dead_edges): Remove REG_EH_REGION note for insnsjakub2001-11-081-1/+12
| | | | | | | which cannot throw. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46863 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog.2, ChangeLog.4, ChangeLog.5, ChangeLog,jsm282001-11-041-1/+1
| | | | | | | | | | | | | | | | | FSFChangeLog.10, FSFChangeLog.11, alias.c, attribs.c, caller-save.c, calls.c, cfg.c, cfganal.c, cfgcleanup.c, cfgrtl.c, cppmacro.c, fold-const.c, ifcvt.c, local-alloc.c, profile.c, sched-int.h, toplev.c, config/alpha/alpha.c, config/alpha/alpha.md, config/c4x/c4x.h, config/cris/cris.h, config/cris/cris.md, config/i370/i370.md, config/i386/i386.c, config/i386/i386.h, config/i386/i386.md, config/i386/xm-djgpp.h, config/ia64/ia64.c, config/m68hc11/m68hc11.c, config/m68k/m68k.md, config/mcore/mcore.h, config/mmix/mmix.c, config/ns32k/ns32k.h, config/ns32k/ns32k.md, config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/sh/sh.md: Fix spelling errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46760 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h (purge_all_dead_edges): Add update_life_p argument.hubicka2001-10-291-2/+22
| | | | | | | | | | | | * cfgcleanup.c (merge_blocks): Update the life flag after merging; fix warning. * cfgrtl.c (purge_all_dead_edges): Allow updating of liveness. (life_analysis): call purge_all_dead_edges after deleting noops. (delete_noop_move): Do not purge CFG. * toplev.c (rest_of_compilation): Update purge_all_dead_edges call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46605 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4,jsm282001-10-281-2/+2
| | | | | | | | | | | | ChangeLog.5, ChangeLog, ChangeLog.lib, FSFChangeLog.10, ONEWS, c-common.c, caller-save.c, cfg.c, cfgcleanup.c, cfgrtl.c, collect2.c, df.h, diagnostic.h, final.c, gcse.c, gthr.h, haifa-sched.c, jump.c, local-alloc.c, profile.c, protoize.c, regmove.c, reload1.c, rtlanal.c, sched-vis.c, ssa.c, stmt.c, system.h, toplev.c: Fix spelling errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46580 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgcleanup.c (merge_blocks_move_predecessor_nojumps,hubicka2001-10-271-0/+1
| | | | | | | | | merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE. (merge_blocks): Properly udpate life after making edge nonfallthru. * cfgrtl.c (merge_blocks_nomove): Update global_live_at_end. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46564 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-10-10 Stan Shebs <shebs@apple.com>shebs2001-10-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * alias.c: Remove uses of "register" specifier in declarations of arguments and local variables. * c-common.c: Ditto. * c-convert.c: Ditto. * c-decl.c: Ditto. * c-format.c: Ditto. * c-semantics.c: Ditto. * c-typeck.c: Ditto. * caller-save.c: Ditto. * calls.c: Ditto. * cfg.c: Ditto. * cfgbuild.c: Ditto. * cfgrtl.c: Ditto. * collect2.c: Ditto. * combine.c: Ditto. * convert.c: Ditto. * cppexp.c: Ditto. * cppfiles.c: Ditto. * cse.c: Ditto. * dbxout.c: Ditto. * defaults.h: Ditto. * df.c: Ditto. * dwarf2out.c: Ditto. * dwarfout.c: Ditto. * emit-rtl.c: Ditto. * explow.c: Ditto. * expmed.c: Ditto. * expr.c: Ditto. * final.c: Ditto. * fix-header.c: Ditto. * floatlib.c: Ditto. * flow.c: Ditto. * fold-const.c: Ditto. * function.c: Ditto. * gcc.c: Ditto. * gcse.c: Ditto. * gen-protos.c: Ditto. * genattrtab.c: Ditto. * gencheck.c: Ditto. * genconfig.c: Ditto. * genemit.c: Ditto. * genextract.c: Ditto. * genflags.c: Ditto. * gengenrtl.c: Ditto. * genoutput.c: Ditto. * genpeep.c: Ditto. * genrecog.c: Ditto. * gensupport.c: Ditto. * global.c: Ditto. * gmon.c: Ditto. * graph.c: Ditto. * haifa-sched.c: Ditto. * hard-reg-set.h: Ditto. * hash.c: Ditto. * integrate.c: Ditto. * jump.c: Ditto. * lists.c: Ditto. * local-alloc.c: Ditto. * loop.c: Ditto. * mips-tdump.c: Ditto. * mips-tfile.c: Ditto. * optabs.c: Ditto. * prefix.c: Ditto. * print-rtl.c: Ditto. * read-rtl.c: Ditto. * real.c: Ditto. * recog.c: Ditto. * reg-stack.c: Ditto. * regclass.c: Ditto. * regmove.c: Ditto. * reload.c: Ditto. * reload1.c: Ditto. * reorg.c: Ditto. * resource.c: Ditto. * rtl.c: Ditto. * rtlanal.c: Ditto. * scan.c: Ditto. * sched-deps.c: Ditto. * sched-rgn.c: Ditto. * sdbout.c: Ditto. * simplify-rtx.c: Ditto. * stmt.c: Ditto. * stor-layout.c: Ditto. * toplev.c: Ditto. * tradcif.y: Ditto. * tradcpp.c: Ditto. * tree.c: Ditto. * unroll.c: Ditto. * varasm.c: Ditto. * xcoffout.c: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46173 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c: Fix comment typos.kazu2001-10-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cfgrtl.c: Likewise. * collect2.c: Likewise. * cpplex.c: Likewise. * doloop.c: Likewise. * dwarf2out.c: Likewise. * dwarfout.c: Likewise. * expr.c: Likewise. * fold-const.c: Likewise. * gcc.c: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * global.c: Likewise. * ifcvt.c: Likewise. * loop.c: Likewise. * optabs.c: Likewise. * protoize.c: Likewise. * regclass.c: Likewise. * reorg.c: Likewise. * rtl.h: Likewise. * stmt.c: Likewise. * tree.h: Likewise. * doc/cpp.texi: Likewise. * doc/c-tree.texi: Likewise. * doc/extend.texi: Likewise. * doc/invoke.texi: Likewise. * doc/objc.texi: Likewise. * doc/tm.texi: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46114 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails.rth2001-09-291-1/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45870 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (cfgrtl.o): Add.hubicka2001-09-251-0/+1928
* basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks, free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges, free_aux_for_edge): Declare. * cfg.c (HAVE_return): Undefine. * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks, free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges, free_aux_for_edge): New global functions. (first_delete_block): New static variable. (init_flow): Clear first_delete_block. (basic_block_for_insn, label_value_list, tail_recursion_label_list, can_delete_note_p, can_delete_label_p, commit_one_edge_insertion, try_redirect_by_replacing_jump, last_loop_beg_note, back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect, delete_insn, delete_insn_chain, create_basic_block_structure, create_basic_block, flow_delete_block, compute_bb_for_insn, free_bb_for_insn, update_bb_for_insn, set_block_for_insn, set_block_for_new_insns, split_block, merge_blocks_nomove, block_label, try_redirect_by_replacing_jump, last_loop_beg_note, redirect_edge_and_branch, force_nonfallthru_and_redirect, force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge, tidy_fallthru_edges, split_edge, insert_insn_on_edge, commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges, purge_all_dead_edges): Move to .... * cfgrtl.c: New file; .... Here. * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block. (reroder_basic_block): Use alloc_aux_for_blocks. * predict.c (estimate_bb_frequencies): Likewise; use alloc_aux_for_edges. * profile.c (compute_branch_probabilities): Likewise. (branch_prob): Likewise. * reg-stack.c (reg_to_stack): Likewise. * emit-rtl.c (emit_insns_after): Never return NULL. * basic-block.h (set_block_for_new_insns): Delete. * cfgrtl.c (set_block_for_new_insns): Delete. * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn calls when crossjumping. * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call. * unroll.c (copy_loop_body): Use delete_insn. * final.c (final, final_scan_insn): Use delete_insn/delete_note. * function.c (fixup_var_refs_insn, fixup_var_refs_1, keep_stack_depressed): Likewise. * gcse.c (cprop_cc0_jump): Likewise. * local-alloc.c (update_equiv_regs): Likewise. * loop.c (scan_loop, loop_delete_insns): Likewise. * regmove.c (try_auto_increment, fixup_match_1): Likewise. * reload1.c (reload, calculate_needs_all_insns, reload_as_needed, delete_output_reload, delete_address_reloads_1, reload_cse_delete_noop_set, reload_combine, reload_cse_move2add): Likewise. * sibcall.c (replace_call_placeholder): Likewise. * cse.c (cse_insn): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45807 138bc75d-0d04-0410-961f-82ee72b054a4