summaryrefslogtreecommitdiffstats
path: root/gcc/gcse.c
Commit message (Collapse)AuthorAgeFilesLines
...
* * final.c (peephole): Delete prototype.ghazi1999-10-241-3/+3
| | | | | | | | | | | | | * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes. (pre_insert_copies): Remove unused variable `bb'. * genrecog.c (debug_decision_0, debug_decision_list, main): Add prototypes. * output.h (peephole): Add prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30144 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):law1999-10-171-132/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prototype for exported functions. (pre_lcm, pre_rev_lcm): Remove prototypes. * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters. (compute_available): Move to lcm.c, and change parameter order. (one_classic_gcse_pass): Call compute_ae_kill with parameters. (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete. (gcse_main): No longer call compute_preds_succs. Rebuild the set table after reach pre pass. (pre_insert_map, pre_delete_map, edge_list): New. (alloc_pre_mem): Allocate edge vectors. (free_pre_mem): Delete edge vectors. (compute_pre_data): Call new edge based lcm routines. (process_insert_insn): New function. (insert_insn_end_bb): Use it. (pre_edge_insert): New function. (pre_insert_copy_insn): Formatting fixes. Update BLOCK_END as needed. (pre_insert_copies): Revamp using new edge based lcm outputs. (pre_delete): Likewise. (one_pre_gcse_pass): Insert & remove fake edges to the exit block. (compute_code_hoist_vbeinout): New new edge based routines. * lcm.c: Remove all the old LCM functions. Replace with new ones that work with the new cfg datastructures and work with edges instead of blocks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30055 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (hash_scan_set): Remove incorrect ! optimize_size check.law1999-10-171-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30054 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.rth1999-10-161-0/+9
| | | | | | | (expr_equiv_p): Reject memories with different alias sets. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30039 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (delete_null_pointer_checks): Returns void.rth1999-10-111-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29904 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (gcse_main): Avoid global optimizations if we have alaw1999-10-101-0/+30
| | | | | | | | | large number of basic blocks and the ratio of edges to blocks is high. (delete_null_pointer_checks): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29882 138bc75d-0d04-0410-961f-82ee72b054a4
* * basic-block.h (compute_flow_dominators): Declare.law1999-09-201-0/+382
| | | | | | | | | | | | * gcse.c (alloc_code_hoist_mem): New function. (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise. (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise. (hoist_code, one_code_hoisting_pass): Likewise. (gcse_main): If optimizing for size, then hoist expressions computed in multiple dominated basic blocks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29523 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (invalid_nonnull_info): New function.law1999-09-201-0/+246
| | | | | | | | | (delete_null_pointer_checks): Likewise. * rtl.h (delete_null_pointer_checks): Declare. * toplev.c (rest_of_compilation): Call delete_null_pointer_checks. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29521 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
* * combine.c (SUBST): Break out to a real function do_SUBST.rth1999-09-091-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (SUBST_INT): Likewise. * gcse.c (free_pre_mem): Free `temp_bitmap'. (pre_insert): Free `inserted'. * loop.c (basic_induction_var): Always set `location'. * function.c (expand_function_end): Add initial_trampoline as a root. * rtl.h (init_varasm_once): Declare. * toplev.c (compile_file): Call it. * ggc-simple.c (ggc_mark_string_ptr): New. (ggc_add_string_root): New. (ggc_collect): Disable collection avoidance temporarily. * ggc.h (ggc_add_string_root): Declare. * except.c (create_rethrow_ref): Use ggc_alloc_string. * optabs.c (init_libfuncs): Likewise. * varasm.c (named_section): Use ggc_alloc_string. (make_function_rtl): Likewise. (make_decl_rtl): Likewise. (assemble_static_space): Likewise. (assemble_trampoline_template): Likewise. (output_constant_def): Likewise. (force_const_mem): Likewise. (mark_const_hash_entry): New. (mark_pool_sym_hash_table): New. (mark_varasm_state): Use it. (init_varasm_once): New. * expr.h (init_one_libfunc): Declare. * optabs.c (init_one_libfunc): New. (init_optabs): Use it. * config/gofast.h: Likewise. * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise. * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29226 138bc75d-0d04-0410-961f-82ee72b054a4
* * reload1.c (eliminate_regs_in_insn): Avoid eliminating therth1999-09-031-1/+1
| | | | | | | | reg notes on a deleted insn. * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29076 138bc75d-0d04-0410-961f-82ee72b054a4
* * dwarf2out.c (dwarf2out_line): Constify `lastfile'.rth1999-09-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | * except.c (expand_rethrow): Remove unused variable. * expr.c (do_jump_by_parts_greater_rtx): Likewise. * flow.c (replace_insns): Likewise. (create_edge_list, verify_edge_list): Likewise. * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0. * genemit.c (gen_expand): Only emit `operands[N]' decl if there is special code to run. (main): Don't define operands to emit_operand. * genrecog.c (main): Don't emit an empty peephole2_insn function. * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF. * alpha/alpha.h (normal_memory_operand): Declare. (reg_no_subreg_operand): Declare. * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29061 138bc75d-0d04-0410-961f-82ee72b054a4
* Ignore no-ops in cprop pass.crux1999-08-261-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28901 138bc75d-0d04-0410-961f-82ee72b054a4
* Wed Aug 25 13:55:47 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>amacleod1999-08-251-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28866 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (find_avail_set): Follow chains of register-register copies.law1999-08-251-25/+68
| | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28835 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (cprop_jump): New function, broken out of cprop_insn.law1999-08-251-76/+131
| | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28834 138bc75d-0d04-0410-961f-82ee72b054a4
* * rtl.h (rtx_format): Constify a char*.ghazi1999-08-201-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28784 138bc75d-0d04-0410-961f-82ee72b054a4
* Include function.h in most files. Remove most of the global variablescrux1999-08-091-3/+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
* * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.law1999-08-071-2/+3
| | | | | | | (cprop_insn): Treat SYMBOL_REFs like CONST_INTs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28582 138bc75d-0d04-0410-961f-82ee72b054a4
* law1999-06-031-3/+20
| | | | | | | | | * 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@27321 138bc75d-0d04-0410-961f-82ee72b054a4
* 8law1999-05-091-1/+3
| | | | | | | * gcse.c (cprop_insn): Do not try to simplify a simple jump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26846 138bc75d-0d04-0410-961f-82ee72b054a4
* Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>rth1999-04-171-2/+8
| | | | | | | | * gcse.c (compute_local_properties): If setp is nonzero, clear TRANSP instead of setting it to all ones. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26528 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
* * flow.c (find_basic_blocks): New argument `do_cleanup'.rth1999-03-311-1/+1
| | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26090 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (dump_hash_table): Fix whitespace in declaration.law1999-03-211-389/+232
| | | | | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25886 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (compute_pre_local_properties): Delete.law1999-03-101-74/+1
| | | | | | | | (compute_pre_data): Use compute_local_properties instead of compute_pre_local_properties. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25678 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c: More comments, whitespace and similar fixes.law1999-03-101-266/+201
| | | | | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25677 138bc75d-0d04-0410-961f-82ee72b054a4
* s/ /<tab>/glaw1999-03-101-106/+106
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25675 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c: Update various comments.law1999-03-101-81/+46
| | | | | | | (current_function_calls_longjmp): Delete declaration. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25674 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (run_jump_opt_after_gcse): New variable.law1999-03-101-10/+110
| | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25673 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-aux-info.c (data_type, affix_data_type, gen_decl,ghazi1999-03-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25614 138bc75d-0d04-0410-961f-82ee72b054a4
* Typo fix in comment.amylaar1999-02-241-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25410 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-8/+8
| | | | | | | | | | | | | (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
* Fix copyright dates.law1999-01-061-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24527 138bc75d-0d04-0410-961f-82ee72b054a4
* Warning fixes:ghazi1998-12-231-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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24403 138bc75d-0d04-0410-961f-82ee72b054a4
* Add: #include "expr.h"nickc1998-12-171-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24363 138bc75d-0d04-0410-961f-82ee72b054a4
* * flow.c (XNMALLOC): New macro.law1998-10-291-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23443 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (compute_hash_table): Correctly identify hard regs which arelaw1998-10-191-2/+28
| | | | | | | clobbered across calls. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23191 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (dump_cuid_table): Correct typo.law1998-10-171-3/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23154 138bc75d-0d04-0410-961f-82ee72b054a4
* * flow.c (find_basic_blocks): Delte "live_reachable_p" argument.law1998-10-101-1/+1
| | | | | | | | | | (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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22979 138bc75d-0d04-0410-961f-82ee72b054a4
* * flow.c (find_basic_blocks): Calc upper bound for extra nops inrth1998-10-081-10/+71
| | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22907 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (pre_insert_insn): Tweek to notice that calls do notrth1998-10-071-1/+6
| | | | | | | always end basic blocks for abnormal edge reasons. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22897 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (pre_insert_insn): When a call ends a bb, insertrth1998-10-071-8/+58
| | | | | | | the new insns before the argument regs are loaded. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22891 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix out of date comments after previous change.law1998-09-151-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22442 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,law1998-09-151-10/+13
| | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22441 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (add_label_notes): Do not ignore references to labelslaw1998-08-151-11/+7
| | | | | | | | before dispatch tables. Mirrors Apr 8 change to mark_jump_label. * gcse.c (add_label_notes): Similarly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21744 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (hash_scan_insn): Add missing argument declaration.law1998-07-131-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21115 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcse.c (hash_scan_insn): New argument IN_LIBCALL_BLOCK. Changedlaw1998-07-061-6/+15
| | | | | | | caller. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20967 138bc75d-0d04-0410-961f-82ee72b054a4
* * optabs.c: Use gen_rtx_FOO (...) instead of gen_rtx (FOO, ...).jfc1998-06-241-6/+7
| | | | | | | | | | | * expr.c: Likewise. * explow.c: Likewise. * combine.c: Likewise. * reload1.c: Likewise. * gcse.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20701 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud