summaryrefslogtreecommitdiff
path: root/gcc/gcse.c
Commit message (Collapse)AuthorAgeFilesLines
* * gcse.c (bypass_block): Fix a typo in the previous check-inkazu2004-01-301-1/+1
| | | | | | | to the file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76981 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (bypass_block): Prevent edges to be unified when we arehubicka2004-01-281-0/+15
| | | | | | | about to emit compenstation code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76791 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c, basic-block.h, c-common.c, c-common.h,kazu2004-01-211-1/+1
| | | | | | | | | | | | | | | | | | | | | c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c, calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c, combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c, cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h, defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c, expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c, genautomata.c, genconditions.c, genemit.c, genflags.c, gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c, ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c, langhooks-def.h, langhooks.c, langhooks.h, line-map.c, line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c, ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c, rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h, target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h, unwind.h, varray.c, varray.h: Update copyright. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76302 138bc75d-0d04-0410-961f-82ee72b054a4
* PR optimization/13375rearnsha2004-01-151-1/+4
| | | | | | | | * gcse.c (handle_avail_expr): Just return if the source is not a single set. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75932 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/13376steven2004-01-131-5/+5
| | | | | | | | | | | | | | | * function.h (struct function): Kill `name' field. (current_function_name): Make it an extern function. * function.c (current_function_name): New function. * graph.c: Update all uses of current_function_name. * gcse.c: Likewise. * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c, config/mips/mips.c, config/pdp11/pdp11.c: Likewise. * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P instead of a strcmp with "main". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75784 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c: Fix comment typos.kazu2004-01-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * builtins.c: Likewise. * cfg.c: Likewise. * df.c: Likewise. * dominance.c: Likewise. * dwarf2out.c: Likewise. * emit-rtl.c: Likewise. * expr.c: Likewise. * final.c: Likewise. * fold-const.c: Likewise. * gcse.c: Likewise. * genattrtab.c: Likewise. * genrecog.c: Likewise. * gensupport.c: Likewise. * ggc-zone.c: Likewise. * integrate.c: Likewise. * local-alloc.c: Likewise. * loop.c: Likewise. * recog.c: Likewise. * regmove.c: Likewise. * reg-stack.c: Likewise. * reorg.c: Likewise. * rtlanal.c: Likewise. * rtl.h: Likewise. * sched-ebb.c: Likewise. * simplify-rtx.c: Likewise. * toplev.c: Likewise. * varasm.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75475 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix messed up accidental commit.steven2004-01-031-11/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75368 138bc75d-0d04-0410-961f-82ee72b054a4
* Backport from tree-ssa (relevant changes only):steven2003-12-301-11/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-12-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> * et-forest.h (et_forest_create, et_forest_delete, et_forest_add_node, et_forest_add_edge, et_forest_remove_node, et_forest_remove_edge, et_forest_parent, et_forest_common_ancestor, et_forest_node_value, et_forest_enumerate_sons): Declarations removed. (struct et_node): New. (et_new_tree, et_free_tree, et_set_father, et_split, et_nca, et_below): Declare. * et-forest.c (struct et_forest_occurrence, struct et_forest, struct et_forest_node): Removed. (et_forest_create, et_forest_delete, et_forest_add_node, et_forest_add_edge, et_forest_remove_node, et_forest_remove_edge, et_forest_parent, et_forest_common_ancestor, et_forest_node_value, et_forest_enumerate_sons, splay, remove_all_occurrences, find_leftmost_node, find_rightmost_node, calculate_value): Removed. (struct et_occ): New. (et_nodes, et_occurences): New. (set_depth, set_depth_add, set_prev, set_next, et_recomp_min, et_check_occ_sanity, et_check_sanity, et_check_tree_sanity, record_path_before_1, record_path_before, check_path_after_1, check_path_after, et_splay, et_new_occ, et_new_tree, et_free_tree, et_set_father, et_split, et_nca, et_below): New. * basic-block.h (struct basic_block_def): New field dom. (struct dominance_info): Type removed. (calculate_dominance_info, free_dominance_info, nearest_common_dominator, set_immediate_dominator, get_immediate_dominator, dominated_by_p, get_dominated_by, add_to_dominance_info, delete_from_dominance_info, recount_dominator, redirect_immediate_dominators, iterate_fix_dominators, verify_dominators): Declarations changed. (enum dom_state): New. (dom_computed): New variable. (first_dom_son, next_dom_son): Declare. * dominance.c (struct dominance_info): Removed. (BB_NODE, SET_BB_NODE): Removed. (calculate_dominance_info, free_dominance_info, nearest_common_dominator, set_immediate_dominator, get_immediate_dominator, dominated_by_p, get_dominated_by, add_to_dominance_info, delete_from_dominance_info, recount_dominator, redirect_immediate_dominators, iterate_fix_dominators, verify_dominators, debug_dominance_info): Work over new datastructure. Access dominance datastructures through CFG. (assign_dfs_numbers, compute_dom_fast_query, first_dom_son, next_dom_son): New. * bt-load.c (dom): Variable removed. (augment_live_range, combine_btr_defs, migrate_btr_def, migrate_btr_defs, branch_target_load_optimize): Updated for the new interface for dominance information. * cfg.c {exit_entry_blocks): Update initializer. * cfglayout.c (copy_bbs): Removed loops argument. Updated for the new interface for dominance information. * cfglayout.h (copy_bbs): Declaration changed. * cfgloop.c (flow_loop_pre_header_find, flow_loops_cfg_dump, flow_loop_scan, canonicalize_loop_headers, flow_loops_find): Updated for the new interface for dominance information. (flow_loop_scan): Loops argument removed. (flow_loops_free): Don't release dominators. * cfgloop.h (struct cfg): Dom field removed. (flow_loop_scan, loop_split_edge_with, simple_loop_p, just_once_each_iteration_p, split_loop_bb): Declaration changed. * cfgloopanal.c (simple_loop_exit_p, simple_increment, just_once_each_iteration_p, simple_loop_p): Remove loops argument. Updated for the new interface for dominance information. * cfgloopmanip.c (remove_bbs, find_path, create_preheader, split_loop_bb, loopify, duplicate_loop_to_header_edge, force_single_succ_latches, loop_split_edge_with): Ditto. * gcse.c (dominators): Variable removed. (free_code_hoist_mem, compute_code_hoist_data, hoist_code): Updated for the new interface for dominance information. * ifcvt.c (post_dominators): Variable removed. (mark_loop_exit_edges, merge_if_block, find_if_header, find_cond_trap, find_if_case_1, find_if_case_2, if_convert): Updated for the new interface for dominance information. * loop-init.c (rtl_loop_optimizer_init, rtl_loop_optimizer_finalize): Ditto. * loop-unroll.c (decide_peel_simple, decide_peel_once_rolling, decide_peel_completely, decide_unroll_stupid, decide_unroll_constant_iterations, decide_unroll_runtime_iterations): Loops argument removed. Updated for the new interface for dominance information. (unroll_and_peel_loops, peel_loops_completely, unroll_loop_runtime_iterations): Updated for the new interface for dominance information. * loop-unswitch.c (may_unswitch_on_p, unswitch_loops, unswitch_single_loop, unswitch_loop): Updated for the new interface for dominance information. * predict.c (process_note_predictions, process_note_prediction, estimate_probability, note_prediction_to_br_prob): Ditto. * sched-rgn.c (find_rgns, init_regions): Ditto. * toplev.c (rest_of_handle_branch_prob): Free the dominators. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75226 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c: Fix comment formatting.kazu2003-12-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * alloc-pool.c: Likewise. * bitmap.c: Likewise. * bitmap.h: Likewise. * bt-load.c: Likewise. * c-common.c: Likewise. * c-common.h: Likewise. * c-decl.c: Likewise. * c-opts.c: Likewise. * c-pretty-print.c: Likewise. * caller-save.c: Likewise. * cfghooks.h: Likewise. * cgraph.c: Likewise. * collect2.c: Likewise. * cppfiles.c: Likewise. * cpplib.h: Likewise. * dwarf2out.c: Likewise. * dwarfout.c: Likewise. * emit-rtl.c: Likewise. * final.c: Likewise. * function.c: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * genemit.c: Likewise. * ggc.h: Likewise. * haifa-sched.c: Likewise. * ifcvt.c: Likewise. * libgcc2.h: Likewise. * loop.c: Likewise. * predict.h: Likewise. * unwind-libunwind.c: Likewise. * varasm.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74907 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix for IA-64 glibc math test failures.wilson2003-12-181-1/+34
| | | | | | | | | | | * Makefile.in (gcse.o): Add $(TREE_H) to dependencies. * gcse.c: Include tree.h. (implicit_set_cond_p): New. (find_implicit_sets): Call it. * gcc.c-torture/execute/ieee/mzero5.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74769 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-12-11 Steven Bosscher <steven@gcc.gnu.org>steven2003-12-111-38/+38
| | | | | | | | | | | | | | | | | | | | | | | | | * basic-block.h (BLOCK_HEAD, BLOCK_END): Remove. (BLOCK_HEAD_TREE, BLOCK_END_TREE): Remove. (basic_block_def): Rename `head' to `head_' and `end' to `end_'. (BB_HEAD, BB_END): New accessor macros for the `head_' and `end_' fields of a basic block. * bb-reorder.c, bt-load.c, caller-save.c, cfg.c, cfganal.c, cfgbuild.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgloopanal.c, cfgloopmanip.c, cfgrtl.c, combine.c, conflict.c, df.c, emit-rtl.c, final.c, flow.c, function.c, gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c, local-alloc.c, loop-unswitch.c, loop.c, postreload.c, predict.c, profile.c, ra-build.c, ra-debug.c, ra-rewrite.c, ra.c, recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c, reload1.c, resource.c, sched-ebb.c, sched-rgn.c, sibcall.c, tracer.c, config/frv/frv.c, config/i386/i386.c, config/ia64/ia64.c: Use the BB_HEAD and BB_END macros instead of accessing the `head' and `end' fields of a basic block directly. * gengtype.c: Add missing piece from earlier patch. Dunno what I was thinking... git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74520 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (reg_clear_last_set): New function.rearnsha2003-12-031-15/+58
| | | | | | | | | | | | | | | (reg_set_info): If data is non-null, treat it as an sbitmap of registers, set the bit for the register being set. (compute_store_table): Allocate last_set_in with xcalloc. Do not memset this array on each iteration. Pass reg_set_in_block[bb->index] to note_stores while computing last_set_in instead of scanning last_set_in after the first pass through the insns. Clear last_set_in using reg_clear_last_set instead of explicitly rescanning after each insn. If checking is enabled, assert that last_set_in is completely zeroed after each bb has been processed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74224 138bc75d-0d04-0410-961f-82ee72b054a4
* PR optimization/12322sayle2003-12-021-56/+44
| | | | | | | | | | | | | | | * gcse.c (struct ls_expr): Change type of hash_index from int to unsigned int. (hash_expr): Document hash_table_size parameter and wrap long line. (ldst_entry): Calculate expression's hash_index and record in ptr. (trim_ld_motion_mems): Use hash_index to search a single bucket instead of scanning the entire hash_table. Remove the "del" local variable and use the equivalent "expr == 0" instead. Change last to be a pointer to the pointer to the current element, to simplify and speed-up deleting from a linked list. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74144 138bc75d-0d04-0410-961f-82ee72b054a4
* * ChangeLog.7: Fix comment typos.kazu2003-11-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c: Likewise. * c-pretty-print.c: Likewise. * cgraphunit.c: Likewise. * et-forest.h: Likewise. * expr.c: Likewise. * gcse.c: Likewise. * genautomata.c: Likewise. * genrecog.c: Likewise. * gensupport.c: Likewise. * ggc-zone.c: Likewise. * haifa-sched.c: Likewise. * ifcvt.c: Likewise. * loop.c: Likewise. * optabs.c: Likewise. * pretty-print.h: Likewise. * regrename.c: Likewise. * rtl.h: Likewise. * sched-rgn.c: Likewise. * target.h: Likewise. * value-prof.c: Likewise. * web.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73795 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-10-17 Mostafa Hagog <mustafa@il.ibm.com>sayle2003-10-171-14/+86
| | | | | | | | | | | | | | | | | | | | * common.opt: Add description of the new -fgcse-las flag. * flags.h (flag_gcse_las): Declaration of global flag_gcse_las. * gcse.c (hash_scan_set): Handle the case of store expression and insert the memory expression to the hash table, this way we make it possible to discover redundant loads after stores and remove them. (pre_insert_copy_insn): moved the call to update_ld_motion_stores, to pre_insert_copies, it is not the correct place to call it after adding stores to be in the available expression hash table. (pre_insert_copies): Added the call to update_ld_motion_stores when one or more copies were inserted. * opts.c (common_handle_option): Handle the -fgcse-las flag. * toplev.c (flag_gcse_las): Initialization of flag_gcse_las. * doc/invoke.tex: Document new -fgcse-las flag. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72612 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-pretty-print.c: Fix comment typos.kazu2003-10-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-pretty-print.h: Likewise. * calls.c: Likewise. * cfgloopmanip.c: Likewise. * cgraphunit.c: Likewise. * cppfiles.c: Likewise. * final.c: Likewise. * function.c: Likewise. * gcov-io.h: Likewise. * gcse.c: Likewise. * genoutput.c: Likewise. * loop.c: Likewise. * postreload.c: Likewise. * reg-stack.c: Likewise. * regmove.c: Likewise. * sched-int.h: Likewise. * sched-rgn.c: Likewise. * simplify-rtx.c: Likewise. * tree-inline.c: Likewise. * config/m68hc11/m68hc11.h: Likewise. * config/mmix/mmix.c: Likewise. * config/mn10300/mn10300.md: Likewise. * config/sh/sh.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72118 138bc75d-0d04-0410-961f-82ee72b054a4
* PR optimization/11741sayle2003-09-261-22/+48
| | | | | | | | | | | | | | * gcse.c (pre_insert_copy_insn): Tweak the logic for finding the appropriate set to match that in hash_scan_insn. Fall back to the original copy method, if we can't validate changing insn. (pre_delete): Only delete instructions that have a single_set, instead of aborting when we encounter an PARALLEL insn with more then one SET. * gcc.dg/20030926-1.c: New test case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71827 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (remove_reachable_equiv_notes): New.law2003-09-151-9/+128
| | | | | | | | | | (replace_store_insn): Call it. Update antic list. (store_killed_in_insn): Take REG_EQUAL notes into account. (build_store_vectors, delete_store): Add parameter to replace_store_insn call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71412 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-09-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>pinskia2003-09-151-4/+6
| | | | | | | | | | | | | | | | | | | PR optimization/10914 * expr.h (get_condition, canonicalize_condition): Declaration changed. * cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition and canonicalize_condition calls. * gcse.c (fis_get_condition, delete_null_pointer_checks_1, delete_null_pointer_checks): Ditto. * ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto. * predict.c (estimate_probability, expected_value_to_br_prob): Ditto. * loop.c (check_dbra_loop, get_condition_for_loop): Ditto. (canonicalize_condition, get_condition): Allow to return comparisons of cc mode registers. * loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow cc mode registers comparison in condition. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71398 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (expr_equiv_p): Don't consider anything to be equal torakdver2003-09-061-0/+4
| | | | | | | volatile mem. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71140 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (replace_one_set): New function.rth2003-09-041-3/+40
| | | | | | | | (pre_insert_copy_insn): Change the order of copying to make copy propagation discover additional PRE opportunities. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71047 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (is_too_expensive): New function.nathan2003-08-261-79/+52
| | | | | | | (gcse_main, delete_null_pointer_checks, bypass_jumps): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70801 138bc75d-0d04-0410-961f-82ee72b054a4
* * builtins.c: Fix comment typos.kazu2003-08-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | * c-common.c: Likewise. * c-decl.c: Likewise. * c-pretty-print.c: Likewise. * cfgbuild.c: Likewise. * cfglayout.c: Likewise. * cfgloopanal.c: Likewise. * cgraphunit.c: Likewise. * cppfiles.c: Likewise. * dwarfout.c: Likewise. * expr.c: Likewise. * fold-const.c: Likewise. * gcse.c: Likewise. * ggc-page.c: Likewise. * haifa-sched.c: Likewise. * pretty-print.c: Likewise. * tree.c: Likewise. * tree.h: Likewise. * value-prof.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70583 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (gmalloc): Fix last change.ghazi2003-08-121-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70352 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (gmalloc): Argument is a size_t. Add ATTRIBUTE_MALLOC.ghazi2003-08-111-24/+21
| | | | | | | | | (grealloc): Size argument is a size_t. (gcalloc): New function. Use throughout in lieu of gmalloc/memset. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70338 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (try_replace_reg): Fix updating of note.zlomek2003-08-051-5/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70168 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (insert_store): Fix typo in previous patch.hubicka2003-07-301-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69977 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (insert_store): Ignore fake edges.hubicka2003-07-301-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c (flag_vtable_gc): Kill. * c-common.g (flag_vtable_gc): Kill. * c-opts (c_common_handle_option): Kill. * c.opt (fvtable-gc): Kill. * final.c (final_scan_insn): Do not call assemble_vtable_entry. * output.h (assemble_vtable_entry, assemble_vtable_inherit): Kill. * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): Kill. * invoke.texi (-ftable-gc): Kill documentation. PR C/10320 * tree-inline.c (inlinable_function_p): Don't set DECL_UNINLINABLE just because function body is missing. * i386.c (pic_symbolic_operand): Properly detect RIP relative unspecs. * class.c (build_vtable_entry_ref): Kill. (build_vtbl_ref_1): Do not call build_vtable_entry_ref. (build_vfn_ref): Do not call build_vtable_entry_ref. * cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill. * cp-tree.h (prepare_assemble_variable): Kill. * cp-decl.c (prepare_assemble_variable): Kill. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69964 138bc75d-0d04-0410-961f-82ee72b054a4
* PR optimization/11631rakdver2003-07-241-0/+1
| | | | | | | * gcse.c (store_motion): Connect infinite loops to exit. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69759 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c: Fix comment formatting.kazu2003-07-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | * c-common.c: Likewise. * c-decl.c: Likewise. * c-opts.c: Likewise. * combine.c: Likewise. * cpplib.c: Likewise. * diagnostic.c: Likewise. * dojump.c: Likewise. * final.c: Likewise. * fold-const.c: Likewise. * gcc.c: Likewise. * gcse.c: Likewise. * ggc-page.c: Likewise. * jump.c: Likewise. * loop.c: Likewise. * mips-tfile.c: Likewise. * recog.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * tree.c: Likewise. * tree.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69689 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.cghazi2003-07-191-64/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c gcse.c genattr.c genattrtab.c genautomata.c genconditions.c genemit.c genextract.c genoutput.c genrecog.c gensupport.c ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c postreload.c prefix.c print-tree.c protoize.c ra-build.c ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c regmove.c regrename.c reload.c reload1.c reorg.c resource.c sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary casts. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69587 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-05-02 Andrew Pinski <pinskia@physics.uc.edu>pinskia2003-07-161-0/+11
| | | | | | | | * gcse.c (gcse_constant_p): COMPARE of the same registers is a constant if they are not floating point registers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69471 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-07-14 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>sirl2003-07-141-3/+6
| | | | | | | | | PR optimization/11440 * gcse.c (try_replace_reg): Don't attach notes to ZERO_EXTRACT or SIGN_EXTRACT SETs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69325 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (load_kills_store, find_loads, store_killed_in_insn,rakdver2003-07-101-23/+46
| | | | | | | | store_killed_after, store_killed_before): Keep track of the correct dependency function to use. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69198 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.c: Convert prototypes to ISO C90.aj2003-07-061-556/+334
| | | | | | | | | | | | | | | | | | | | | | | | | * gcc.h: Likewise. * gcov-dump.c: Likewise. * gcov-iov.c: Likewise. * gcse.c: Likewise. * genattrtab.h: Likewise. * ggc.h: Likewise. * global.c: Likewise. * graph.c: Likewise. * graph.h: Likewise. * hosthooks.h: Likewise. * hooks.h: Likewise. * hooks.c: Likewise. * hashtable.h: Likewise. * hashtable.c: Likewise. * haifa-sched.c: Likewise. * integrate.h: Likewise. * integrate.c: Likewise. * input.h: Likewise. * ifcvt.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68995 138bc75d-0d04-0410-961f-82ee72b054a4
* * bt-load.c: Fix comment typos.kazu2003-07-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-incpath.c: Likewise. * cfg.c: Likewise. * cfgcleanup.c: Likewise. * cfgloop.h: Likewise. * cfgloopmanip.c: Likewise. * cfgrtl.c: Likewise. * diagnostic.h: Likewise. * dwarfout.c: Likewise. * emit-rtl.c: Likewise. * et-forest.c: Likewise. * et-forest.h: Likewise. * expr.c: Likewise. * gcse.c: Likewise. * genattr.c: Likewise. * jump.c: Likewise. * langhooks.h: Likewise. * local-alloc.c: Likewise. * loop-unroll.c: Likewise. * loop-unswitch.c: Likewise. * ra-build.c: Likewise. * regclass.c: Likewise. * regmove.c: Likewise. * rtl.def: Likewise. * rtlanal.c: Likewise. * sched-ebb.c: Likewise. * sched-rgn.c: Likewise. * simplify-rtx.c: Likewise. * ssa.c: Likewise. * tracer.c: Likewise. * tree.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68975 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c: Fix misspelling.kraai2003-07-031-1/+1
| | | | | | | | * line-map.c: Likewise. * config/dsp16xx/dsp16xx.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68865 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h: Fix comment typos.kazu2003-07-011-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bb-reorder.c: Likewise. * c-format.c: Likewise. * cfgcleanup.c: Likewise. * cfghooks.h: Likewise. * cfgloop.c: Likewise. * cfgloopmanip.c: Likewise. * cfgrtl.c: Likewise. * cgraph.h: Likewise. * cgraphunit.c: Likewise. * combine.c: Likewise. * convert.c: Likewise. * dbxout.c: Likewise. * df.c: Likewise. * df.h: Likewise. * diagnostic.c: Likewise. * dwarf2out.c: Likewise. * et-forest.h: Likewise. * flow.c: Likewise. * fold-const.c: Likewise. * function.h: Likewise. * gcov-io.h: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * genautomata.c: Likewise. * ggc-common.c: Likewise. * ggc-page.c: Likewise. * loop-unroll.c: Likewise. * loop-unswitch.c: Likewise. * loop.c: Likewise. * mips-tfile.c: Likewise. * optabs.c: Likewise. * ra-build.c: Likewise. * ra-colorize.c: Likewise. * ra-rewrite.c: Likewise. * ra.h: Likewise. * regmove.c: Likewise. * reload.c: Likewise. * rtlanal.c: Likewise. * sched-ebb.c: Likewise. * sched-int.h: Likewise. * sched-vis.c: Likewise. * sreal.c: Likewise. * ssa-ccp.c: Likewise. * ssa.c: Likewise. * toplev.c: Likewise. * tree-inline.c: Likewise. * value-prof.c: Likewise. * value-prof.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68770 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (compute_ld_motion_mems): Use INSN_P instead of itskazu2003-06-281-2/+2
| | | | | | | | | | | | | definition. (store_killed_in_insn): Likewise. * print-rtl.c (print_rtx): Likewise. * config/frv/frv.c (frv_final_prescan_insn): Likewise. * config/m68hc11/m68hc11.c (dead_register_here): Likewise. (m68hc11_reassign_regs): Likewise. (m68hc11_reorg): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68640 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (expr_equiv_p): Replace expressions that are known tokazu2003-06-271-4/+2
| | | | | | | be 0 with 0. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68601 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (store_killed_in_insn): Fix.rakdver2003-06-191-2/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68230 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (fis_get_condition): Make it a global function.kazu2003-06-121-2/+1
| | | | | | | | * reload1.c (reload_cse_move2add): Detect implicit sets. * rtl.h: Add a prototype for fis_get_condition. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67814 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (cprop_jump): Make use of REG_EQUAL notes on bothsayle2003-05-211-15/+49
| | | | | | | | | | | | | | | setcc and jump, if they exist. If substituted instruction fails to validate, store current effort in a REG_EQUAL note. (cprop_insn): Don't attempt further substitutions if the current instruction has been deleted. (local_cprop_pass): Likewise. * jump.c (redirect_jump): Also update REG_EQUAL note, if one is attached to the jump instruction. (invert_jump): Delete REG_EQUAL note on jump, if one exists. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67054 138bc75d-0d04-0410-961f-82ee72b054a4
* PR opt/8705danglin2003-04-251-0/+9
| | | | | | | | | | * gcse.c (try_replace_reg): On a successful substitution of a constant into a single set, try to simplify the source of the set. * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a constant source. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@66060 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (compute_ld_motion_mems): For MEM destinations, onlyhp2003-04-181-10/+15
| | | | | | | | | | consider those to be movable where the source matches want_to_gcse_p. (update_ld_motion_stores): In comment, refer to compute_ld_motion_mems for validity of replacement. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65766 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (replace_store_insn): Use single_set.amylaar2003-04-071-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65339 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c (find_base_term): Export.rakdver2003-04-051-16/+14
| | | | | | | | | | * rtl.h (find_base_term): Declare. * gcse.c (find_moveable_store): Test for flag_non_call_exceptions instead of flag_exceptions. Move test for parameter passing ... (store_killed_in_insn): ... here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65272 138bc75d-0d04-0410-961f-82ee72b054a4
* PR optimization/10157ebotcazou2003-04-031-28/+28
| | | | | | | | | | | | | | | | * gcse.c (can_copy_p): Rename it to can_copy. (can_copy_init_p): Remove. (compute_can_copy): Use can_copy instead of can_copy_p. (can_copy_p): New exported function. Call compute_can_copy. (hash_scan_set): Use it. (gcse_main): Don't call compute_can_copy. (bypass_jumps): Don't call compute_can_copy. * rtl.h (can_copy_p): Declare. * loop.c (scan_loop): Don't move the source and add a reg-to-reg copy if the mode doesn't support copy operations. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65210 138bc75d-0d04-0410-961f-82ee72b054a4
* PR fortran/9974sayle2003-04-011-4/+50
| | | | | | | | | | | | * gcse.c (reg_killed_on_egde): New function to test whether the given reg is overwritten by any instruction queued on an edge. (bypass_block): Ignore substitutions killed on incoming edges. Don't bypass outgoing edges that have queued instructions. * gcc.c-torture/execute/20030401-1.c: New test case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65148 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (struct ls_expr): Added pattern_regs field.rakdver2003-04-011-204/+383
| | | | | | | | | | | | | | | | | | | | | | | | | | | (ldst_entry): Initialize it. (extract_mentioned_regs, extract_mentioned_regs_helper): New. (store_ops_ok): Use regs precomputed by them. (find_loads, store_killed_in_insn, load_kills_store): Change return type to bool. (store_killed_before, store_killed_after): Take position of register set in account. (reg_set_info): Store position of the setter. (gcse_main): Enable store motion. (mems_conflict_for_gcse_p): Enable load motion of non-symbol mems. (pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl sharing. (simple_mem): Enable store motion of non-symbol mems. (regvec): Type changed. (LAST_AVAIL_CHECK_FAILURE): New. (compute_store_table_current_insn): New. (build_store_vectors): Computation of availability and anticipatability moved ... (compute_store_table, find_moveable_store): ... here. (delete_store): Remove senseless comment. (store_motion): Reorganize. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65141 138bc75d-0d04-0410-961f-82ee72b054a4