aboutsummaryrefslogtreecommitdiff
path: root/gcc/reg-stack.c
AgeCommit message (Collapse)AuthorFilesLines
2001-01-05simplify-rtx.c (cfc_args): add "unordered" field.Jan Hubicka1-2/+12
* simplify-rtx.c (cfc_args): add "unordered" field. (check_fold_consts): Set unordered field. (simplify_relational_operation): Simplify the unordered comparisons. * reg-stack.c (swap_rtx_condition): Ensure that the transformation is valid. * emit-rtl.c (try_split): Fix code to mark labels. * jump.c (mark_jump_label): Make global. * rtl.h (mark_jump_label): Declare. * predict.c (estimate_probability): Handle unordred comparisons. From-SVN: r38711
2000-08-04alias.c (mark_constant_function): Use INSN_P.Rodney Brown1-5/+3
* 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-08-03reg-stack.c (subst_stack_regs_pat): Use replace_reg to swap operands.Jan Hubicka1-3/+3
* reg-stack.c (subst_stack_regs_pat): Use replace_reg to swap operands. * i386.c (ix86_expand_branch): Mode of comparison in IF_THEN_ELSE is VOIDmode. From-SVN: r35458
2000-07-27Put phi nodes after NOTE_INSN_BASIC_BLOCK.Mark Mitchell1-2/+1
* rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro. * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P. (get_prev_bb_note): Likewise. (remove_scope_notes): Likewise. * flow.c (commit_one_edge_insertion): Likewise. (merge_blocks_nomove): Likewise. (verify_flow_info): Likewise. * gcse.c (insert_insn_end_bb): Likewise. * reg-stack.c (emit_swap_insn): Likewise. * ssa.c (first_insn_after_basic_block_note): New function. (insert_phi_node): Use it. (rename_block): Likewise. (eliminate_phi): Likewise. (make_regs_equivalent_over_bad_edges): Likewise. (make_equivalent_phi_alternatives_equivalent): Likewise. (for_each_successor_phi): Likewise. (convert_from_ssa): Modify phi-node deletion algorithm. From-SVN: r35296
2000-04-26basic-block.h (life_analysis): Declare here ...Richard Henderson1-1/+1
* basic-block.h (life_analysis): Declare here ... * output.h: ... not here. * flow.c (life_analysis): Remove nregs parameter; replace remove_dead_code with flags. Remove ssa dead code check. Only init alias analysis if we'll use it. * reg-stack.c (reg_to_stack): Update life_analysis arguments. * ssa.c (convert_to_ssa): Likewise. (convert_from_ssa): Likewise. * toplev.c (rest_of_compilation): Likewise. From-SVN: r33459
2000-04-25calls.c (expand_call): Disable tail call generation once ↵Richard Henderson1-1/+1
rtx_equal_function_value_matters is false. * calls.c (expand_call): Disable tail call generation once rtx_equal_function_value_matters is false. * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges like EDGE_EH edges. From-SVN: r33431
2000-02-26Fix copyrights.Jeff Law1-1/+2
From-SVN: r32179
2000-02-17reg-stack.c (emit_swap_insn): Do not put a new insn before a NOTE_BASIC_BLOCK.Zack Weinberg1-5/+3
* reg-stack.c (emit_swap_insn): Do not put a new insn before a NOTE_BASIC_BLOCK. From-SVN: r32027
2000-02-06Makefile.in (c-common.o): Depend on $(EXPR_H).Kaveh R. Ghazi1-0/+2
* Makefile.in (c-common.o): Depend on $(EXPR_H). * c-common.c: Include expr.h. * c-pragma.c (mark_align_stack): Add prototype. * caller-save.c (add_stored_regs): Likewise. * combine.c (record_promoted_value): Likewise. * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro): Likewise. * cppinit.c (new_pending_define): Likewise. * cpplib.c (skip_block_comment, skip_line_comment): Likewise. * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists, AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc, AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p, class_scope_p): Likewise. * dwarf2out.h (dwarf2out_set_demangle_name_func, dwarf2out_add_library_unit_info): Likewise. * ggc.h (ggc_page_print_statistics): Likewise. * haifa-sched.c (propagate_deps): Likewise. * reg-stack.c (next_flags_user, record_label_references): Likewise. * rtl.h (set_stack_check_libfunc): Likewise. * toplev.h (set_fatal_function): Likewise. * toplev.c (set_fatal_function): Delete prototype. * diagnostic.c: Deconstify functions returning malloc'ed ptrs. From-SVN: r31810
2000-01-28flow.c (find_basic_blocks): Remove do_cleanup argument.Richard Henderson1-1/+1
* flow.c (find_basic_blocks): Remove do_cleanup argument. Break out that code ... (cleanup_cfg): ... here. (commit_one_edge_insertion): Detect a return instruction being emitted to an edge. Emit a barrier following; clear fallthru. (commit_edge_insertions): Verify CFG consistency. * function.c (expand_function_start): Kill unused variable. (expand_function_end): Likewise. (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge to insert the epilogue. * gcse.c (gcse_main): Adjust for find_basic_blocks change. (delete_null_pointer_checks): Likewise. * output.h: Likewise. * reg-stack.c (reg_to_stack): Likewise. * toplev.c (rest_of_compilation): Likewise. Run thread_prologue_and_epilogue_insns after rebuilding the CFG. From-SVN: r31676
2000-01-24reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of dead registers.Jan Hubicka1-15/+3
* reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of dead registers. From-SVN: r31588
2000-01-17print-rtl.c: PROTO -> PARAMS.Kaveh R. Ghazi1-28/+28
* print-rtl.c: PROTO -> PARAMS. * real.c: Likewise. * reg-stack.c: Likewise. * resource.c: Likewise. * sdbout.h: Likewise. * simplify-rtx.c: Likewise. * stor-layout.c: Likewise. * stupid.c: Likewise. * xcoffout.c: Likewise. * xcoffout.h: Likewise. From-SVN: r31463
2000-01-06reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of dead registers.Jan Hubicka1-3/+15
* reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of dead registers. * i386.c (movsf splitter): Fix typo in my last checkin. From-SVN: r31256
2000-01-04builtins.c (expand_builtin_strlen): Initialize variable `icode'.Kaveh R. Ghazi1-4/+4
* builtins.c (expand_builtin_strlen): Initialize variable `icode'. * calls.c (expand_call): Likewise for `old_stack_arg_under_construction'. * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'. * function.c (pad_to_arg_alignment): Likewise for `save_var' and `save_constant'. * gcc.c (execute): Likewise for `ut' and `st'. * genattrtab.c (attr_rtx): Likewise for `rt_val'. * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'. * jump.c (jump_optimize_1): Likewise for `temp2'. * local-alloc.c (block_alloc): Likewise for `r1'. * loop.c (recombine_givs): Likewise for `life_start' and `life_end'. * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'. (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'. * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node' and `set2'. * reload.c (find_reloads): Likewise for `goal_alternative_number' and `goal_earlyclobber'. * scan-decls.c (scan_decls): Likewise for `prev_id_end'. * sdbout.c (sdbout_one_type): Likewise for `member_scl'. * stupid.c (stupid_life_analysis): Likewise for `chain'. * unroll.c (copy_loop_body): Likewise for `copy'. * varasm.c (output_constructor): Likewise for `byte'. ch: * actions.c (update_else_range_for_int_const): Initialize variables `lowval' and `highval'. (update_else_range_for_range): Likewise for `low_range_val' and `high_range_val'. cp: * class.c (warn_hidden): Initialize variable `fndecl'. From-SVN: r31207
1999-11-25reg-stack.c (subst_stack_regs_pat): Swap operands in commutative operations ↵Jan Hubicka1-0/+10
when needed. * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative operations when needed. * i386.md (fop_?f_comm): New. (fop_?f_1): Do not accept commutative operands. From-SVN: r30664
1999-11-06local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.Mark Mitchell1-3/+4
* local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca. (update_equiv_regs): Likewise. (block_alloc): Likewise. * reg-stack.c (reg_to_stack): Likewise. (convert_regs_2): Likewise. * reload1.c (reload_as_needed): Likewise. From-SVN: r30434
1999-11-04reg-stack.c (convert_regs_1): Initialize target_stack->top after verifying ↵Richard Henderson1-4/+5
an EH edge. * reg-stack.c (convert_regs_1): Initialize target_stack->top after verifying an EH edge. From-SVN: r30402
1999-11-04function.c (diddle_return_value): New.Richard Henderson1-14/+35
* function.c (diddle_return_value): New. (expand_function_end): Use it. * stmt.c (expand_null_return): Likewise. (expand_value_return): Likewise. * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level. * reload1.c (reload): Don't remove return value clobbers. From-SVN: r30401
1999-11-01* reg-stack.c (convert_regs_1): Handle EH edges specially.Richard Henderson1-5/+27
From-SVN: r30336
1999-10-29* jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.Richard Henderson1-12/+3
From-SVN: r30271
1999-10-27jump.c (jump_optimize_1): If we did cross-jumping, and the data will matter, ↵Richard Henderson1-13/+12
rebuild the CFG. * jump.c (jump_optimize_1): If we did cross-jumping, and the data will matter, rebuild the CFG. * reg-stack.c (reg_to_stack): Only (re)build the CFG if not optimizing. Don't run shorten_branches. * toplev.c (rest_of_compilation): Run shorten_branches after reg_to_stack. From-SVN: r30223
1999-10-26Reorg reg-stack to use the standard CFG.Jan Hubicka1-1245/+842
Co-Authored-By: Richard Henderson <rth@cygnus.com> From-SVN: r30201
1999-10-19reg-stack.c (stack_result): Aggregates are not returned in stack registers.Jeffrey A Law1-1/+9
* reg-stack.c (stack_result): Aggregates are not returned in stack registers. From-SVN: r30081
1999-09-28c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined, call it.Bernd Schmidt1-1/+1
* c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined, call it. * reg-stack.c (straighten_stack): Copy hard reg set with COPY_HARD_REG_SET. From-SVN: r29694
1999-09-20Make it possible to prototype port-specific functions (and convert i386 to ↵Bernd Schmidt1-0/+1
use this) From-SVN: r29514
1999-09-11Replace recog_foo with recog_data.foo.Richard Henderson1-49/+50
From-SVN: r29349
1999-09-06Merge in gcc2-ss-010999Jeff Law1-3/+3
From-SVN: r29150
1999-09-01Merge new ia32 backend from the branch!Richard Henderson1-383/+419
From-SVN: r29044
1999-08-20rtl.h (rtx_format): Constify a char*.Kaveh R. Ghazi1-6/+6
* rtl.h (rtx_format): Constify a char*. * rtl.c (rtx_format): Likewise. (copy_rtx, copy_most_rtx, read_rtx): Likewise. (init_rtl): Use accessor macro, not `rtx_format'. * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a char*. * caller-save.c (mark_referenced_regs): Likewise. * combine.c (subst, make_compound_operation, known_cond, gen_rtx_combine, update_table_tick, get_last_value_validate, use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise. * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p, refers_to_p, canon_reg, fold_rtx, cse_process_notes, count_reg_usage): Likewise. * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags): Likewise. * final.c (leaf_renumber_regs_insn): Likewise. * flow.c (mark_used_regs, find_use_as_address, dump_flow_info, dump_edge_info, count_reg_references): Likewise. * function.c (fixup_var_refs_1, walk_fixup_memory_subreg, fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1): Likewise. * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p, oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs, add_label_notes): Likewise. * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask, clear_struct_flag, count_sub_rtxs, count_alternatives, compares_alternatives_p, contained_in_p, walk_attr_value, write_expr_attr_cache): Likewise. * genconfig.c (walk_insn_part): Likewise. * genemit.c (max_operand_1, gen_exp): Likewise. * genextract.c (walk_rtx): Likewise. * genflags.c (num_operands): Likewise. * genoutput.c (scan_operands): Likewise. * genpeep.c (match_rtx): Likewise. * genrecog.c (add_to_sequence): Likewise. * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths): Likewise. * integrate.c (save_constants, copy_for_inline, copy_rtx_and_substitute, subst_constants, restore_constants): Likewise. * jump.c (mark_jump_label, invert_exp, redirect_exp, rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise. * local-alloc.c (contains_replace_regs, memref_referenced_p): Likewise. * loop.c (record_excess_regs, rtx_equal_for_loop_p, add_label_notes, replace_call_address, count_nonfixed_reads, invariant_p, find_single_use_in_loop, find_mem_givs, find_life_end, maybe_eliminate_biv_1, update_reg_last_use): Likewise. * print-rtl.c (reg_names, print_rtx): Likewise. * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise. * reg-stack.c (stack_regs_mentioned_p, record_label_references, record_reg_life_pat, swap_rtx_condition, goto_block_pat, print_blocks): Likewise. * regclass.c (fix_register, record_address_regs, reg_scan_mark_refs): Likewise. * regmove.c (stable_but_for_p): Likewise. * reload.c (loc_mentioned_in_p, operands_match_p, find_reloads_toplevsubst_reg_equivs, find_reloads_address_1, copy_replacements, refers_to_regno_for_reload_p, refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p, reload_when_needed_name, reg_class_names, debug_reload_to_stream): Likewise. * reload1.c (eliminate_regs, scan_paradoxical_subregs, delete_address_reloads_1, count_occurrences, reload_cse_mem_conflict_p, reload_combine_note_use, add_auto_inc_notes): Likewise. * resource.c (mark_referenced_resources, mark_set_resources): Likewise. * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p, reg_mentioned_p, regs_set_between_p, modified_between_p, modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p, rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p, may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs, jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise. * sched.c (sched_analyze_2, attach_deaths): Likewise. * stupid.c (stupid_mark_refs): Likewise. * unroll.c (remap_split_bivs): Likewise. * varasm.c (mark_constants): Likewise. * a29k/a29k.c (uses_local_reg_p): Likewise. * alpha/alpha.c (summarize_insn): Likewise. * arm/arm.c (symbol_mentioned_p, label_mentioned_p, eliminate_lr2ip): Likewise. * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise. * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx, reg_mentioned_in_mem): Likewise. * ns32k/ns32k.c (global_symbolic_reference_mentioned_p, symbolic_reference_mentioned_p): Likewise. * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise. * sh/sh.c (regs_used, mark_use): Likewise. * vax/vax.c (vax_rtx_cost): Likewise. From-SVN: r28784
1999-08-09Include function.h in most files.Bernd Schmidt1-2/+1
Include function.h in most files. Remove most of the global variables duplicated in function.h. Add accessor macros for them which access current_function. Delete INLINE_HEADER rtx and related code, replace with code using struct function to store inlining related data. From-SVN: r28626
1999-08-061999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>Herman A.J. ten Brugge1-25/+28
* reg-stack.c (change_stack) Fixed problem with negative array index. From-SVN: r28570
1999-06-10Mumit Khan <khan@xraylith.wisc.edu>Mumit Khan1-1/+1
Mumit Khan <khan@xraylith.wisc.edu> * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns. From-SVN: r27475
1999-05-16reg-stack.c: Do not emit pop insns after cc0 setter.Jan Hubicka1-21/+35
* reg-stack.c: Do not emit pop insns after cc0 setter. (emit_pop_insn): Do not emit insn in case WHEN is NULL. (compare_for_stack_reg): Update REG_DEAD note and do not emit push insn. * i386.c: (output_float_compare): Handle new REG_DEAD notes. From-SVN: r26965
1999-04-12* reg-stack.c (check_stack_regs_mentioned): Remove variable SIZE.Jan Hubicka1-8/+3
From-SVN: r26386
1999-04-11reg-stack.c: Update comment, include varray.h.Jan Hubicka1-23/+73
* reg-stack.c: Update comment, include varray.h. (stack_regs_mentioned_data): New global variable. (check_stack_regs_mentioned): New function. (stack_regs_mentioned): New function. (reg_to_stack): Initialize and free stack_regs_mentioned_data, use stack_regs_mentioned. (record_asm_reg_life): Change insn type cache for changed insn. (record_reg_life): Do not change the insn mode. (emit_pop_insn): Likewise. (emit_swap_insn): Likewise. (move_for_stack_reg): Likewise. (stack_reg_life_analysis): Use stack_regs_mentioned. (emit_swap_insn): Likewise. (subst_stack_regs): Likewise. (convert_regs): Likewise. * jump.c (find_cross_jump): Use stack_regs_mentioned. * rtl.h (stack_regs_mentioned): Declare. From-SVN: r26360
1999-04-10i386.md (floatsisf2, [...]): Remove unused register constraints from the ↵John Wehle1-2/+16
splitters. * i386.md (floatsisf2, floatdisf2, floatsidf2, floatdidf2, floatsixf2, floatdixf2, movsicc, movhicc, movsfcc, movdfcc, movxfcc, movdicc): Remove unused register constraints from the splitters. * i386.md (fixuns_truncsfsi2, fixuns_truncdfsi2, fixuns_truncxfsi2): Delete. * reg-stack.c (delete_insn_for_stacker): Ensure that the only side effects of a PARALLEL are clobbers. (subst_stack_regs): Handle subst_stack_regs_pat deleting a PARALLEL. * i386.md (extendsfdf2, extenddfxf2, extendsfxf2): Rewrite using a splitter. * i386.c (output_op_from_reg): Remove. * i386.h: Likewise. From-SVN: r26338
1999-03-09reg-stack.c (stack_reg_life_analysis): Use returnjump_p instead of an ↵Richard Henderson1-1/+1
explicit test for RETURN. * reg-stack.c (stack_reg_life_analysis): Use returnjump_p instead of an explicit test for RETURN. From-SVN: r25652
1999-02-25Flow rewrite to use basic block structures and edge lists.Richard Henderson1-3/+18
From-SVN: r25450
1999-01-17reg-stack.c (subst_stack_regs_pat): Abort if the destination of a FP ↵Jeff Law1-4/+6
conditional move is not on the FP register stack. * reg-stack.c (subst_stack_regs_pat): Abort if the destination of a FP conditional move is not on the FP register stack. Forgot to check it in last night/this morning. One should not hack at 4am. From-SVN: r24716
1998-12-04final.c (cleanup_subreg_operands): Delete some unused code.Bernd Schmidt1-429/+109
* final.c (cleanup_subreg_operands): Delete some unused code. * recog.h (MAX_RECOG_ALTERNATIVES): New macro. (struct insn_alternative): New structure definition. (recog_op_alt): Declare variable. (preprocess_constraints): Declare function. * recog.c (recog_op_alt): New variable. (extract_insn): Verify number of alternatives is in range. (preprocess_constraints): New function. * reg-stack.c: Include recog.h. (constrain_asm_operands): Delete. (get_asm_operand_lengths): Delete. (get_asm_operand_n_inputs): New function. (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and N_OUTPUTS args. All callers changed. Compute number of inputs and outputs here by calling get_asm_operand_n_inputs. Instead of constrain_asm_operands, call extract_insn, constrain_operands and preprocess_constaints. Use information computed by these functions throughout. (record_reg_life): Delete code that is unused due to changes in record_asm_reg_life. (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS, N_INPUTS and N_OUTPUTS args. All callers changed. Similar changes as in record_asm_reg_life. (subst_stack_regs): Move n_operands declaration into the if statement where it's used. Delete code that is unused due to changes in subst_asm_stack_regs. * stmt.c (expand_asm_operands): Verify number of alternatives is in range. * Makefile.in (reg-stack.o): Depend on recog.h. From-SVN: r24090
1998-10-09flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use.Graham Stott1-7/+7
Fri Oct 9 16:03:19 1998 Graham <grahams@rcp.co.uk> * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use. * gcc.c (add_preprocessor_option): Correct typo when allocating memory, sizeof() argument had one too many `*'. (add_assembler_option): Likewise. (add_linker_option): Likewise. * gcov.c (output_data): Likewise. * local-alloc.c (memref_used_between_p): Likewise. (update_equiv_regs): Likewise. * loop.c (strength_reduce): Likewise. * reg-stack.c (record_asm_reg_life): Likewise. (subst_asm_stack_reg): Likewise. * reorg.c (dbr_schedule): Likewise. From-SVN: r22964
1998-09-09reg-stack.c (straighten_stack): Do nothing if the virtual stack is empty or ↵Jeffrey A Law1-0/+7
has a single entry. * reg-stack.c (straighten_stack): Do nothing if the virtual stack is empty or has a single entry. From-SVN: r22376
1998-06-07reg-stack.c (subst_stack_regs_pat): Make sure the top of stack is the ↵H.J. Lu1-0/+9
destination for conditional move insn. * reg-stack.c (subst_stack_regs_pat): Make sure the top of stack is the destination for conditional move insn. From-SVN: r20324
1998-05-06toplev.h: New file.Robert Lipe1-0/+1
Wed May 6 06:35:38 1998 Robert Lipe <robertl@dgii.com> * toplev.h: New file. Protypes for functions in toplev.c. * tree.h, rtl.h: Deleted protos for functions in toplev.c. * c-common.c, c-convert.c, c-decl.c, c-iterate.c, c-lex.c, c-parse.in, c-parse.y, c-pragma.c, c-typeck.c, calls.c, convert.c, dwarf2out.c, except.c, expr.c, final.c, fold-const.c, function.c, hash.c, profile.c, real.c, reg-stack.c, regclass.c, reload.c, reload1.c, stmt.c, stor-layout.c, tlink.c, tree.c, varasm.c: include it. From-SVN: r19564
1998-04-27Fix for x86 FP problem.Jim Wilson1-23/+25
* reg-stack.c: Revert last patch (Apr 20). (convert_regs): Set insn to PREV_INSN (next) after do while loop. From-SVN: r19437
1998-04-19reg-stack.c (subst_asm_stack_regs): Change to return the last new insn ↵H.J. Lu1-13/+23
generated by this function. * reg-stack.c (subst_asm_stack_regs): Change to return the last new insn generated by this function. (subst_stack_regs): Likewise. (convert_regs): Record the last newly generated insn and use it for change_stack () instead of INSN. From-SVN: r19328
1998-04-16varasm.c (asm_output_bss): Add prototype.Jeff Law1-0/+1
* varasm.c (asm_output_bss): Add prototype. (asm_output_aligned_bss): Likewise. * unroll.c (verify_addresses): Add prototype. * toplev.c: Add many prototypes. Too many to mention here. * stmt.c (check_seenlabel): Add prototype. * rtlanal.c (reg_set_p_1): Add prototype. (reg_set_last_1): Likewise. * reorg.c (find_dead_or_set_registers): Add prototype. * regmove (try_auto_increment): Add prototype. * regstack.c (pop_stack): Add prototype. From-SVN: r19254
1998-04-16Patch to fix x86 gcc.dg/980226-1.c failure report by Manfred Hollstein.Jim Wilson1-3/+8
* reg-stack.c (constrain_asm_operands): Set n_alternatives to zero if no operands. From-SVN: r19236
1998-04-04* Check in merge from gcc2. See ChangeLog.11 and ChangeLog.12Jeff Law1-3/+5
for details. * haifa-sched.c: Mirror recent changes from gcc2. From-SVN: r18984
1998-03-27basic-block.h (basic_block_computed_jump_target): Declare.Bernd Schmidt1-67/+1
* basic-block.h (basic_block_computed_jump_target): Declare. * flags.h: (current_function_has_computed_jump): Declare. * flow.c: (basic_block_computed_jump_target): Define. (flow_analysis): Allocate it. Set current_function_has_computed_jump to 0. (find_basic_blocks): Set current_function_has_computed_jump and elements of basic_block_computed_jump_target to 1 as appropriate. * function.c: (current_function_has_computed_jump): Define. * global.c (global_conflicts): Don't allocate pseudos into stack regs at the start of a block that is reachable by a computed jump. * reg-stack.c (stack_reg_life_analysis): If must restart, do so immediately. (subst_stack_regs): Undo change from Sep 4 1997. (uses_reg_or_mem): Now unused, deleted. * stupid.c (stupid_life_analysis): Compute current_function_has_computed_jump. (stupid_find_reg): Don't allocate stack regs if the function has a computed goto. * haifa-sched.c (is_cfg_nonregular): Delete code to determine if the current function has a computed jump. Use the global value instead. Co-Authored-By: Jeffrey A Law <law@cygnus.com> From-SVN: r18860