aboutsummaryrefslogtreecommitdiff
path: root/gcc/lcm.c
AgeCommit message (Collapse)AuthorFilesLines
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-10-30lcm.c (optimize_mode_switching): Do not rebuild liveness information when no ↵Jan Hubicka1-0/+22
changes has been made. * lcm.c (optimize_mode_switching): Do not rebuild liveness information when no changes has been made. * gcse.c (reg_set_bitmap): Turn into reg_set. (modify_mem_list_set, canon_modify_mem_list_set) (clear_modify_mem_tables, free_modify_mem_tables): New. (gcse_main); Use free_modify_mem_tables. (free_gcse_mem): Likewise; free the bitmaps. (alloc_gcse_main): Initialize the bitmaps. (canon_list_insert): Set canon_modify_mem_list_set. (record_last_mem_set_info): Likewise; set modify_mem_list_set. (compute_hash_table): Use clear_modify_mem_tables. (reset_opr_set_tables): Likewise. (oprs_not_set_p): reg_set_bitmap is regset. (mark_set, mark_clobber): Likewise. * df.h (DF_EQUIV_NOTES): New constant. (df_insn_refs_record): Record uses inside or REG_EQUIV/EQUAL notes when asked for. * sched-rgn.c (CHECK_DEAD_NOTES): New constant. (init_regions, schedule_insns): Conditionalize the checking code by CHECK_DEAD_NOTES; avoid multiple calls to update_life_info. From-SVN: r46634
2001-10-26cfg.c (clear_aux_for_blocks): Split out of ...Richard Henderson1-0/+7
* cfg.c (clear_aux_for_blocks): Split out of ... (free_aux_for_blocks): here. (clear_aux_for_edges): Split from ... (free_aux_for_edges): here. * basic-block.h: Declare them. * lcm.c (compute_antinout_edge): Use them. (compute_laterin, compute_available, compute_nearerout): Likewise. (optimize_mode_switching): Likewise. From-SVN: r46534
2001-10-07builtins.c (expand_builtin_setjmp_receiver): Const-ify.Kaveh R. Ghazi1-1/+1
* builtins.c (expand_builtin_setjmp_receiver): Const-ify. * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length): Likewise. * c-dump.c (dump_option_value_info): Likewise. * c-format.c (format_length_info, format_char_info, format_flag_spec, format_flag_pair, format_kind_info): Likewise. * collect2.c (names): Likewise. * cppdefault.h (default_include): Likewise. * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise. * flow.c (life_analysis): Likewise. * gcc.c (dir_separator_str, modify_target, option_map, target_option_translations, spec_list_1, extra_specs_1, init_spec): Likewise. * gcov.c (gcov_version_string): Likewise. * genattr.c (write_units): Likewise. * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise. * gengenrtl.c (rtx_definition, defs): Likewise. * genrecog.c (pred_table): Likewise. * global.c (global_alloc): Likewise. * lcm.c (optimize_mode_switching): Likewise. * local-alloc.c (find_free_reg): Likewise. * params.h (param_info): Likewise. * predict.c (predictor_info): Likewise. * protoize.c (unexpansion_struct): Likewise. * real.c (bmask): Likewise. * recog.h (insn_operand_data, insn_data): Likewise. * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise. * stmt.c (expand_nl_goto_receiver): Likewise. * toplev.c (da, debug_args, lang_opt, documented_lang_options, target_switches, target_options): Likewise. * tradcif.y (token, tokentab2, yylex): Likewise. * tree.h (attribute_spec): Likewise. * alpha.c (override_options, alpha_lookup_xfloating_lib_func): Likewise. * arc.c (arc_output_function_epilogue): Likewise. * arm.c (processors, all_cores, all_architectures, arm_override_options, isr_attribute_arg, isr_attribute_args, arm_isr_value): Likewise. * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc): Likewise. * c4x.c (c4x_int_reglist): Likewise. * d30v.c (override_options): Likewise. * h8300.c (shift_insn): Likewise. * i386.c (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost, ix86_expand_sse_comi, ix86_expand_sse_compare, override_options, builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg, ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise. * i386.h (processor_costs, ix86_cost): Likewise. * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise. * m68hc11.h (processor_costs, m68hc11_cost): Likewise. * m68k.c (codes_68881, codes_FPA): Likewise. * m88k.c (mode_from_align, max_from_align, all_from_align, best_from_align, m_options): Likewise. * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise. * mcore.c (mode_from_align): Likewise. * mips/elf64.h (UNIQUE_SECTION): Likewise. * mips/iris6gld.h (UNIQUE_SECTION): Likewise. * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise. * mips.h (mips_regno_to_class): Likewise. * ns32k.c (scales): Likewise. * pa.c (import_string, magic_milli): Likewise. * rs6000.c (alt_reg_names, rs6000_override_options): Likewise. * sparc.c (leaf_reg_remap, sparc_override_options, reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders): Likewise. * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise. cp: * class.c (build_vtable_entry_ref): Const-ify. * decl.c (predefined_identifier, initialize_predefined_identifiers): Likewise. * init.c (build_new_1): Likewise. * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword): Likewise. f: * bad.c (_ffebad_message_, ffebad_messages_): Const-ify. * bld.c (ffebld_arity_op_): Likewise. * bld.h (ffebld_arity_op_): Likewise. * com.c (ffecom_init_0): Likewise. * intdoc.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_, _ffeintrin_imp_, names, gens, imps, specs, cc_pair, cc_descriptions, cc_summaries): Likewise. * intrin.c (_ffeintrin_name_, _ffeintrin_gen_, _ffeintrin_spec_, _ffeintrin_imp_, ffeintrin_names_, ffeintrin_gens_, ffeintrin_imps_, ffeintrin_specs_): Likewise. java: * jcf-io.c (format_uint): Const-ify. * lang.c (java_tree_code_type, java_tree_code_length): Likewise. * lex.c (java_get_line_col): Likewise. * parse.y (build_incdec): Likewise. From-SVN: r46062
2001-09-16basic-block.h (free_bb_for_insn): Declare.Jan Hubicka1-6/+4
* basic-block.h (free_bb_for_insn): Declare. * bb-reorder.c (label_for_bb): Use block_label. (emit_jump_to_block_after): Remove. (insert_intra_1): Do not update block_for_insn. (insert_inter_bb_scope_notes): Likewise; update bb->end * cfg.c (free_bb_for_insn): New. (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call. (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries. (commit_one_edge_insertion): Likewise. (commit_one_edge_insertion): Do not update BB boundary. (commit_edge_insertions): Do not call compute_bb_for_insn. * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn. * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb. (merge_blocks_move_successor_nojumps): Likewise. (try_crossjump_to_edge): Do not update block_for_insn. * combine.c (combine_instructions): Remove compute_bb_for_insn call. * df.c (df_pattern_emit_later): Do not update BB boundary. (df_jump_pattern_emit_after): Likewise. (df_insn_move_before): Use emit_insn_before. * emit-rtl.c (try_split): Emit after trial to get bb boundary updated properly. (add_insn_after, add_insn_before, emit_insns_after): Update BB boundaries and basic_block_for_insn. (reorder_insns_nobb): Rename from reorder_insns. (reorder_insns): New. (emit_block_insn_before, emit_block_insn_after): Kill. * flow.c (check_function_return_warnings): Do not call compute_bb_for_insn; Do not free basic_block_for_insn. (attempt_auto_inc): Do not update basic_block_for_insn. * function.c (emit_return_into_block): Likewise; do not update BB boundaries. * gcse.c (handle_avail_expr): Do not update basic_block_for_insn. (insert_insn_end_bb): Use emit_insn_before; Likewise. (pre_insert_copy_insn): Likewise. (update_ld_motion_notes): Likewise. (insert_insn_start_bb): Likewise. (replace_store_insn): Likewise. * ifcvt.c (noce_process_if_block): Likewise. (if_convert): Do not call compute_bb_for_insn. * lcm.c (optimize_mode_switching): Do not update BB boundaries. Use emit_insn_before and emit_insn_after. * recog.c (split_all_insns): Do not update BB boundaries; Do not call compute_bb_for_insn. (peephole2_optimize): Do not update BB boundaries. * reg-stack.c (emit_pop_insn): Use emit_insn_after and emit_insn_before. (emit_swap_insn): Likewise. (convert_regs_1): Likewise. * reload1.c (reload): Call compute_bb_for_insn. * rtl.h (reorder_insns_nobb): Declare. * ssa.c (rename_equivalent_regs): Use emit_insn_before. * toplev.c (rest_of_compilation): Call free_bb_for_insn at places CFG is invalidated; do not call compute_bb_for_insn. * cfg.c (expunge_block): Invalidate BB structure. * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN array. * cfg.c (verify_flow_info): Verify the basic_block_for_insn array. From-SVN: r45647
2001-08-22Makefile.in, [...]: replace "GNU CC" with "GCC".Lars Brinkhoff1-12/+12
* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c, bitmap.h, builtin-types.def, builtins.c, builtins.def, c-aux-info.c, c-common.c, c-common.def, c-common.h, c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c, c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in, c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c, caller-save.c, calls.c, collect2.c, collect2.h, combine.c, conditions.h, config.gcc, configure.frag, configure.in, conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c, cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h, dependence.c, df.c, df.h, diagnostic.c, diagnostic.h, doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c, dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c, emit-rtl.c, errors.c, errors.h, except.c, except.h, exgettext, explow.c, expmed.c, expr.c, expr.h, final.c, fixproto, flags.h, flow.c, fold-const.c, fp-test.c, function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp, gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c, gencheck.c, gencodes.c, genconfig.c, genemit.c, genextract.c, genflags.c, gengenrtl.c, genmultilib, genopinit.c, genoutput.c, genpeep.c, genrecog.c, gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c, ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c, graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h, gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h, gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h, hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h, integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c, libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h, machmode.def, machmode.h, main.c, mbchar.c, mbchar.h, mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk, mkmap-symver.awk, optabs.c, output.h, params.c, params.def, params.h, predict.c, predict.def, predict.h, prefix.c, prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c, read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c, regclass.c, regmove.c, regrename.c, regs.h, reload.c, reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c, rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h, sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c, sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c, ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c, stringpool.c, system.h, timevar.c, timevar.def, timevar.h, tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h, tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h, unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h, unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c, xcoffout.h: replace "GNU CC" with "GCC". From-SVN: r45105
2001-08-12gcc.c: Fix comment formatting.Kazu Hirata1-1/+1
* gcc.c: Fix comment formatting. * gccspec.c: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * genemit.c: Likewise. * gengenrtl.c: Likewise. * genrecog.c: Likewise. * gensupport.c: Likewise. * ggc-page.c: Likewise. * global.c: Likewise. * graph.c: Likewise. * ifcvt.c: Likewise. * integrate.c: Likewise. * lcm.c: Likewise. * libgcc2.c: Likewise. * loop.c: Likewise. * mbchar.c: Likewise. * optabs.c: Likewise. * predict.c: Likewise. * prefix.c: Likewise. * profile.c: Likewise. * protoize.c: Likewise. * real.c: Likewise. * recog.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * reg-stack.c: Likewise. * reload1.c: Likewise. * resource.c: Likewise. * rtlanal.c: Likewise. * rtl.c: Likewise. From-SVN: r44837
2001-07-17unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for x86-64 pic support.Andreas Jaeger1-31/+32
* config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for x86-64 pic support. * lcm.c (optimize_mode_switching): Avoid warning for unused variable if !NORMAL_MODE * flow.c (try_crossjump_to_edge): Remove unused variable. From-SVN: r44062
2001-07-11gcse.c, [...]: s/free on sbitmap vectors/sbitmap_vector_free on sbitmap ↵Daniel Berlin1-13/+15
vectors/g * gcse.c, lcm.c, sched-deps.c: s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g * flow.c (flow_loops_find): Free dom if we found no loops, since we aren't going to save it. * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are done. From-SVN: r43938
2001-02-12lcm.c (compute_earliest): Let EXIT_BLOCK be handled as a regular basic block.Alexandre Oliva1-27/+93
* lcm.c (compute_earliest): Let EXIT_BLOCK be handled as a regular basic block. (optimize_mode_switching) [NORMAL_MODE]: Set up EXIT_BLOCK as a regular basic block, and arrange for all edges into it to switch to normal mode. From-SVN: r39594
2001-02-07Update Copyright noticeAlexandre Oliva1-1/+1
From-SVN: r39519
2001-02-07lcm.c (optimize_mode_switching): Emit mode_set before the JUMP_INSN of an ↵Alexandre Oliva1-1/+4
abnormal edge. * lcm.c (optimize_mode_switching): Emit mode_set before the JUMP_INSN of an abnormal edge. From-SVN: r39518
2001-01-05Note that INSN_PTR may be the note at the beginning of a blockAlexandre Oliva1-1/+2
From-SVN: r38726
2000-12-08lcm.c (optimize_mode_switching): Check whether an insn is a NOTE before ↵Alexandre Oliva1-1/+3
taking its NOTE_LINE_NUMBER. * lcm.c (optimize_mode_switching): Check whether an insn is a NOTE before taking its NOTE_LINE_NUMBER. From-SVN: r38140
2000-08-04alias.c (mark_constant_function): Use INSN_P.Rodney Brown1-1/+1
* alias.c (mark_constant_function): Use INSN_P. (init_alias_analysis): Likewise. * combine.c (combine_instructions): Use INSN_P. (can_combine_p): Likewise. (try_combine): Likewise. (distribute_notes): Likewise. (distribute_links): Likewise. * cse.c (cse_around_loop): Use INSN_P. (invalidate_skipped_block): Likewise. (cse_set_around_loop): Likewise. (cse_end_of_basic_block): Likewise. (delete_trivially_dead_insns): Likewise. * emit-rtl.c (unshare_all_rtl_again): Use INSN_P. (unshare_all_rtl_1): Likewise. (next_cc0_user): Likewise. (try_split make_insn_raw): Likewise. (remove_unnecessary_notes): Likewise. * final.c (shorten_branches): Use INSN_P. (leaf_renumber_regs): Likewise. (leaf_renumber_regs_insn): Likewise. * flow.c (find_label_refs): Use INSN_P. (verify_wide_reg): Likewise. (notice_stack_pointer_modification): Likewise. (count_or_remove_death_notes): Likewise. (verify_flow_info): Likewise. (clear_log_links): Likewise. * function.c (fixup_var_refs_insns): Use INSN_P. (compute_insns_for_mem): Likewise. * gcse.c (alloc_gcse_mem): Use INSN_P. (compute_sets): Likewise. (compute_hash_table): Likewise. (classic_gcse): Likewise. (cprop): Likewise. (insert_insn_end_bb): Likewise. (delete_null_pointer_checks_1): Likewise. * global.c (expand_preferences): Use INSN_P. (build_insn_chain): Likewise. * graph.c (node_data): Use INSN_P. * haifa-sched.c (priority): Use INSN_P. (rm_line_notes): Likewise. (rm_other_notes): Likewise. (find_insn_reg_weight): Likewise. (init_target_units): Likewise. (schedule_block): Likewise. (compute_block_forward_dependences): Likewise. (debug_dependencies): Likewise. (set_priorities): Likewise. * integrate.c (function_cannot_inline_p): Use INSN_P. (save_parm_insns): Likewise. (copy_insn_list): Likewise. * jump.c (mark_all_labels): Use INSN_P. (never_reached_warning): Likewise. * lcm.c (optimize_mode_switching): Use INSN_P. * local-alloc.c (validate_equiv_mem): Use INSN_P. (memref_used_between_p): Likewise. (update_equiv_regs): Likewise. (block_alloc): Likewise. (no_conflict_p): Likewise. * loop.c (scan_loop): Use INSN_P. (find_and_verify_loops): Likewise. (count_loop_regs_set): Likewise. (loop_reg_used_before_p): Likewise. (strength_reduce): Likewise. (recombine_givs): Likewise. (check_dbra_loop): Likewise. (load_mems): Likewise. (try_copy_prop): Likewise. * print-rtl.c (print_rtx): Use INSN_P. * recog.c (find_single_use): Use INSN_P. * reg-stack.c (stack_regs_mentioned): Use INSN_P. (next_flags_user): Likewise. (swap_rtx_condition): Likewise. * regmove.c (mark_flags_life_zones): Use INSN_P. (optimize_reg_copy_1): Likewise. (optimize_reg_copy_2): Likewise. (optimize_reg_copy_3): Likewise. (reg_is_remote_constant_p): Likewise. (fixup_match_2): Likewise. (regmove_optimize): Likewise. (fixup_match_1): Likewise. * regrename.c (build_def_use): Use INSN_P. (replace_reg_in_block): Likewise. (consider_use): Likewise. * reload.c (find_equiv_reg): Use INSN_P. * reload1.c (reload): Use INSN_P. (maybe_fix_stack_asms): Likewise. (calculate_needs_all_insns): Likewise. (reload_as_needed): Likewise. (emit_output_reload_insns): Likewise. (delete_address_reloads_1): Likewise. (reload_cse_regs_1): Likewise. (reload_combine): Likewise. (reload_cse_move2add): Likewise. * reorg.c (redundant_insn): Use INSN_P. (dbr_schedule): Likewise. * resource.c (find_dead_or_set_registers): Use INSN_P. (mark_target_live_regs): Likewise. * rtlanal.c (reg_used_between_p): Use INSN_P. (reg_referenced_between_p): Likewise. (reg_set_between_p): Likewise. (reg_set_p): Likewise. (single_set): Likewise. (multiple_sets): Likewise. (find_last_value): Likewise. (reg_set_last): Likewise. (find_reg_note): Likewise. (find_regno_note): Likewise. * sibcall.c (sequence_uses_addressof): Use INSN_P. * simplify-rtx.c (cselib_process_insn): Use INSN_P. * ssa.c (find_evaluations): Use INSN_P. (rename_block): Likewise. (rename_equivalent_regs): Likewise. * unroll.c (loop_find_equiv_value): Use INSN_P. (set_dominates_use): Likewise. * varasm.c (mark_constant_pool): Use INSN_P. (mark_constants): Likewise. * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P. (alphaev4_next_group): Likewise. (alphaev5_next_group): Likewise. * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P. (c4x_rptb_rpts_p): Likewise. * config/mips/mips.c (mips16_optimize_gp): Use INSN_P. * config/rs6000/rs6000.c (uses_TOC): Use INSN_P. (rs6000_adjust_priority): Likewise. * config/sh/sh.c (sh_loop_align): Use INSN_P. (machine_dependent_reorg): Likewise. (split_branches): Likewise. * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P. From-SVN: r35494
2000-07-20gcse.c (record_one_set): Prepend instead of append onto reg_set_table, ↵Michael Matz1-24/+62
making it O(n) instead O(n^2). * gcse.c (record_one_set): Prepend instead of append onto reg_set_table, making it O(n) instead O(n^2). * lcm.c (compute_antinout_edge,compute_laterin,compute_available): Use a queue instead of a stack as worklist. From-SVN: r35158
2000-05-28lcm.c (make_preds_opaque): Fix comment.Clinton Popetz1-31/+37
* lcm.c (make_preds_opaque): Fix comment. (optimize_mode_switching): Use NORMAL_MODE instead of MODE_USES_IN_EXIT_BLOCK. Change leftover instance of FP_MODE_NONE to no_mode. Rename MODE_AT_ENTRY to NORMAL_MODE. Handle insertions before an existing NOTE_INSN_BASIC_BLOCK. * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE. (MODE_USES_IN_EXIT_BLOCK): Delete. (MODE_AT_ENTRY) Rename to NORMAL_MODE. * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete. (MODE_AT_ENTRY): Rename to NORMAL_MODE. (MODE_NEEDED): Don't look for USE. (EPILOGUE_USES): Define. From-SVN: r34243
2000-05-17toplev.c (rest_of_compilation): Don't call optimize_mode_switching unless ↵Richard Henderson1-10/+21
OPTIMIZE_MODE_SWITCHING. * toplev.c (rest_of_compilation): Don't call optimize_mode_switching unless OPTIMIZE_MODE_SWITCHING. Conditionally set no_new_pseudos. Don't call recompute_reg_usage if no_new_pseudos is true. * lcm.c (optimize_mode_switching): Move ifdefs outside function. Return true if we did work; update global life information. * basic-block.h (optimize_mode_switching): Update decl. From-SVN: r33965
2000-02-28lcm.c: Minor reformatting throughout.Richard Kenner1-159/+151
* lcm.c: Minor reformatting throughout. (reg_dies, reg_becomes_live): Properly handle multiple hard regs. From-SVN: r32234
2000-02-18bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.Richard Kenner1-1/+11
* bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned. * cppinit.c (new_pending_define): Add cast to avoid warning. * expmed.c (extract_bit_field): Likewise. * flow.c (enum reorder_skip_type): New type. (skip_insns_between_blcok): New it. Rework to avoid warning about possibly undefined variable. * function.c (assign_parms): Make thisparm_boundary unsigned. * genrecog.c (write_switch): Cast XWINT result to int. * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING. * mips-tfile.c (init_file): Make two versions of FDR intializer: one for MIPS and one for Alpha. (get_tag, copy_object): Add casts to avoid warnings. * optabs.c (init_one_libfunc): Cast NAME to (char *). * reload.c (find_reloads): Make TYPE enum reload_type. * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L". * unroll.c (unroll_loop): Initialize UNROLL_NUMBER. * varasm.c (compare_constant_1): Add cast to avoid warning. * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC to (char *). (alpha_expand_unaligned_load, alpha_expand_unaligned_store): Cast switch operand of size to int. (alpha_expand_epilogue): Always initialize fp_offset and sa_reg. * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort in unhandled case. From-SVN: r32060
2000-02-15Makefile.in (lcm.o): Depend on insn-attr.h.J"orn Rennecke1-0/+459
* Makefile.in (lcm.o): Depend on insn-attr.h. * basic-block.h (optimize_mode_switching): Declare. * lcm.c (tm_p.h, insn-attr.h): #include. (seginfo, bb_info): New structs. (antic, transp, comp, delete, insert) : New file-scope static variables. (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions. (reg_becomes_live, optimize_mode_switching): Likewise. * tm.texi: Add description of mode switching macros. * toplev.c (rest_of_compilation): Call optimize_mode_switching. * sh-protos.h (remove_dead_before_cse): Remove prototype. (fldi_ok, fpscr_set_from_mem): New prototypes. * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set. (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD). (sh_flag_remove_dead_before_cse): Remove declaration. (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros. (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise. (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise. * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD). (barrier_align): Allow for JUMP_INSNS containing a parallel. (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set. (fldi_ok): New function. (get_fpscr_rtx): Add fpscr_rtx as GC root. (emit_sf_insn): Only generate fpu switches when optimize < 1. (emit_df_insn): Likewise. (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete. (sh_flag_remove_dead_before_cse): Delete. (get_free_reg, fpscr_set_from_mem): New functions. * sh.md (movdf, movsf): Remove no_new_pseudos code. (return): Remove emit_fpscr_use / remove_dead_before_cse calls. Co-Authored-By: Andrew MacLeod <amacleod@cygnus.com> From-SVN: r31990
2000-01-17Update copyrightsKaveh Ghazi1-1/+1
From-SVN: r31465
2000-01-17ggc-common.c: PROTO -> PARAMS.Kaveh R. Ghazi1-7/+7
* ggc-common.c: PROTO -> PARAMS. * ggc-page.c: Likewise. * ggc-simple.c: Likewise. * ggc.h: Likewise. * global.c: Likewise. * graph.c: Likewise. * gthr-win32.h: Likewise. * haifa-sched.c: Likewise. * halfpic.h: Likewise. * integrate.c: Likewise. * integrate.h: Likewise. * jump.c: Likewise. * lcm.c: Likewise. * local-alloc.c: Likewise. * loop.c: Likewise. * loop.h: Likewise. From-SVN: r31458
1999-11-30lcm.c (compute_laterin): Cast bb->aux to size_t not int.Richard Henderson1-2/+2
* lcm.c (compute_laterin): Cast bb->aux to size_t not int. (compute_nearerout): Likewise. * ggc-page.c (ggc_page_print_statistics): Explicitly cast size_t to unsigned long for formatting. From-SVN: r30728
1999-11-15ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long for printing.Richard Henderson1-10/+11
* ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long for printing. * ggc.h (struct ggc_statistics): Rearrange elements for better packing on 64-bit hosts. * lcm.c (compute_laterin): Store a size_t not an int in bb->aux. (compute_nearerout): Likewise. From-SVN: r30547
1999-11-14gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.Jeffrey A Law1-0/+14
* gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument. All callers changed. (pre_expr_reaches_here_p_work): Likewise. (pre_edge_insert): No longer call pre_expr_reaches_here_p. * lcm.c (compute_laterin): Fix initialization of LATER. (compute_nearerout): Similarly for NEARER. From-SVN: r30528
1999-11-11flow.c (compute_flow_dominators): Initially put all blocks on the worklist.Jeffrey A Law1-16/+20
* flow.c (compute_flow_dominators): Initially put all blocks on the worklist. * lcm.c (compute_antinout_edge, compute_available): Similarly. * gcse.c (compute_cprop_avinout): Remove. (compute_cprop_data): Use compute_available. (delete_null_pointer_checks_1): Use compute_available. From-SVN: r30484
1999-11-10basic-block.h (compute_available): Returns a void now.Jeffrey A Law1-184/+280
* basic-block.h (compute_available): Returns a void now. * gcse.c (one_classic_gcse_pass): Do not expect compute_available to return a value anymore. * lcm.c (compute_available, compute_antinout_edge): Revamp to use worklists. Fix boundary cases. Compute maximal solutions. (compute_laterin, compute_nearerout): Similarly. From-SVN: r30482
1999-11-03fix-header.c (recognized_extern, [...]): Constify a char*.Kaveh R. Ghazi1-6/+5
* fix-header.c (recognized_extern, recognized_function): Constify a char*. * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'. (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED. (compute_available): Remove unused variable `last'. (compute_nearerout): Remove unused variable `temp_bitmap'. (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED. Remove unused variable `x'. * scan.h (recognized_function, recognized_extern): Constify a char*. * simplify-rtx.c (simplify_rtx): Remove unused variable `new'. From-SVN: r30380
1999-10-17basic-block.h (pre_edge_lcm, [...]): Prototype for exported functions.Andrew MacLeod1-578/+461
* basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available): Prototype for exported functions. (pre_lcm, pre_rev_lcm): Remove prototypes. * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters. (compute_available): Move to lcm.c, and change parameter order. (one_classic_gcse_pass): Call compute_ae_kill with parameters. (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete. (gcse_main): No longer call compute_preds_succs. Rebuild the set table after reach pre pass. (pre_insert_map, pre_delete_map, edge_list): New. (alloc_pre_mem): Allocate edge vectors. (free_pre_mem): Delete edge vectors. (compute_pre_data): Call new edge based lcm routines. (process_insert_insn): New function. (insert_insn_end_bb): Use it. (pre_edge_insert): New function. (pre_insert_copy_insn): Formatting fixes. Update BLOCK_END as needed. (pre_insert_copies): Revamp using new edge based lcm outputs. (pre_delete): Likewise. (one_pre_gcse_pass): Insert & remove fake edges to the exit block. (compute_code_hoist_vbeinout): New new edge based routines. * lcm.c: Remove all the old LCM functions. Replace with new ones that work with the new cfg datastructures and work with edges instead of blocks. From-SVN: r30055
1999-03-10lcm.c: New file.Jeffrey A Law1-0/+799
* lcm.c: New file. * Makefile.in (OBJS): Add lcm.o (lcm.o): Add dependencies. From-SVN: r25679