summaryrefslogtreecommitdiffstats
path: root/gcc/reorg.c
Commit message (Collapse)AuthorAgeFilesLines
* * mkconfig.sh: Include insn-flags.h.rth2001-03-221-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (CONFIG_H): Include insn-flags.h. (lots of objects): Remove insn-codes.h and insn-flags.h. * alias.c, bb-reorder.c, calls.c, do-loop.c, flow.c, haifa-sched.c, integrate.c, jump.c, loop.c, predict.c, profile.c, reg-stack.c, regmove.c, reorg.c, a29k/a29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c, avr/avr.c, clipper/clipper.c, convex/convex.c, d30v/d30v.c, dsp16xx/dsp16xx.c, fr30/fr30.c, h8300/h8300.c, i370/i370.c, i386/i386.c, i860/i860.c, ia64/ia64.c, m32r/m32r.c, m68hc11/m68hc11.c, m68k/m68k.c, m88k/m88k.c, mcore/mcore.c, mn10200/mn10200.c, mn10300/mn10300.c, ns32k/ns32k.c, pa/pa.c, pdp11/pdp11.c, pj/pj.c, romp/romp.c, rs6000/rs6000.c, sh/sh.c, sparc/sparc.c, v850/v850.c, vax/vax.c: Don't include insn-flags.h. * diagnostic.c, expr.h, reload.c, toplev.c: Don't include insn-codes.h. * builtins.c, combine.c, except.c, explow.c, expmed.c, expr.c, final.c, function.c, optabs.c, recog.c, reload1.c, stmt.c, c4x/c4x.c, i960/i960.c, mips/mips.c: Don't include insn-codes.h or insn-flags.h. * genemit.c, genopinit.c, genoutput.c: Don't include insn-codes.h or insn-flags.h in the generated code. * genflags.c (gen_proto): Use "struct rtx_def *" instead of "rtx". (main): Forward declare struct rtx_def. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40754 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-02-21 Jeffrey Oldham <oldham@codesourcery.com>oldham2001-02-211-79/+68
| | | | | | | | | | | | | | | | * Makefile.in (reorg.o): Add params.h dependence. * params.def: Fix typographical error in comment. (MAX_DELAY_SLOT_INSN_SEARCH): New parameter. * params.h: Modify introductory comment. (MAX_DELAY_SLOT_INSN_SEARCH): New parameter. * reorg.c: Add dependence on params.h. (redundant_insn): Add parameterized throttle for search. (fill_simple_delay_slots): Add a comment explaining a variable. Move conditional out of loop, simplifying code. (fill_eager_delay_slots): Fix typographical error in comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39948 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c (init_alias_analysis), calls.c (expand_call,jsm282000-11-071-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | emit_library_call_value_1), combine.c (init_reg_last_arrays), cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c (init_output_buffer, set_diagnostic_context), dwarf2out.c (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c (init_emit_once), fold-const.c (mul_double, div_and_round_double), function.c (assign_parms), gcse.c (compute_can_copy, alloc_gcse_mem, alloc_reg_set_mem, record_one_set, compute_hash_table, compute_set_hash_table, compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info, clear_units, schedule_block), integrate.c (initialize_for_inline, expand_inline_function), jump.c (thread_jumps), local-alloc.c (local_alloc), loop.c (combine_movables, count_loop_regs_set, load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree), regclass.c (init_reg_sets, init_reg_sets_1, regclass, record_reg_classes, allocate_reg_info), reload.c (get_secondary_mem, remove_address_replacements, find_reloads), reload1.c (reload, set_initial_label_offsets, finish_spills, reload_as_needed, choose_reload_regs_init, reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c (rename_registers), stmt.c (expand_end_case), unroll.c (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset () instead of bzero (). ch: * actions.c (check_missing_cases), typeck.c (build_chill_slice, build_chill_cast): Use memset () instead of bzero (). cp: * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c (push_binding_level), error.c (cp_tree_printer), pt.c (process_partial_specialization, tsubst_template_arg_vector), search.c (lookup_member): Use memset () instead of bzero (). java: * expr.c (note_instructions), jcf-io.c (find_class), jcf-parse.c (init_outgoing_cpool), lex.c (java_init_lex): Use memset () instead of bzero (). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@37303 138bc75d-0d04-0410-961f-82ee72b054a4
* 2000-10-18 Kazu Hirata <kazu@hxi.com>kazu2000-10-181-94/+90
| | | | | | | * reorg.c: Fix formatting. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36926 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c (find_end_label): If the basic block reorder pass moves thelaw2000-09-071-12/+34
| | | | | | | | | | return insn to some other place try to locate it again and put our end_of_function_label there. * reorg.c (relax_delay_slots): Check if find_end_label created a new label that invalidates the current optimazation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36237 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c (mark_constant_function): Use INSN_P.law2000-08-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35494 138bc75d-0d04-0410-961f-82ee72b054a4
* * jump.c (redirect_jump): Add delete_unused argument. Don'trth2000-05-191-14/+6
| | | | | | | | | | | | | | | | remove labels and code following when LABEL_NUSES goes to zero. (invert_jump): Likewise. (jump_optimize_1): Fix redirect/invert arguments. (do_cross_jump, thread_jumps): Likewise. * flow.c (split_edge): Likewise. * reorg.c (optimize_skip): Likewise. (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise. * profile.c (instrument_arcs): Likewise. * loop.c (find_and_verify_loops): Likewise. Fix indentation. * rtl.h: Update prototypes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34033 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (canonicalize_condition): Add WANT_REG argument.rth2000-04-171-15/+14
| | | | | | | | | | | | | Stop the search if we match it. * expr.h (canonicalize_condition): Update decl. * predict.c (expected_value_to_br_prob): Use it. Track last expected value note. (find_expected_value): Remove. * reorg.c (mostly_true_jump): Always use BR_PROB if present. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33214 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c (fill_slots_from_thread): Check side_effects_p whenhp2000-04-121-1/+2
| | | | | | | trying the "opposite arithmetic" approach. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33125 138bc75d-0d04-0410-961f-82ee72b054a4
* * resource.h (mark_resource_type): New.scox2000-03-271-12/+12
| | | | | | | | | | | | | * resource.c (find_dead_or_set_registers, mark_target_live_regs, find_free_register): Use mark_resource_type. (mark_set_resources): Change include_delayed_effects to mark_resource_type. * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): Use mark_resource_type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32771 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix copyrights.law2000-02-261-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32179 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyrightsghazi2000-01-171-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31465 138bc75d-0d04-0410-961f-82ee72b054a4
* * reload.c: PROTO -> PARAMS.ghazi2000-01-171-34/+34
| | | | | | | | | | | | | | | | | | * reload.h: Likewise. * reload1.c: Likewise. * reorg.c: Likewise. * resource.h: Likewise. * rtl.c: Likewise. * rtl.h: Likewise. * rtlanal.c: Likewise. * sbitmap.h: Likewise. * sdbout.c: Likewise. * stack.h: Likewise. * stmt.c: Likewise. * system.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31461 138bc75d-0d04-0410-961f-82ee72b054a4
* * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' inghazi2000-01-131-0/+2
| | | | | | | | | | | | | | | | | | macro conditionals guarding use. * dwarf2out.c: Include "tm_p.h". * function.c (locate_and_pad_parm): Mark parameter with ATTRIBUTE_UNUSED. (expand_function_end): Likewise for variable `context'. * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return. cp: * call.c: If GATHER_STATISTICS, declare `n_build_method_call'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31398 138bc75d-0d04-0410-961f-82ee72b054a4
* * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.ghazi2000-01-131-0/+2
| | | | | | | | | | | | | * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED. * regclass.c (choose_hard_reg_mode): Likewise. * reload.c (find_valid_class, strict_memory_address_p): Likewise. * reorg.c (optimize_skip): Wrap prototype in macro conditionals. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31364 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c (fill_slots_from_thread): Check modified_in_plaw2000-01-121-1/+2
| | | | | | | before replacing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31349 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c (dbr_schedule) Print more statistics. Correctedlaw1999-11-281-1/+55
| | | | | | | problem when printing info when 3 delay slots are filled. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30687 138bc75d-0d04-0410-961f-82ee72b054a4
* * bitmap.h (BITMAP_XMALLOC): New macro.mmitchel1999-11-011-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | * flow.c (CLEAN_ALLOCA): Remove. (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca. (life_analysis): Likewise. (update_life_info): Don't use CLEAN_ALLOCA. (life_analysis_1): Use xmalloc/xcalloc instead of alloca. (calculate_global_regs_live): Likewise. (print_rtl_with_bb): Likewise. (verify_flow_info): Likewise. * global.c (global_alloc): Likewise. (global_conflicts): Likewise. * integrate.c (save_for_inline_nocopy): Likewise. (expand_inline_function): Likewise. * jump.c (jump_optimize_1): Likewise. (duplicate_loop_exit_test): Likewise. (thread_jumps): Likewise. * loop.c (loop_optimize): Likewise. (combine_givs): Likewise. (recombine_givs): Likewise. * reorg.c (dbr_schedule): Likewise. * unroll.c (unroll_loop): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30333 138bc75d-0d04-0410-961f-82ee72b054a4
* Make it possible to prototype port-specific functions (and convert i386 to ↵crux1999-09-201-0/+1
| | | | | | use this) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29514 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge in gcc2-ss-010999law1999-09-071-8/+13
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29150 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (simplify_shift_const): Remove extra semicolon.law1999-09-021-1/+1
| | | | | | | | | | * dwarf2out.c (remove_AT): Likewise. * expmed.c (expand_mult): Likewise. * gcov.c (create_program_flow_graph): Likewise. * reorg.c (mostly_true_jump): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29050 138bc75d-0d04-0410-961f-82ee72b054a4
* Include function.h in most files. Remove most of the global variablescrux1999-08-091-0/+1
| | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28626 138bc75d-0d04-0410-961f-82ee72b054a4
* 1999-04-17 20:11 -0400 Zack Weinberg <zack@rabi.columbia.edu>zack1999-04-171-0/+1
| | | | | | | | | | * c-aux-info.c, emit-rtl.c, explow.c, expmed.c, gcse.c, haifa-sched.c, optabs.c, reorg.c, resource.c, sched.c: Include toplev.h for real declaration of trim_filename. * Makefile.in: Update dependencies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26523 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c: Finish deleting half-deleted comment.law1999-02-101-2/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25142 138bc75d-0d04-0410-961f-82ee72b054a4
* Bob Manson <manson@charmed.cygnus.com>rth1999-02-021-1146/+16
| | | | | | | | | | | | | | | | * resource.c, resource.h: New files. * haifa-sched.c (regno_use_in): Moved to rtlanal.c. (split_block_insns): Moved to recog.c. (update_flow_info): Make public. * reorg.c: Moved the functions dealing with computing resource usage to resource.c. * sched.c (regno_use_in): Moved to rtlanal.c. (update_flow_info): Make public. (schedule_insns): Use split_block_insns. * recog.c (split_block_insns): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24982 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge in gcc2 snapshot 19980929. See gcc/ChangeLog and gcc/FSFChangeLog forlaw1999-01-271-40/+43
| | | | | | | details. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24879 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyrights.rth1999-01-111-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24624 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h (basic_block_head): Rename to x_basic_block_head.rth1999-01-111-3/+3
| | | | | | | | | | | | | (basic_block_end): Rename to x_basic_block_end. (BLOCK_HEAD, BLOCK_END): Update. * caller-save.c: Change basic_block_head/end references to BLOCK_HEAD/END. * combine.c, flow.c, function.c, gcse.c, global.c: Likewise. * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise. * regmove.c, reload1.c, reorg.c, sched.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24622 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-common.c (declare_function_name): Declare predefinied variablerth1998-12-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `__func__'. * c-decl.c (flag_isoc9x): Set to 1 by default. (c_decode_option): Handle -std= option. Remove -flang-isoc9x. (grokdeclarator): Always emit warning about implicit int for ISO C 9x. * c-parse.in: Allow constructors in ISO C 9x. Rewrite designator list handling. Allow [*] parameters. Don't warn about comma at end of enum definition for ISO C 9x. * cccp.c (c9x): New variable. (rest_extension): New variable. (print_help): Document new -std= option. (main): Recognize -std= option. Set c9x appropriately. (create_definition): Recognize ISO C 9x vararg macros. * gcc.c (default_compilers): Adjust specs for -std options. (option_map): Add --std. (display_help): Document -std. * toplev.c (documented_lang_options): Add -std and remove -flang-isoc9x. * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF or REAL_VALUE_HTOF based on base of the constants. * fold-const.c (real_hex_to_f): New function. Replacement function for hex FP conversion if REAL_ARITHMETIC is not defined. * real.c (asctoeg): Add handling of hex FP constants. * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or real_hex_to_f. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24049 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c (relax_delay_slots): When optimizing for code size, if alaw1998-11-191-0/+34
| | | | | | | | | return with a filled delay slot is followed by a return with an unfilled delay slot, delete the first return and reemit the insn that was previously in its delay slot. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23729 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c (fill_simple_delay_slots): Fix typo.law1998-11-051-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23545 138bc75d-0d04-0410-961f-82ee72b054a4
* * recog.h (enum op_type): Define.law1998-11-041-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (constrain_operands): Adjust prototype. (recog_op_type): Declare new variable. * recog.c (recog_op_type): New variable. (insn_invalid_p): Allow modifying an asm statement after reload. (extract_insn): Set up recog_op_type. (constrain_operands): Lose INSN_CODE_NUM arg. All callers changed. Don't compute operand types, use recog_op_type. Use the information computed by extract_insn instead of the previous method of finding it by insn code number. * caller-save.c (init_caller_save): Use extract_insn, not insn_extract. * reorg.c (fill_slots_from_thread): Likewise. * reload1.c (reload_as_needed): Likewise. (gen_reload): Likewise. (inc_for_reload): Likewise. (reload_cse_simplify_operands): Likewise. Use the information computed by extract_insn instead of the previous method of finding it by insn code number. * genattrtab.c (write_attr_case): Generate call to extract_insn, not insn_extract. * final.c (final_scan_insn): Use extract_insn, not insn_extract. (cleanup_operand_subregs): Use extract_insn, not insn_extract. Use the information computed by extract_insn instead of the previous method of finding it by insn code number. * regmove.c (find_matches): Likewise. Change meaning of the return value to be nonzero if the optimization can be performed, zero if not. All callers changed. Shorten some variable names to fix formatting problems. (regmove_optimize): Shorten some variable names to fix formatting problems. Use the information computed by extract_insn instead of the previous method of finding it by insn code number. * regclass.c (scan_one_insn): Likewise. (record_reg_classes): Don't compute operand types, use recog_op_type. * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use recog_constraints instead. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23529 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. Thelaw1998-10-221-1/+1
| | | | | | | did not match the code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23239 138bc75d-0d04-0410-961f-82ee72b054a4
* 1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>law1998-10-191-6/+23
| | | | | | | | | | | | * reorg.c (steal_delay_list_from_target) Check for insns that modify the condition codes and effect the direction of the jump in the sequence. Sat Oct 17 13:09:09 1998 Graham <grahams@rcp.co.uk> * function.c (purge_addressof_1): Replace call to emit_insns_before() with emit_insn_before(). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23189 138bc75d-0d04-0410-961f-82ee72b054a4
* * flow.c (life_analysis_1): Do not clobber regs_ever_live afterlaw1998-10-161-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | reload. Never perform rescans of the insn chain after reload. (propagate_block): Do not delete insn or create new autoinc addressing modes after reload. * jump.c (jump_optimize): Unconditionally use the code that was previously conditional on PRESERVE_DEATH_INFO_REGNO_P. * reload1.c (reload): When reloading is finished, delete all REG_DEAD and REG_UNUSED notes. (emit_reload_insns): Delete all code that was conditional on PRESERVE_DEATH_INFO_REGNO_P. (no_longer_dead_regs): Delete variable. (reload_cse_delete_death_notes): Delete function. (reload_cse_no_longer_dead): Delete function. (reload_cse_regs_1): Delete all code to handle deletion of death notes. (reload_cse_noop_set_p): Likewise. (reload_cse_simplify_set): Likewise. (reload_cse_simplify_operands): Likewise. (reload_cse_move2add): Likewise. * reorg.c (used_spill_regs): Delete declaration. (max_label_num_after_reload): Delete declaration. (find_dead_or_set_registers): Don't assume that spill regs are dead at a CODE_LABEL. * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate, even after reload. * sched.c (sched_analyze_insn): Likewise. (update_flow_info): Likewise. * haifa-sched.c (sched_analyze_insn): Likewise. (update_flow_info): Likewise. * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation. * toplev.c (max_label_num_after_reload): Delete variable. (rest_of_compilation): Don't set max_label_num_after_reload. Call life_analysis after reload_cse_regs if optimizing. * config/gmicro/gmicro.h: Delete comment referring to PRESERVE_DEATH_INFO_REGNO_P. * config/i386/i386.h: Likewise. * config/m88k/m88k.h: Likewise. * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition. * config/sh/sh.h: Likewise. Accurate REG_DEAD notes after reload. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23120 138bc75d-0d04-0410-961f-82ee72b054a4
* * flow.c: Update comment.law1998-10-121-2/+4
| | | | | | | | | | | | | | | | | | | | (notice_stack_pointer_modification): New static function. (record_volatile_insns): Use it. (mark_regs_live_at_end): Mark the stack pointer as alive at the end of the function if current_function_sp_is_unchanging is set. (life_analysis_1): Set current_function_sp_is_unchanging. * function.c: Define it. (init_function_start): Initialize it. * output.h: Declare it. * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark the stack pointer as alive at the end of the function if current_function_sp_is_unchanging is set. * i386.c (ix86_epilogue): Optimize the restoring of the stack pointer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23009 138bc75d-0d04-0410-961f-82ee72b054a4
* Fri Oct 9 16:03:19 1998 Graham <grahams@rcp.co.uk>rth1998-10-091-1/+1
| | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22964 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c (check_annul_list_true_false): Remove unused variables.law1998-09-301-2/+4
| | | | | | | | (steal_delay_list_from_target): Add missing "used_annul" variable. (try_merge_delay_insns): Close out half formed comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22694 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c (try_merge_delay_insns): Account for resources referencedlaw1998-09-301-20/+79
| | | | | | | | | | | | | | | in each instruction in INSN's delay list before trying to eliminate useless instructions. Similarly when looking at a trial insn's delay slots. * reorg.c (check_annul_list_true_false): New function. (steal_delay_list_from_{target,fallthrough}): Call it and also refine tests for when we may annul if already filled a slot. (fill_slots_from_thread): Likewise. (delete_from_delay_slot): Return newly-created thread. (try_merge_delay_isns): Use its new return value. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22685 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c (fill_simple_delay_slots): Do not abort if we encounterlaw1998-08-251-2/+25
| | | | | | | | an insn on the unfilled_slots_list that has no delay slots. (fill_eager_delay_slots): Similarly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21977 138bc75d-0d04-0410-961f-82ee72b054a4
* Sparc backend rewrite by rth and myself, pleasedavem1998-08-101-0/+7
| | | | | | | peruse the lengthy ChangeLog for a blow by blow account. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21652 138bc75d-0d04-0410-961f-82ee72b054a4
* * Merge from gcc2 June 9, 1998 snapshot. See ChangeLog.13 forlaw1998-06-291-2/+2
| | | | | | | details. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20808 138bc75d-0d04-0410-961f-82ee72b054a4
* * haifa-sched.c (haifa_classify_insn): TRAP_IF is risky.jfc1998-06-171-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | (sched_analyze_2): Allow scheduling TRAP_IF. * reorg.c (mark_referenced_resources): Examine operands of TRAP_IF. * rtl.h (TRAP_CODE): New macro. * rtl.def (TRAP_IF): Change second operand type to rtx. * optabs.c (gen_cond_trap): New function. (init_traps): New function. (init_optabs): Call init_traps. * expr.h: Declare gen_cond_trap. * jump.c (jump_optimize): Optimize jumps to and around traps. * sparc.md: Define trap instructions. * rs6000.md: Define trap instructions. * rs6000.c (print_operand): New code 'V' for trap condition. (trap_comparison_operator): New function. * m88k.md: Update use of TRAP_IF. * tree.h (enum built_in_function): New function code BUILT_IN_TRAP. * c-decl.c (init_decl_processing): New builtin __builtin_trap. * expr.c (expand_builtin): Handle BUILT_IN_TRAP. * expr.c (expand_builtin): Error if __builtin_longjmp second argument is not 1. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20543 138bc75d-0d04-0410-961f-82ee72b054a4
* typo typo fixes fixeslaw1998-05-061-4/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19601 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c (fill_slots_from_thread): Update REG_DEAD/REG_UNUSED noteslaw1998-05-051-2/+10
| | | | | | | | for any insns skipped at the start of a block because they were redundant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19534 138bc75d-0d04-0410-961f-82ee72b054a4
* * varasm.c (asm_output_bss): Add prototype.law1998-04-171-0/+3
| | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19254 138bc75d-0d04-0410-961f-82ee72b054a4
* Major cutover to using system.h:ghazi1998-03-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (alias.o, bitmap.o, c-aux-info.o, c-common.o, c-decl.o, c-iterate.o, c-lang.o, c-lex.o, c-pragma.o, c-typeck.o, caller-save.o, calls.o, collect2.o, combine.o, cse.o, dbxout.o, dwarf2out.o, dwarfout.o, emit-rtl.o, except.o, explow.o, expmed.o, expr.o, final.o, flow.o, function.o, getpwd.o, global.o, integrate.o, jump.o, local-alloc.o, loop.o, optabs.o, pexecute.o, prefix.o, print-rtl.o, print-tree.o, profile.o, real.o, recog.o, reg-stack.o, regclass.o, regmove.o, reload.o, reload1.o, reorg.o, rtl.o, rtlanal.o, sdbout.o, stmt.o, stor-layout.o, stupid.o, tlink.o, toplev.o, tree.o, unroll.o, varasm.o, xcoffout.o): Depend on system.h. * alias.c, bitmap.c, c-aux-info.c, c-common.c, c-decl.c, c-iterate.c, c-lang.c, c-lex.c, c-pragma.c, c-typeck.c, caller-save.c, calls.c, collect2.c, combine.c, cse.c, dbxout.c, dwarf2out.c, dwarfout.c, emit-rtl.c, except.c, explow.c, expmed.c, expr.c, final.c, flow.c, function.c, gcc.c, getpwd.c, global.c, integrate.c, jump.c, local-alloc.c, loop.c, optabs.c, pexecute.c, prefix.c, print-rtl.c, print-tree.c, profile.c, real.c, recog.c, reg-stack.c, regclass.c, regmove.c, reload.c, reload1.c, reorg.c, rtl.c, rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c, stupid.c, tlink.c, toplev.c, tree.c, unroll.c, varasm.c, xcoffout.c: Include system.h. Organize include ordering so that stdarg/varargs comes before other system headers. Remove spurious casts of functions assured of a prototype in system.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18726 138bc75d-0d04-0410-961f-82ee72b054a4
* 8manfred1998-03-021-1/+2
| | | | | | | | * reorg.c (fill_eager_delay_slots): Add new argument delay_list in call to fill_slots_from_thread. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18368 138bc75d-0d04-0410-961f-82ee72b054a4
* * reorg.c (fill_slots_from_thread): Don't steal delay list from targetlaw1998-03-011-16/+24
| | | | | | | | | | | | if condition code of jump conflicts with opposite_needed. * reorg.c (fill_slots_from_thread): Mark resources referenced in opposite_needed thread. Return delay_list even when cannot get any more delay insns from end of subroutine. * reorg.c (fill_slots_from_thread): New parameter, delay_list. All callers changed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18348 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/sparc/sparc.c (output_cbranch): Add default case inlaw1998-01-251-35/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | enumeration switch. * reorg.c (insn_sets_resource_p): Correct typo in prototype. (emit_delay_sequence): Eliminate unused parameter, all callers changed. (fill_simple_delay_slots): Likewise. (fill_slots_from_thread): Likewise. (fill_eager_delay_slots): Likewise. (mark_referenced_resources): Add default case in enumeration switch. (mark_set_resources): Likewise. (rare_destination): Likewise. (mostly_true_jump): Likewise. (find_dead_or_set_registers): Likewise. (redirect_with_delay_slots_safe_p): Remove unused variable `slots'. (update_reg_unused_notes): Remove unused variable `p'. (mark_target_live_regs): Remove unused variables `next' and `jump_count'. (fill_simple_delay_slots): Remove unused variable `j'. (fill_slots_from_thread): Add parentheses around assignment used as truth value. (dbr_schedule): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17475 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud