aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcse.c
AgeCommit message (Collapse)AuthorFilesLines
2003-04-25re PR rtl-optimization/8705 ([HP-PA] ICE in emit_move_insn_1, at expr.c:3101)John David Anglin1-0/+9
PR opt/8705 * 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. From-SVN: r66060
2003-04-18gcse.c (compute_ld_motion_mems): For MEM destinations...Hans-Peter Nilsson1-10/+15
* gcse.c (compute_ld_motion_mems): For MEM destinations, only 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. From-SVN: r65766
2003-04-07* gcse.c (replace_store_insn): Use single_set.J"orn Rennecke1-1/+1
From-SVN: r65339
2003-04-05alias.c (find_base_term): Export.Zdenek Dvorak1-16/+14
* alias.c (find_base_term): Export. * 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. From-SVN: r65272
2003-04-03re PR rtl-optimization/10157 ([Sparc] internal compiler error: in ↵Eric Botcazou1-28/+28
extract_insn, at recog.c:2188) PR optimization/10157 * 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. From-SVN: r65210
2003-04-01re PR fortran/9974 (Test g77.f-torture/noncompile/check0.f fails)Roger Sayle1-4/+50
PR fortran/9974 * 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. From-SVN: r65148
2003-04-01gcse.c (struct ls_expr): Added pattern_regs field.Zdenek Dvorak1-204/+383
* gcse.c (struct ls_expr): Added pattern_regs field. (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. From-SVN: r65141
2003-03-31gcse.c (simple_mem): Return false for floating-point accesses if ↵Richard Sandiford1-0/+3
flag_float_store is true. * gcse.c (simple_mem): Return false for floating-point accesses if flag_float_store is true. From-SVN: r65076
2003-03-31gcse.c (gcse_constant_p): New function to identify constants suitable for ↵Roger Sayle1-9/+27
constant propagation... * gcse.c (gcse_constant_p): New function to identify constants suitable for constant propagation, including COMPARE with two integer constant arguments. (hash_scan_set): Use gcse_constant_p. (find_avail_set): Likewise. (cprop_insn): Likewise. (do_local_cprop): Likewise. (find_implicit_sets): Likewise. (find_bypass_set): Likewise. From-SVN: r65075
2003-03-08gcse.c (bypass_block, [...]): Do not create irreducible loops.Zdenek Dvorak1-0/+17
* gcse.c (bypass_block, bypass_conditional_jumps): Do not create irreducible loops. * loop-unroll.c (unroll_loop_runtime_iterations): Update irreducible loops info correctly. From-SVN: r63980
2003-02-25* gcse.c (cprop_jump): Revert the 2003-02-23 change.Kazu Hirata1-20/+6
From-SVN: r63420
2003-02-23* gcse.c (cprop_jump): Use the REG_EQUAL note if available.Kazu Hirata1-6/+20
From-SVN: r63332
2003-02-15gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs.Richard Henderson1-3/+6
* gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs. (bypass_conditional_jumps): Accept computed_jump_p insns as well. From-SVN: r62945
2003-02-11gcse.c (lookup_set): Remove unused argument PAT.Richard Henderson1-18/+8
* gcse.c (lookup_set): Remove unused argument PAT. Update both callers. From-SVN: r62759
2003-02-07gcse.c (local_cprop_find_used_regs): New.Richard Henderson1-2/+50
* gcse.c (local_cprop_find_used_regs): New. (local_cprop_pass): Use it. From-SVN: r62555
2003-02-07gcse.c (implicit_sets): New.Roger Sayle1-1/+131
* gcse.c (implicit_sets): New. (compute_hash_table_work): Include them in hash table. (find_implicit_sets, fis_get_condition): New. (one_cprop_pass): Allocate and free implicit_sets; call find_implicit_sets before building hash table. Co-Authored-By: Richard Henderson <rth@redhat.com> From-SVN: r62533
2003-01-27* gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL.Josef Zlomek1-0/+1
From-SVN: r61884
2003-01-25gcse.c (bypass_last_basic_block): New global variable.Roger Sayle1-5/+22
* gcse.c (bypass_last_basic_block): New global variable. (bypass_block): Use redirect_edge_and_branch_force to redirect fall-through edges. Use bypass_last_basic_block to determine which blocks have valid PRE information. (bypass_conditional_jumps): Initialize bypass_last_basic_block. From-SVN: r61800
2003-01-25* gcse.c (local_cprop_pass): Update reg_sets table when needed.Jan Hubicka1-1/+6
From-SVN: r61799
2003-01-25re PR rtl-optimization/8492 (GCC spins forever compiling loop)Jan Hubicka1-1/+11
PR opt/8492 * gcse.c (one_cprop_pass): Delete unreachable blocks. Co-Authored-By: Eric Botcazou <ebotcazou@libertysurf.fr> From-SVN: r61798
2003-01-23re PR rtl-optimization/8423 (CSE1 not propagating __builtin_constant_p enough)Roger Sayle1-2/+5
PR optimization/8423 * cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when its argument is constant, or 0 if !flag_gcse. * simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1 if it's argument is constant. * gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes. (hash_scan_set): Don't record CONSTANT_P_RTX expressions. (do_local_cprop): Don't propagate CONSTANT_P_RTX constants. * builtins.c (purge_builtin_constant_p): New function to force instantiation of any remaining CONSTANT_P_RTX nodes. * rtl.h (purge_builtin_constant_p): Prototype here. * toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p pass after GCSE and before loop. (flag_gcse): No longer static. * flags.h (flag_gcse): Prototype here. From-SVN: r61642
2003-01-17et-forest.c: Fix comment typos.Kazu Hirata1-14/+14
* et-forest.c: Fix comment typos. * et-forest.h: Likewise. * except.c: Likewise. * expr.c: Likewise. * flags.h: Likewise. * flow.c: Likewise. * gcc.c: Likewise. * gcse.c: Likewise. * genattrtab.c: Likewise. * genautomata.c: Likewise. * gengtype.c: Likewise. * genrecog.c: Likewise. * global.c: Likewise. * gthr-rtems.h: Likewise. From-SVN: r61443
2003-01-16gcse.c (one_cprop_pass): Change function arguments to take both cprop_jumps ↵Roger Sayle1-11/+118
and bypass_jumps flags... * gcse.c (one_cprop_pass): Change function arguments to take both cprop_jumps and bypass_jumps flags instead of just alter_jumps. (gcse_main): Update calls to one_cprop_pass, disabling bypassing. (bypass_jumps): New function to perform separate jump bypassing pass. * rtl.h (bypass_jumps): Add function prototype. * timevar.def (TV_BYPASS): New timing variable. * toplev.c (enum dump_file_index): Add new entry DFI_bypass. (dump_file): New entry for the bypass RTL dump file. (rest_of_compilation): Insert new jump bypassing optimization pass after loop. * doc/passes.texi: Document new pass. From-SVN: r61374
2003-01-07cselib.c (cselib_current_insn_in_libcall): New static variable.Jan Hubicka1-0/+3
* cselib.c (cselib_current_insn_in_libcall): New static variable. (new_elt_loc_list, cselib_process_insn, cselib_init): Keep track on whether we are inside libcall. * cselib.h (elt_loc_list): Add in_libcall. * gcse.c (do_local_cprop): Do not copy propagate using insns in libcalls. From-SVN: r61023
2002-12-16Merge basic-improvements-branch to trunkZack Weinberg1-6/+2
From-SVN: r60174
2002-11-19* gcse.c (gcse_emit_move_after): Correct typo in REG_EQUAL note.Roger Sayle1-1/+1
From-SVN: r59271
2002-10-14re PR rtl-optimization/8165 (builtin string functions SEGV on ↵Richard Henderson1-10/+4
alpha-pc-linux-gnu at -O2) PR opt/8165 * gcse.c (adjust_libcall_notes): Revert last change. * simplify-rtx.c (simplify_replace_rtx): Handle LO_SUM. From-SVN: r58130
2002-10-11re PR rtl-optimization/8165 (builtin string functions SEGV on ↵Richard Henderson1-6/+15
alpha-pc-linux-gnu at -O2) PR opt/8165 * gcse.c (adjust_libcall_notes): Also adjust notes for INSN. * gcc.c-torture/execute/20021011-1.c: New. From-SVN: r58071
2002-09-30i386.h (TARGET_CPP_CPU_BUILTINS): Define __SSE_MATH__.Jan Hubicka1-2/+9
* i386.h (TARGET_CPP_CPU_BUILTINS): Define __SSE_MATH__. * gcse.c (cprop_jump): Check that the register has not been modified (cprop_jump): Likewise. From-SVN: r57648
2002-09-22dbxout.c: Follow spelling conventions.Kazu Hirata1-31/+31
* dbxout.c: Follow spelling conventions. * defaults.h: Likewise. * df.c: Likewise. * diagnostic.h: Likewise. * doloop.c: Likewise. * dwarf2out.c: Likewise. * dwarfout.c: Likewise. * emit-rtl.c: Likewise. * except.c: Likewise. * explow.c: Likewise. * expmed.c: Likewise. * expr.c: Likewise. * expr.h: Likewise. * flags.h: Likewise. * flow.c: Likewise. * fold-const.c: Likewise. * function.c: Likewise. * function.h: Likewise. * gcc.c: Likewise. * gcov-io.h: Likewise. * gcov.c: Likewise. * gcse.c: Likewise. * genattrtab.c: Likewise. * genconfig.c: Likewise. * genrecog.c: Likewise. * ggc-page.c: Likewise. * ggc.h: Likewise. * global.c: Likewise. * gthr-win32.h: Likewise. * integrate.c: Likewise. * jump.c: Likewise. * langhooks.c: Likewise. * langhooks.h: Likewise. * line-map.h: Likewise. * local-alloc.c: Likewise. * longlong.h: Likewise. * loop.c: Likewise. * loop.h: Likewise. From-SVN: r57406
2002-08-13gcse.c (adjust_libcall_notes): New function.J"orn Rennecke1-6/+72
* gcse.c (adjust_libcall_notes): New function. (do_local_cprop): Use it. Add fourth parameter. Changed caller. From-SVN: r56252
2002-08-01gcse.c (expr_hash_table_size, [...]): Removed.Zdenek Dvorak1-234/+191
* gcse.c (expr_hash_table_size, n_exprs, set_hash_table_size, n_sets): Removed. (expr_hash_table, set_hash_table): Type changed to ... (struct hash_table): New type. (hash_scan_insn, hash_scan_set, hash_scan_clobber, hash_scan_call, insert_expr_in_table, insert_set_in_table, compute_hash_table, dump_hash_table, lookup_expr, lookup_set, compute_local_properties, compute_ae_gen, compute_ae_kill): Modified to pass the table explicitly. (alloc_set_hash_table, alloc_expr_hash_table): Merged to ... (alloc_hash_table): New. (free_set_hash_table, free_expr_hash_table): Merged to ... (free_hash_table): New. (compute_set_hash_table, compute_expr_hash_table): Merged to ... (compute_hash_table_work): New. (classic_gcse, one_classic_gcse_pass, compute_cprop_data, find_avail_set, one_cprop_pass, find_bypass_set, compute_pre_data, pre_edge_insert, pre_insert_copies, pre_delete, pre_gcse, one_pre_gcse_pass, compute_transpout, compute_code_hoist_vbeinout, hoist_code, one_code_hoisting_pass, trim_ld_motion_mems): Altered due to changed type of hash tables. From-SVN: r55940
2002-07-30fold-const.c: Fix comment typos.Kazu Hirata1-1/+1
* fold-const.c: Fix comment typos. * gcse.c: Likewise. * reload1.c: Likewise. From-SVN: r55876
2002-07-25collect2.c (SYMBOL__MAIN): Remove.Neil Booth1-7/+2
* collect2.c (SYMBOL__MAIN): Remove. * gcse.c (obstack_chunk_alloc): Remove. (gcse_alloc): Fix to count allocated bytes. From-SVN: r55755
2002-07-23genautomata.c (VLA_HWINT_SHORTEN, [...]): Remove.Neil Booth1-5/+0
* genautomata.c (VLA_HWINT_SHORTEN, VLA_HWINT_LAST): Remove. * df.c (HANDLE_SUBREG, FOR_EACH_BB_IN_BITMAP_REV, FOR_EACH_BB_IN_SBITMAP): Remove. * gcse.c (NEVER_SET, FOLLOW_BACK_EDGES): Remove. * haifa-sched.c (DONE_PRIORITY, MAX_PRIORITY, TAIL_PRIORITY, LAUNCH_PRIORITY, DONE_PRIORITY_P, LOW_PRIORITY_P): Remove. * loop.c (PREFETCH_BLOACK_IN_LOOP_MIN, PREFETCH_LIMIT_TO_SIMULTANEOUS): Remove. * regrename.c (REGNO_MODE_OK_FOR_BASE_P): Remove. From-SVN: r55685
2002-07-23gcse.c (try_replace_reg): Use num_changes_pending.Jan Hubicka1-4/+3
2002-07-23 Jan Hubicka <jh@suse.cz> * gcse.c (try_replace_reg): Use num_changes_pending. * recog.c (num_changes_pending): New function. (validate_replace_src): Use validate_repalce_src_group. (validate_replace_src_group): New. * recog.h (validate_repalce_src_group): New. (num_changes_pending): Likewise. From-SVN: r55677
2002-07-23defaults.h (obstack_chunk_alloc, [...]): Default definition.Neil Booth1-1/+3
* defaults.h (obstack_chunk_alloc, obstack_chunk_free): Default definition. * gcse.c: Don't define obstack_chunk_free. * collect2.c, conflict.c, df.c, diagnostic.c, fix-header.c, flow.c, gcc.c, genattrtab.c, genautomata.c, genflags.c, gensupport.c, integrate.c, loop.c, ra.c, read-rtl.c, regrename.c, reload1.c, reorg.c, tlink.c, tree.c, config/arm/arm.c, objc/objc-act.c: Don't define obstack macros. cp: * class.c, method.c, pt.c, search.c: Similarly. From-SVN: r55665
2002-07-21gcse.c (do_local_cprop): Do not extend lifetimes of registers set by ↵Jan Hubicka1-1/+10
do_local_cprop. * gcse.c (do_local_cprop): Do not extend lifetimes of registers set by do_local_cprop. From-SVN: r55626
2002-07-20gcse.c: Include cselib.hJan Hubicka1-46/+140
* gcse.c: Include cselib.h (constptop_register): Break out from ... (cprop_insn): ... here; kill basic_block argument. (do_local_cprop, local_cprop_pass): New functions. (one_cprop_pass): Call local_cprop_pass. From-SVN: r55615
2002-07-18gcse.c (hoist_expr_reaches_here_p): Stop once expr_bb is reached.Jan Hubicka1-10/+15
* gcse.c (hoist_expr_reaches_here_p): Stop once expr_bb is reached. * gcse.c (try_replace_reg): Do not return false positives. From-SVN: r55553
2002-06-28* gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move.Jan Hubicka1-7/+5
From-SVN: r55087
2002-06-27gcse.c (hoist_code): Rewrite to only get list of dominated blocks once per BB.Daniel Berlin1-10/+16
* gcse.c (hoist_code): Rewrite to only get list of dominated blocks once per BB. Also fix reversed test (by removing need for the test at all). From-SVN: r55031
2002-06-20Mon Jun 10 20:42:34 CEST 2002 Jan Hubicka <jh@suse.cz>Jan Hubicka1-7/+5
* basic-block.h: Do not include et-forest.h (dominance_info): Declare as struct dominance-info. * cfglayout.c (cleanup_unconditional_jumps): Remove the edge before deleting block. * dominance.c (struct dominance_info): Define. (BB_NODE, SET_BB_NODE): New macros. (bb_hash_func, bb_eq_func): Kill. (calculate_dominace_info, free_dominacne_info, set_immediate_dominator, nearest_common_dominator, dominated_by_p, recount_dominator, add_to_dominance_info, delete_from_dominance_info): update for new representation. (get_dominated_by, redirect_immediate_dominators): Rewrite using enumerate_sons. * ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap, find_if_case_1, find_if_case_2): Remove killed blocks from dominance structure. * et-forest.h: Update copyright; revamp all function to operate on nodes (et_forest_value): Kill. (et_forest_enumerate_sons, et_forest_node_value): New. * et-forest.c: Update copyright. * et-forest.h: Update copyright; revamp all function to operate on nodes (et_forest_value): Kill. (et_forest_enumerate_sons, et_forest_node_value): New. Thu Jun 6 22:43:43 CEST 2002 Jan Hubicka <jh@suse.cz> * basic-block.h: Inlude et-forest.h (basic_block_def): Kill dominator. (dominance_info): New type. (loops): Use dominace_info. (dominace handling functions): Take dominace_info as argument instead of bitmaps. (create_preheader): Likewise. * cfg.c (entry_exit_blocks): Kill dominator. (dump_flow_info): Do not dump dominators. * cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from dominators. * cfgloop.c (flow_pre_header_find): Use dominacne_info. (flow_loops_pre_header_scan, make_forwarder_block, canonicale_loop_headers, flow_loops_find): Likewise. * dominance.c: Include error.h (idoms_to_doms): Kill. (bb_hash_func, bb_eq_func): New static functions. (debug_dominace_info): New global function. (calculate_dominance_info): Use new et forest structure. (free_dominace_info, get_immediate_dominator, set_immediate_dominator, get_dominated_by, redirect_immediate_dominators, nearest_common_dominator, dominated_by_p, verify_dominators, recount_dominator, iterate_fix_dominators, add_to_dominace_info, delete_from_dominance_info): New global functions. * gcse.c (domnators): CHange to dominance_info. (alloc_hoist_mem): Do not alloc dominators (free_code_hoist_mem): Use free_dominance_info. (compute_code_hoist_data): Use dominance_info. (hoist_code): Likewise. * ifcvt.c (post_dominators): Likewise. (find_if_case_2, if_convert): Likewise. * predict.c (process_note_predictions, process_note_prediction, estimate-probability): Likewise. * sched-rgn.c (find_rgns, init_regions): Likewise. * ssa-dce.c (find_all_control_dependences, fint_control_depemndence, find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise. * ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers, find_evaluations, convert_to_ssa): Likewise. * ssa.h (compute_dominance_frontiers): Likewise. Thu Jun 6 22:57:34 CEST 2002 Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz> * Makefile.in (et-forest.c): Add. * et-forest.c: New file. * at-forest.h: New file. Co-Authored-By: Pavel Nejedly <bim@atrey.karlin.mff.cuni.cz> From-SVN: r54843
2002-06-14gcse.c (delete_null_pointer_checks_1): Inform caller if any null pointer ↵Jeff Law1-7/+16
checks were eliminated. * gcse.c (delete_null_pointer_checks_1): Inform caller if any null pointer checks were eliminated. Update prototype. (delete_null_pointer_checks): Similarly. * rtl.h (delete_null_pointer_checks): Update prototype. * toplev.c (rest_of_compilation): Only run cleanup_cfg if delete_null_pointer_checks deletes one or more null pointer checks. Do not run cleanup_cfg before gcse, the CFG is accurate and optimized at that point.. From-SVN: r54617
2002-06-11i386.c (x86_promote_QImode): Set for AthlonJan Hubicka1-0/+5
* i386.c (x86_promote_QImode): Set for Athlon (x86_fast_prefix): New global variable. (x86_arch_always_fancy_math_387): Fix formating. * i386.h (x86_fast_prefix): Declare (TARGET_FAST_PREFIX): define. * i386.md (and to strict_low_part, HI to SI promoting splitter): Use new macro. * i386.h (RTX_COSTS): float_extend is not for free for SSE. From-SVN: r54521
2002-06-11Delete SEQUENCE rtl usage outside of reorg and ssa passes.David S. Miller1-20/+15
2002-06-05 David S. Miller <davem@redhat.com> Delete SEQUENCE rtl usage outside of reorg and ssa passes. * rtl.h (gen_sequence, emit_insns, emit_insns_before, emit_insns_before_scope, emit_insns_after, emit_insns_after_scope): Delete declaration. * ada/misc.c (insert_code_for): Use emit_insn* instead of emit_insns_foo. * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE. (alpha_set_memflags): Fix comment. (set_frame_related_p): Use get_insns instead of gen_sequence. * config/alpha/alpha.md (setjmp receiver splitter): Avoid emitting no insns. * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of gen_sequence. (arm_gen_load_multiple, arm_gen_store_multiple): Likewise. * config/fr30/fr30.c (fr30_move_double): Likewise. * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr): Likewise. * config/ia64/ia64.c (spill_restore_mem): Likewise. * config/ia64/ia64.md (conditional move spliiter): Avoid emitting no insns. * config/m32r/m32r.c (gen_split_move_double): Use get_insns instead of gen_sequence. * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise. (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise. * config/sh/sh.c (sh_need_epilogue): Likewise. * config/sparc/sparc.md (current_function_calls_alloca, flat): New attributes. (setjmp pattern and split): Use them to avoid splitter which emits no RTL. * genattrtab.c (main): Emit include of function.h * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use get_insns instead of gen_sequence. * config/cris/cris.c (cris_split_movdx): Likewise. * emit-rtl.c (emit_insns*): Kill. (try_split): Expect insn list instead of SEQUENCE. (make_jump_insn_raw, make_call_insn_raw): Fix comments. (emit_*insn*): Reimplement to work with INSN lists and PATTERNs. Make them abort if a SEQUENCE is given and RTL checking is enabled. (emit_*_scope): Don't forget to set scope on final insn. (gen_sequence): Move from here... * ssa.c (gen_sequence): To here as private function. * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix comments. (expand_builtin_return, expand_builtin_mathfn): Likewise. (expand_builtin_strlen): Use get_insns instead of gen_sequence. (expand_builtin_saveregs): Use emit_insn_foo, fix comments. (expand_builtin_expect_jump): Use get_insns and fix comments. * calls.c (try_to_integrate): Use emit_insn_foo. (expand_call, emit_library_call_value_1): Likewise. * expr.c (emit_queue): Handle insn lists instead of SEQUENCE. (emit_move_insn_1): Use get_insns instead of gen_sequence. (expand_expr): Use emit_insn_foo. * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo. * except.c (build_post_landing_pads): Likewise. * flow.c (attempt_auto_inc): Likewise. * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label, expand_nl_goto_receivers, expand_decl_cleanup): Likewise. * function.c (fixup_var_refs_insn): Use get_insns instead of gen_sequence. (fixup_var_refs_1): Likewise and expect insn list from gen_foo. (fixup_memory_subreg): Use get_insns instead of gen_sequence. (fixup_stack_1, purge_addressof_1, expand_main_function, get_arg_pointer_save_area): Likewise. (optimize_bit_field, instantiate_virtual_regs_1, assign_parms, expand_function_end): Use emit_insn_foo. (record_insns, keep_stack_depressed): Work with insn list instead of SEQUENCE, fix comments. * ifcvt.c (noce_emit_store_flag, noce_try_store_flag, noce_try_store_flag_constants, noce_try_store_flag_inc, noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith, noce_try_minmax, noce_try_abs): Use emit_insn_foo. (noce_process_if_block): Use get_insns instead of gen_sequence. * optabs.c (add_equal_note): Work with insn list, fix comments. (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo. (expand_unop, expand_complex_abs, expand_unop_insn, expand_no_conflict_block): Likewise. (gen_move_insn): Use get_insns instead of gen_sequence. (gen_cond_trap): Likewise. * integrate.c (copy_rtx_and_substitute): Likewise. (emit_initial_value_sets): Use emit_insn_foo. * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise. (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently now that RTL generators give insn lists. * sibcall.c (replace_call_placeholder): Use emit_insn_foo. * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns instead of gen_sequence. (doloop_optimize): Work with insn lists instead of SEQUENCE rtl. * explow.c (emit_stack_save, emit_stack_restore): Use get_insns instead of gen_sequence. * loop.c (move_movables, emit_prefetch_instructions, gen_add_mult, check_dbra_loop, gen_load_of_final_value): Likewise. (loop_regs_update): Work with insn list instead of SEQUENCE rtl. (product_cheap_p): Likewise, and add commentary about RTL wastage here. * lcm.c (optimize_mode_switching): Use get_insns instead of gen_sequence. * profile.c (gen_edge_profiler): Likewise. * regmove.c (copy_src_to_dest): Likewise. * reg-stack.c (compensate_edge): Likewise and fix comment. * gcse.c (process_insert_insn): Likewise. (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl. * jump.c (delete_prior_computation): Update comment. * genemit.c (gen_expand, gen_split, main): Use get_insns instead of gen_sequence, update comments to match. * recog.c (peephole2_optimize): Work with insn lists instead of SEQUENCE rtl. * sched-vis.c (print_pattern): Abort on SEQUENCE. * unroll.c (unroll_loop, find_splittable_givs, final_giv_value): Use get_insns instead of gen_sequence. (copy_loop_body): Likewise and don't emit dummy NOTE. * genrecog.c: Don't mention SEQUENCE rtl in comments. * combine.c (try_combine): Expect insn lists from split generator. * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by hand. From-SVN: r54497
2002-06-10toplev.c (rest_of_compilation): Disable early if-conversion pass.Roger Sayle1-1/+1
* toplev.c (rest_of_compilation): Disable early if-conversion pass. * gcse.c (bypass_conditional_jumps): Fix typo in setcc test. From-SVN: r54475
2002-06-04gbl-ctors.h: Fix formatting.Kazu Hirata1-175/+175
* gbl-ctors.h: Fix formatting. * gcc.c: Likewise. * gccspec.c: Likewise. * gcov.c: Likewise. * gcov-io.h: Likewise. * gcse.c: Likewise. * ggc-common.c: Likewise. * ggc.h: Likewise. * ggc-page.c: Likewise. * ggc-simple.c: Likewise. * global.c: Likewise. * graph.h: Likewise. * gthr-dce.h: Likewise. * gthr.h: Likewise. * gthr-posix.h: Likewise. * gthr-rtems.h: Likewise. * gthr-solaris.h: Likewise. * gthr-win32.h: Likewise. From-SVN: r54240
2002-06-04Merge from pch-branch up to tag pch-commit-20020603.Geoffrey Keating1-2/+3
From-SVN: r54232
2002-06-04gcse.c (cprop_jump): Use single_set to get the pattern from the setcc argument.Roger Sayle1-3/+6
* gcse.c (cprop_jump): Use single_set to get the pattern from the setcc argument. From-SVN: r54221