aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcse.c
AgeCommit message (Collapse)AuthorFilesLines
1999-08-26Ignore no-ops in cprop pass.Bernd Schmidt1-1/+5
From-SVN: r28901
1999-08-25sbitmap.h (sbitmap_intersection_of_succs): Add prototype.Andrew MacLeod1-12/+10
Wed Aug 25 13:55:47 EDT 1999 Andrew MacLeod <amacleod@cygnus.com> * sbitmap.h (sbitmap_intersection_of_succs): Add prototype. (sbitmap_intersection_of_preds, sbitmap_union_of_succs, sbitmap_union_of_preds): Add prototypes. * sbitmap.c (sbitmap_intersection_of_succs): New function to compute the intersection of successors with the new flow graph structures. (sbitmap_intersection_of_preds): New function to compute the intersection of predecessors with the new flow graph structures. (sbitmap_union_of_succs): New function to compute the union of successors with the new flow graph structures. (sbitmap_union_of_preds): New function to compute the union of predecessors with the new flow graph structures. * gcse.c (compute_rdm, compute_available): Use new sbitmap routines. (expr_reaches_here_p): Use edge and basic_block structures instead of s_preds and s_succs. (compute_cprop_avinout): Use new sbitmap routines. (pre_expr_reaches_here_p): Use edge and basic_block structures instead of s_preds and s_succs. * flow.c (compute_flow_dominators): Compute dominators using edges and basic blocks instead of s_preds and s_succs. From-SVN: r28866
1999-08-24gcse.c (find_avail_set): Follow chains of register-register copies.Bernd Schmidt1-25/+68
* gcse.c (find_avail_set): Follow chains of register-register copies. Use oprs_not_set_p to guarantee that the returned value can be substituted. (cprop_insn): Don't verify the return value of find_avail_set with oprs_not_set_p. From-SVN: r28835
1999-08-24gcse.c (cprop_jump): New function, broken out of cprop_insn.Bernd Schmidt1-76/+131
* gcse.c (cprop_jump): New function, broken out of cprop_insn. (cprop_cc0_jump): New function. (cprop_insn): Break out new function cprop_jump and use it. Also use cprop_cc0_jump for machines with CC0. (cprop): Don't crash if cprop_insn turned the insn into a NOTE. From-SVN: r28834
1999-08-20rtl.h (rtx_format): Constify a char*.Kaveh R. Ghazi1-8/+8
* 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-3/+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-07gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.Bernd Schmidt1-2/+3
* gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs. (cprop_insn): Treat SYMBOL_REFs like CONST_INTs. From-SVN: r28582
1999-06-02gcse.c (insert_insn_end_bb): Correct placement of insns when the current ↵Jeff Law1-3/+20
block starts with a CODE_LABEL and... � * gcse.c (insert_insn_end_bb): Correct placement of insns when the current block starts with a CODE_LABEL and ends with a CALL and we can not find all the argument setup instructions for the CALL. From-SVN: r27321
1999-05-09gcse.c (cprop_insn): Do not try to simplify a simple jump.Jeff Law1-1/+3
8 * gcse.c (cprop_insn): Do not try to simplify a simple jump. From-SVN: r26846
1999-04-17Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>Bernd Schmidt1-2/+8
Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> * gcse.c (compute_local_properties): If setp is nonzero, clear TRANSP instead of setting it to all ones. From-SVN: r26528
1999-04-17c-aux-info.c, [...]: Include toplev.h for real declaration of trim_filename.Zack Weinberg1-0/+1
1999-04-17 20:11 -0400 Zack Weinberg <zack@rabi.columbia.edu> * 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. From-SVN: r26523
1999-03-31flow.c (find_basic_blocks): New argument `do_cleanup'.Richard Henderson1-1/+1
* flow.c (find_basic_blocks): New argument `do_cleanup'. Conditionally call delete_unreachable_blocks. (free_basic_block_vars): Zero ENTRY/EXIT data. (allocate_for_life_analysis): Kill. Split into... (allocate_bb_life_data, allocate_reg_life_data): ... new functions. (life_analysis_1): Update. * gcse.c (gcse_main): Update find_basic_blocks call. * toplev.c (rest_of_compilation): Likewise. * stupid.c (stupid_life_analysis): Update life data calls. * rtl.h, output.h: Update prototypes. From-SVN: r26090
1999-03-21gcse.c (dump_hash_table): Fix whitespace in declaration.Jeffrey A Law1-389/+232
* gcse.c (dump_hash_table): Fix whitespace in declaration. (compute_transpout): Renamed from pre_compute_transpout. (compute_pre_*): Deleted (pre_expr_reaches_here_p): New argument, CHECK_PRE_COMP. All callers changed. (insert_insn_end_bb): Renamed from pre_insert_insn. (pre_*): Delete unused variables. Only leave local properties and global redundant/optimal computation points. (alloc_pre_mem, free_pre_mem): Corresponding changes. (compute_pre_data): Simplify and call pre_lcm to run the lazy code motion dataflow analysis. (pre_insert, pre_insert_copies, pre_delete): Revamp to use LCM based redundant and optimal computation points. From-SVN: r25886
1999-03-10gcse.c (compute_pre_local_properties): Delete.Jeffrey A Law1-74/+1
* gcse.c (compute_pre_local_properties): Delete. (compute_pre_data): Use compute_local_properties instead of compute_pre_local_properties. From-SVN: r25678
1999-03-10gcse.c: More comments, whitespace and similar fixes.Jeffrey A Law1-266/+201
* gcse.c: More comments, whitespace and similar fixes. (dump_cuid_table, maybe_set_rd_gen, dump_cprop_data): Delete. (dump_pre_data, compute_cprop_local_properties): Likewise. (one_classic_gcse_pass): Lose unused argument. All callers changed. (compute_hash_table, compute_expr_hash_table): Likewise. (compute_set_hash_table, one_pre_gcse_pass, mark_call): Likewise. (cprop_insn, cprop, one_cprop_pass): Add new argument ALTER_JUMPS. All callers changed. Only alter jumps if ALTER_JUMPS is nonzero. Lose unused argument. (gcse_main): Always run a cprop pass after finishing global cse. (compute_local_properties): New function. (hash_scan_pat, hash_scan_insn): No longer call maybe_set_rd_gen. (compute_cprop_data): Use compute_local_properties. From-SVN: r25677
1999-03-10s/ /<tab>/gJeff Law1-106/+106
From-SVN: r25675
1999-03-10gcse.c: Update various comments.Jeffrey A Law1-81/+46
* gcse.c: Update various comments. (current_function_calls_longjmp): Delete declaration. From-SVN: r25674
1999-03-10gcse.c (run_jump_opt_after_gcse): New variable.Jeffrey A Law1-10/+110
* gcse.c (run_jump_opt_after_gcse): New variable. (gcse_main): Returns an integer. (hash_scan_set): Record initializations from CONST_DOUBLEs too. (try_replace_reg): Update some comments. (cprop_insn): Allow propagation into some JUMP_INSNs too. * rtl.h (gcse_main): Update prototype. * toplev.c (rest_of_compilation): If gcse_main returns nonzero, then run a jump optimization pass. * jump.c (delete_barrier_successors): Delete nop jumps too. From-SVN: r25673
1999-03-06c-aux-info.c (data_type, [...]): Qualify a char* with the `const' keyword.Kaveh R. Ghazi1-2/+2
* c-aux-info.c (data_type, affix_data_type, gen_decl, gen_formal_list_for_type, gen_formal_list_for_func_def, gen_type): Qualify a char* with the `const' keyword. * c-common.c (declare_hidden_char_array, add_attribute, if_elt, declare_function_name, decl_attributes, format_char_info, check_format_info, binary_op_error): Likewise. * cexp.y (yyerror, error, pedwarn, warning, token): Likewise. * gcse.c (dump_hash_table): Likewise. * integrate.c (function_cannot_inline_p): Likewise * optabs.c: Include insn-config.h earlier. (init_libfuncs, init_integral_libfuncs, init_floating_libfuncs): Qualify a char* with the `const' keyword. * real.c (asctoe24, asctoe53, asctoe64, asctoe113, asctoe, asctoeg, mtherr, ereal_atof): Likewise. * real.h (ereal_atof): Likewise. * sbitmap.c (dump_sbitmap_vector): Likewise. * sbitmap.h (dump_sbitmap_vector): Likewise. * stmt.c (nesting, n_occurrences, expand_start_case): Likewise. * toplev.c (rest_of_compilation): Likewise. * tree.h (function_cannot_inline_p, expand_start_case): Likewise. From-SVN: r25614
1999-02-24Typo fix in comment.Joern Rennecke1-1/+1
From-SVN: r25410
1999-01-11Update copyrights.Richard Henderson1-1/+1
From-SVN: r24624
1999-01-11basic-block.h (basic_block_head): Rename to x_basic_block_head.Richard Henderson1-8/+8
* basic-block.h (basic_block_head): Rename to x_basic_block_head. (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. From-SVN: r24622
1999-01-06Fix copyright dates.Jeff Law1-1/+1
From-SVN: r24527
1998-12-23Warning fixes:Kaveh R. Ghazi1-1/+1
* alias.c (record_alias_subset): Remove ignored `&'. (init_alias_once): Likewise. * c-lex.c (UNGETC): Cast first argument of comma expression to void. * config/mips/mips.c (mips_asm_file_end): Cast the result of fwrite to `int' when comparing against one. * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||. (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'. * cse.c (rehash_using_reg): Change type of variable `i' to unsigned int. * dwarf2out.c (initial_return_save): Cast -1 to unsigned before assigning it to one. * except.c (duplicate_eh_handlers): Remove unused variable `tmp'. * final.c (final_scan_insn): Likewise for variable `i'. (output_asm_insn): Cast a char to unsigned char when used as an array index. * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when assigning it to one. * loop.c (strength_reduce): Remove unused variables `count' and `temp'. * recog.c (preprocess_constraints): Cast a char to unsigned char when used as an array index. * regmove.c (find_matches): Likewise. * reload1.c (calculate_needs): Add default case in switch. (eliminate_regs_in_insn): Initialize variable `offset'. (set_offsets_for_label): Change type of variable `i' to unsigned. (reload_as_needed): Wrap variable `i' in macro check on AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P. * scan-decls.c (scan_decls): Mark parameters `argc' and `argv' with ATTRIBUTE_UNUSED. Cast variable `start_written' to size_t when comparing against one. * stor-layout.c (layout_decl): Cast maximum_field_alignment to unsigned when comparing against one. Likewise for GET_MODE_ALIGNMENT(). (layout_record): Cast record_align to int when comparing against a signed value. (layout_type): Cast TYPE_ALIGN() to int when comparing against a signed value. * tree.c (get_identifier): Cast variable `len' to unsigned when comparing against one. (maybe_get_identifier): Likewise From-SVN: r24403
1998-12-17Add: #include "expr.h"Nick Clifton1-0/+1
From-SVN: r24363
1998-10-29flow.c (XNMALLOC): New macro.Bernd Schmidt1-3/+1
* flow.c (XNMALLOC): New macro. (flow_int_list_blocks, basic_block_succ, basic_block_pred): New static variables. (add_edge, add_edge_to_label): New static functions. (free_bb_memory): New function. (flow_delete_insn): Delete function. (basic_block_drops_in): Delete variable. (find_basic_blocks): Allocate and initialize basic_block_head, basic_block_succ. Don't allocate basic_block_drops_in. Call free_bb_memory at the beginning. (find_basic_blocks_1): Don't do multiple passes. Delete code to compute basic_block_drops_in. After calling make_edges, mark blocks reached by current block live. Update test for unreachable live blocks. (mark_label_ref): Delete args X, CHECKDUP. Add PRED arg. All callers changed. Simplify to call add_edge_to_label when a LABEL_REF is found. (make_edges): Simplify to call add_edge_to_label instead of mark_label_ref most of the time. Compute here whether control drops into the next block. (delete_unreachable_blocks): Return void. All callers changed. Delete unreachable blocks in reverse order. After deleting all unreachable blocks, renumber the remaining ones and update n_basic_blocks. (delete_block): Speed up deletion a bit. Don't set basic_block_drops_in for deleted blocks. (free_basic_block_vars): Don't free basic_block_drops_in. (life_analysis_1): Update to use new edge representation. (dump_flow_info): Delete code to print basic block info; call dump_bb_data instead. (compute_preds_succs): Delete code to recompute basic_block_drops_in and uid_block_number. Simply copy the previously computed cfg. (dump_bb_data): New arg LIVE_INFO. All callers changed. Print register lifetime information if LIVE_INFO is nonzero. * basic-block.h (dump_bb_data): Adjust prototype. * gcse.c (gcse_main): Update call to dump_bb_data. * rtl.h (free_bb_memory): Declare. * toplev.c (rest_of_compilation): Call free_bb_memory. From-SVN: r23443
1998-10-19gcse.c (compute_hash_table): Correctly identify hard regs which are ↵Jeffrey A Law1-2/+28
clobbered across calls. * gcse.c (compute_hash_table): Correctly identify hard regs which are clobbered across calls. From-SVN: r23191
1998-10-17* gcse.c (dump_cuid_table): Correct typo.Graham Stott1-3/+3
From-SVN: r23154
1998-10-10flow.c (find_basic_blocks): Delte "live_reachable_p" argument.Jeffrey A Law1-1/+1
* flow.c (find_basic_blocks): Delte "live_reachable_p" argument. (find_basic_blocks_1): Similarly. * output.h (find_basic_blocks): Fix prototype. * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to find_basic_blocks anymore. From-SVN: r22979
1998-10-07flow.c (find_basic_blocks): Calc upper bound for extra nops in ↵Richard Henderson1-10/+71
max_uids_for_flow. * flow.c (find_basic_blocks): Calc upper bound for extra nops in max_uids_for_flow. (find_basic_blocks_1): Add a nop to the end of a basic block when a trailing call insn does not have abnormal control flow. * gcse.c (pre_transpout): New variable. (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it. (compute_pre_transpout): Calculate it. (compute_pre_ppinout): Use it to eliminate impossible placements due to abnormal control flow through calls. (compute_pre_data): Call compute_pre_transpout. From-SVN: r22907
1998-10-07gcse.c (pre_insert_insn): Tweek to notice that calls do not always end basic ↵Richard Henderson1-1/+6
blocks for abnormal edge reasons. * gcse.c (pre_insert_insn): Tweek to notice that calls do not always end basic blocks for abnormal edge reasons. From-SVN: r22897
1998-10-07gcse.c (pre_insert_insn): When a call ends a bb, insert the new insns before ↵Richard Henderson1-8/+58
the argument regs are loaded. * gcse.c (pre_insert_insn): When a call ends a bb, insert the new insns before the argument regs are loaded. From-SVN: r22891
1998-09-15Fix out of date comments after previous change.Jeff Law1-2/+2
From-SVN: r22442
1998-09-15gcse.c: New definition NEVER_SET for reg_first_set...Geoff Keating1-10/+13
* gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set, mem_first_set, mem_last_set; because 0 can be a CUID. (oprs_unchanged_p): Use new definition. (record_last_reg_set_info): Likewise. (record_last_mem_set_info): Likewise. (compute_hash_table): Likewise. From-SVN: r22441
1998-08-14loop.c (add_label_notes): Do not ignore references to labels before dispatch ↵Jeffrey A Law1-11/+7
tables. * loop.c (add_label_notes): Do not ignore references to labels before dispatch tables. Mirrors Apr 8 change to mark_jump_label. * gcse.c (add_label_notes): Similarly. From-SVN: r21744
1998-07-13* gcse.c (hash_scan_insn): Add missing argument declaration.Henning Petersen1-0/+1
From-SVN: r21115
1998-07-06gcse.c (hash_scan_insn): New argument IN_LIBCALL_BLOCK.J"orn Rennecke1-6/+15
* gcse.c (hash_scan_insn): New argument IN_LIBCALL_BLOCK. Changed caller. From-SVN: r20967
1998-06-24optabs.c: Use gen_rtx_FOO (...) instead of gen_rtx (FOO, ...).John Carr1-6/+7
* optabs.c: Use gen_rtx_FOO (...) instead of gen_rtx (FOO, ...). * expr.c: Likewise. * explow.c: Likewise. * combine.c: Likewise. * reload1.c: Likewise. * gcse.c: Likewise. From-SVN: r20701
1998-06-22Fix irix6 -O3 -funroll-all-loops bootstrap failure reported by Kaveh Ghazi.Jim Wilson1-0/+51
* gcse.c (add_label_notes): New function. (pre_insert_insn): Call it. * unroll.c (unroll_loop): Look for insns with a REG_LABEL note, and pass the label to set_label_in_map. From-SVN: r20658
1998-06-19calls.c (expand_call): Initialize "src" and "dest".Jeffrey A Law1-1/+1
* calls.c (expand_call): Initialize "src" and "dest". * stmt.c (expand_return): Likewise. * expmed.c (extract_split_bit_field): Similarly for "result" * gcse.c (compute_hash_table): Mark first arg as unused. * jump.c (jump_optimize): Initialize reversep. * tree.c (make_node): Initialize length. From-SVN: r20629
1998-06-08Warning fixes:Kaveh R. Ghazi1-14/+19
* Makefile.in (varasm.o): Depend on dbxout.h. (cse.o): Depend on toplev.h and output.h. (gcse.o): Depend on output.h. * mips.c: Include system.h and toplev.h and remove redundant code. Include output.h after tree.h so all its prototypes get activated. * mips.md (table_jump): Remove unused variable `dest'. * sparc.h: Add prototype for `v8plus_regcmp_op'. * crtstuff.c (fini_dummy, init_dummy): Mark function definitions with __attribute__ ((__unused__)). (__frame_dummy): Provide prototype before use, wrap it with EH_FRAME_SECTION_ASM_OP. * cse.c: Move inclusion of <setjmp.h> above local headers. Include toplev.h and output.h. * dbxout.h: Add prototype for `dbxout_begin_function'. * final.c (final_scan_insn): Wrap variable `max_skip' in macro ASM_OUTPUT_MAX_SKIP_ALIGN. * gcse.c: Include system.h and output.h. (dump_cuid_table, dump_rd_table, dump_cprop_data, dump_pre_data): Make extern instead of static. (compute_can_copy): Only declare variables `reg' and `insn' when AVOID_CCMODE_COPIES is not defined. (record_set_info): Mark parameter `setter' with ATTRIBUTE_UNUSED. (hash_scan_clobber): Likewise for `x' and `insn'. (hash_scan_call): Likewise. (record_last_set_info): Likewise for `setter'. (mark_call): Likewise for `pat'. (pre_insert_insn): Wrap variable `note' in macro HAVE_cc0. * libgcc2.c (__bb_init_prg): Replace bzero with memset and fix the length parameter so that it multiplies the number of elements by the sizeof(element). * output.h: Add prototype for `weak_finish'. * recog.h: Likewise for `validate_replace_src'. * rtl.h: Likewise for `optimize_save_area_alloca', `fix_sched_param', `purge_addressof', `gcse_main', `regmove_optimize', `dbr_schedule', `branch_prob' and `end_branch_prob'. * toplev.h: Likewise for `set_float_handler' and `output_quoted_string'. * varasm.c: Include dbxout.h. From-SVN: r20351
1998-05-28gcse.c (pre_delete): Fix code to determine the mode of the reaching pseudo ↵Jeffrey A Law1-5/+7
register. * gcse.c (pre_delete): Fix code to determine the mode of the reaching pseudo register. From-SVN: r20134
1998-05-20gcse.c (current_function_calls_longjmp): Declare.Jeffrey A Law1-0/+1
* gcse.c (current_function_calls_longjmp): Declare. For sco5. From-SVN: r19915
1998-05-19remove CYGNUS LOCALJason Merrill1-1/+0
From-SVN: r19903
1998-05-19* Global CSE and constant/copy propagation.Doug Evans1-0/+4690
* Makefile.in (OBJS): Add gcse.o (STAGESTUFF): Add *.gcse. (gcse.o): Add dependencies. (mostlyclean): Remove *.gcse and */*.gcse. * gcse.c: New file. * loop.c (loop_optimize): Move call to init_alias_analysis. * recog.c (validate_replace_src): New function. * toplev.c (gcse_dump): New global variable. (flag_gcse, gcse_time): Likewise. (compile_file): Initialize gcse_time and clean out the gcse dump file if necessary. (rest_of_compilation): Call gcse_main as requested. Dump RTL after gcse if requested. (main): Enable gcse for -O2 and above. Handle -dG. Enable gcse dumps for -da. * gcc.texi: Add gcse related internal documentation. * invoke.texi: Note new command line options for gcse. * tm.texi: Document AVOID_CCMODE_COPIES. * mips.h (AVOID_CCMODE_COPIES): Define. Co-Authored-By: Jeffrey A Law <law@cygnus.com> From-SVN: r19901