Age | Commit message (Collapse) | Author | Files | Lines |
|
sizeof/sizeof.
* attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
lieu of explicit sizeof/sizeof.
* i386.c (override_options, ix86_init_mmx_sse_builtins,
ix86_expand_builtin): Likewise.
* mips.c (mips_add_gc_roots): Likewise.
* mmix.c (mmix_output_condition): Likewise.
* rs6000.c (rs6000_override_options, altivec_expand_builtin,
altivec_init_builtins): Likewise.
* sparc.c (mark_ultrasparc_pipeline_state): Likewise.
* cppexp.c (Nsuff, parse_number): Likewise.
* cppinit.c (builtin_array_end): Likewise.
* gcc.c (n_default_compilers, process_command): Likewise.
* genpreds.c (output_predicate_decls): Likewise.
* ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
* lcm.c (N_ENTITIES): Likewise.
* stor-layout.c (set_sizetype): Likewise.
ada:
* utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
lieu of explicit sizeof/sizeof.
cp:
* decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of
explicit sizeof/sizeof.
* decl2.c (cxx_decode_option): Likewise.
* lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise.
java:
* class.c (init_class_processing): Use ARRAY_SIZE in lieu of
explicit sizeof/sizeof.
* decl.c (java_init_decl_processing): Likewise.
* jcf-parse.c (init_jcf_parse): Likewise.
* parse.y (init_src_parse): Likewise.
From-SVN: r50255
|
|
* basic-block.h (BB_REACHABLE): Renumber.
(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
From-SVN: r50127
|
|
* gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
* lcm.c (compute_earliest, compute_farthest): Likewise.
From-SVN: r48789
|
|
2002-01-05 Daniel Berlin <dan@dberlin.org>
* lcm.c: Revert change, due to performance regression it causes on
SPEC because it's slightly more conservative (sigh, I hate
edge-based LCM).
From-SVN: r48566
|
|
2001-01-04 Daniel Berlin <dan@cgsoftware.com>
* lcm.c: Include df.h.
Add available_transfer_function prototype.
(compute_available): Rework to use iterative dataflow framework.
(struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
with bb_info in df.h
(available_transfer_function): New function.
* Makefile.in (lcm.o): add df.h to dependencies.
From-SVN: r48536
|
|
* 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
|
|
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
|
|
* 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
|
|
* 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
|
|
* 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
|
|
* 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
|
|
* 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
|
|
* 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
|
|
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
|
|
* 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
|
|
From-SVN: r39519
|
|
abnormal edge.
* lcm.c (optimize_mode_switching): Emit mode_set before the
JUMP_INSN of an abnormal edge.
From-SVN: r39518
|
|
From-SVN: r38726
|
|
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
|
|
* 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
|
|
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
|
|
* 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
|
|
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
|
|
* lcm.c: Minor reformatting throughout.
(reg_dies, reg_becomes_live): Properly handle multiple hard regs.
From-SVN: r32234
|
|
* 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
|
|
* 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
|
|
From-SVN: r31465
|
|
* 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
|
|
* 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
|
|
* 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
|
|
* 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
|
|
* 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
|
|
* 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
|
|
* 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
|
|
* 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
|
|
* lcm.c: New file.
* Makefile.in (OBJS): Add lcm.o
(lcm.o): Add dependencies.
From-SVN: r25679
|