summaryrefslogtreecommitdiffstats
path: root/gcc/cse.c
Commit message (Collapse)AuthorAgeFilesLines
* * cse.c (count_reg_usage): Correctly handle REG_NONNEG notes.law1998-04-111-6/+6
| | | | | | | | | | | (delete_trivially_dead_insns): Renamed from delete_dead_from_cse. * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns instead of delete_dead_from_cse. Also call delete_trivially_dead_insns between loop optimization passes. * rtl.h: Updated appropriately. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19100 138bc75d-0d04-0410-961f-82ee72b054a4
* * Check in merge from gcc2. See ChangeLog.11 and ChangeLog.12law1998-04-041-0/+4
| | | | | | | | | for details. * haifa-sched.c: Mirror recent changes from gcc2. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18984 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c (rtx_cost): Only call CONST_COSTS if it is defined.law1998-03-231-0/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18787 138bc75d-0d04-0410-961f-82ee72b054a4
* Major cutover to using system.h:ghazi1998-03-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Warning fixes, resulting in the addition of a new target macro:ghazi1998-03-121-0/+6
| | | | | | | | | | * tm.texi (DEFAULT_RTX_COSTS): Document new macro. * arm.h (DEFAULT_RTX_COSTS): Define instead of RTX_COSTS. * cse.c (rtx_cost): Provide a default case in an enumeration switch, and call DEFAULT_RTX_COSTS if it's defined. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18513 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix warious warnings:ghazi1998-02-281-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-aux-info.c: Include string.h/strings.h. * pa.c: Include stdlib.h. (pa_combine_instructions): Prototype the function. (pa_can_combine_p, forward_branch_p, shadd_constant_p): Likewise. (reloc_needed): Add default case for enumeration switch. (remove_useless_addtr_insns): Remove unused variable `all'. (hppa_expand_prologue): Add explicit braces to avoid ambiguous `else'. (output_function_epilogue): Remove unused variable `i'. (output_millicode_call): Remove unused variable `link'. (shadd_constant_p, forward_branch_p): Make the function static. (following_call): Explicitly declare to return int. (pa_reorg): Declare as void. (pa_combine_instructions): Declare as static void. Add parentheses around && within ||. * pa.h: Add prototypes for pa_reorg, symbolic_operand, following_call, function_label_operand, lhs_lshift_cint_operand and zdepi_cint_p. * pa.md: Add parentheses around && within ||. * cppalloc.c: Include stdlib.h. * cpperror.c (cpp_print_containing_files): Remove unused variable `i'. Fix format specifier in fprintf. * cse.c (cse_around_loop): Add explicit braces to avoid ambiguous `else'. (delete_dead_from_cse): Wrap variable `tem' in macro HAVE_cc0. * expr.c (expand_expr): Add parentheses around && within ||. * final.c (app_enable): Replace fprintf with fputs where there are no format specifiers and no trailing argument after the string. Eg, when printing ASM_APP_ON/ASM_APP_OFF. (app_disable): Likewise. (final_end_function): Likewise. (final_scan_insn): Likewise. Remove unused variable `set'. (profile_function): Wrap empty if-statement body in {} brackets. * function.c: Include stdlib.h. (pad_below): Wrap prototype and definition in ARGS_GROW_DOWNWARD. (reposition_prologue_and_epilogue_notes): Add parentheses around assignment used as truth value. * integrate.c (expand_inline_function): Wrap variable `cc0_insn' in macro HAVE_cc0. * jump.c (jump_optimize): Wrap variable `q' in macro HAVE_cc0. Remove unused variable `prev1'. * libgcc2.c (__bb_exit_trace_func): Add parentheses around && within ||. Fix format specifier in fprintf. (__bb_init_prg): Add parentheses around assignment used as truth value. * local-alloc.c: Include stdlib.h. (requires_inout): Add parentheses around assignment used as truth value. * loop.c (analyze_loop_iterations): Wrap prototype and definition in macro HAVE_decrement_and_branch_on_count. (insert_bct, instrument_loop_bct): Likewise. (move_movables): Add parentheses around assignment used as truth value. (consec_sets_invariant_p): Likewise. (maybe_eliminate_biv_1): Wrap variable `new' in macro HAVE_cc0. * objc/objc-act.c: Include stdlib.h. (lookup_method_in_protocol_list): Wrap empty else-statement body in braces. (lookup_protocol_in_reflist): Likewise. (objc_add_static_instance): Remove unused variables `decl_expr' and `decl_spec'. (get_objc_string_decl): Remove unused variable `decl'. (generate_static_references): Remove unused variables `idecl' and `instance'. (check_protocols): Wrap empty else-statement body in braces. * protoize.c: Include stdlib.h. (substr): Add parentheses around assignment used as truth value. (abspath): Likewise. (shortpath): Likewise. * regmove.c (fixup_match_1): Add parentheses around assignment used as truth value. * reload.c (push_secondary_reload): Remove unused variable `i'. (find_reloads): Add parentheses around assignment used as truth value. * reload1.c: Include stdlib.h. * rtl.h: Correct typo in prototype of offsettable_memref_p. * stmt.c (add_case_node): Add parentheses around assignment used as truth value. (case_tree2list): Likewise. * tree.c (valid_machine_attribute): Wrap variable `decl_attr_list' in macro VALID_MACHINE_DECL_ATTRIBUTE. Wrap variable `type_attr_list' in macro VALID_MACHINE_TYPE_ATTRIBUTE. (merge_attributes): Add explicit braces to avoid ambiguous `else'. * unroll.c (copy_loop_body): Wrap variable `cc0_insn' in macro HAVE_cc0. * varasm.c: Include stdlib.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18290 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c (delete_dead_from_cse): If a libcall produces a constantlaw1998-02-121-6/+33
| | | | | | | | | result and that result can be substituted into SET_SRC of the insn with the REG_RETVAL note, then perform the substitution and delete the libcall. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17871 138bc75d-0d04-0410-961f-82ee72b054a4
* alaw1998-01-271-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-lex.c: Include <stdlib.h> and <string.h>/<strings.h>. Add prototype for `handle_sysv_pragma', and make it static. Add parentheses around assignment used as truth value. * combine.c (combine_instructions): Protect variable `prev' with macro HAVE_cc0. (can_combine_p): Protect variable `link' with AUTO_INC_DEC. (extract_left_shift): Add parentheses around operand of &. (merge_outer_ops): Avoid an empty body in an else-statement. (gen_rtx_combine): Remove unused variable `i'. * sparc/gmon-sol2.c: Include <fcntl.h>. Make return type of function monstartup `void'. Likewise for internal_mcount. Add `static void' prototype for moncontrol. Reconcile sprintf format vs. args. * sparc/sparc.c: Include <stdlib.h> and <string.h>/<strings.h>. Make return type of function_arg_slotno explicitly `int'. (reg_unused_after): Add parentheses around assignment used as truth value. (save_regs): Add explicit braces to avoid ambiguous `else'. (function_arg_slotno): Add parentheses around && within ||. (function_arg_pass_by_reference): Likewise. (sparc_flat_output_function_prologue): Reconcile fprintf format vs. args. * svr4.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around assignment used as truth value. * cplus-dem.c: Include <stdlib.h>. (demangle_signature): Avoid an empty body in an else-statement. (do_type): Remove unused variable `lvl'. * cppexp.c: Don't have <stdlib.h> depend on MULTIBYTE_CHARS. Include <string.h>/<strings.h>. (cpp_lex): Remove unused variable `namelen'. (cpp_lex): Explicitly declare `num_chars' as an int. * cpplib.c: Avoid duplicate inclusion of <stdlib.h>, include <unistd.h> instead. Explicitly declare is_system_include returning int. (make_assertion): Remove unused variable `kt'. (cpp_expand_to_buffer): Hide variable `obuf'. (output_line_command): Remove unused variables, `line_end', `line_cmd_buf' and `len'. (macarg): Remove unused variable `arg_start'. (special_symbol): Remove unused variable `i'. Add parentheses around assignment used as truth value. (do_include): Remove unused variables `pcfname' and `retried', hide `pcf' and `pcfbuflimit'. (do_line): Remove unused variable `i'. (finclude): Hide variable `missing_newline'. (cpp_handle_options): Remove unused variable `j'. (read_token_list): Remove unused variable `eofp'. (cpp_error_with_line): Remove unused variable `i'. (cpp_warning_with_line): Likewise. (cpp_pedwarn_with_line): Explicitly declare `column' as int. (cpp_error_from_errno): Remove unused variable `i'. * cse.c (invalidate): Add parentheses around assignment used as truth value. (find_best_addr): Move declaration of variable `our_cost' inside the conditional macro where its used. (fold_rtx): Avoid an empty body in an if-statement. (cse_insn): Wrap variables `this_insn_cc0_mode' and `this_insn_cc0' in macro HAVE_cc0. * dwarf2out.c: Include <stdlib.h> and <string.h>/<string.h>. (ASM_OUTPUT_DWARF_DATA8): Reconcile format vs. args in fprintf's. (output_uleb128): Likewise. (output_sleb128): Likewise. (output_cfi): Likewise. (output_call_frame_info): Remove unused variables `j', `fde_size' and `fde_pad'. (comp_unit_has_inlines): Hide declaration as per rest of file. (size_of_line_prolog): Correct typo in prototype. (add_arange): Likewise. (output_aranges): Likewise. (add_name_and_src_coords_attributes): Likewise. (gen_array_type_die): Likewise. (gen_inlined_subroutine_die): Likewise. (equate_decl_number_to_die): Remove unused variable `i'. (print_die): Reconcile format vs. args in fprintf's. (print_dwarf_line_table): Likewise. (output_die): Likewise. (output_line_info): Likewise. (add_subscript_info): Avoid an empty body in an else-statement. (gen_subprogram_die): Remove unused variable `fp_loc'. * dwarfout.c: Explicitly declare `next_pubname_number' as int. Protect `ordering_attribute' prototype with USE_ORDERING_ATTRIBUTE macro. Protect `src_coords_attribute' prototype with DWARF_DECL_COORDINATES macro. Hide `output_entry_point_die' prototype as in the rest of the file. Likewise for `output_pointer_type_die' and `output_reference_type_die'. Remove prototype for `type_of_for_scope'. (output_unsigned_leb128): Reconcile format vs. args in fprintf. (type_attribute): Add explicit braces to avoid ambiguous `else'. * final.c: Include <stdlib.h> and <string.h>/<strings.h>. (shorten_branches): Protect declaration of tmp_length with SHORTEN_WITH_ADJUST_INSN_LENGTH and ADJUST_INSN_LENGTH macros. (profile_function): Protect declaration of `sval' and `cxt' variables with appropriate macros. (final_scan_insn): Likewise for `note' variable. Add explicit braces to avoid empty body in an if-statement. (output_asm_insn): Move variable `i' inside macro conditional where it is used. Add parentheses around assignment used as truth value. (asm_fprintf) Likewise, likewise. * fix-header.c (main): Remove unused variable `done'. Protect declaration of `i' with FIXPROTO_IGNORE_LIST. * pexecute.c: Include <unistd.h>. Prototype `my_strerror'. * print-rtl.c (print_inline_rtx): Explicitly declare the parameter `ind'. * profile.c: Include <string.h>/<strings.h>. (instrument_arcs): Remove unused variables `note', `inverted', `zero' and `neg_one'. (branch_prob): Avoid empty body in an if-statement. * regclass.c: Include <stdlib.h>. (reg_alternate_class): Explicitly declare parameter `regno'. * regmove.c (regmove_optimize): Remove unused variable `p'. Add parentheses around assignment used as truth value. (find_matches): Remove unused variables `output_operand' and `matching_operand'. (fixup_match_1): Remove statement with no effect: "if (0) ;". * scan.c (sstring_append): Explicitly declare `count' as int. (scan_string): Explicitly declare parameter `init' as int. * sched.c: Include <stdlib.h>. (BLOCKAGE_RANGE): Add parentheses around arithmetic in operand of |. (rank_for_schedule): Add parentheses around assignment used as truth value. (schedule_block): Likewise. (regno_use_in): Likewise. (schedule_insns): Remove unused variable `i'. * toplev.c: Include <stdlib.h> and <string.h>/<strings.h>. (v_message_with_decl): Remove unused variable `n'. (botch): Explicitly declare parameter `s' as char *. (main): Add parentheses around assignment used as truth value. * tree.c (make_node): Protect the variable `kind' with the GATHER_STATISTICS macro. (real_value_from_int_cst): Move variable `e' inside conditional macro area where it is used. (tree_last): Add parentheses around assignment used as truth value. (build1): Protect the variable `kind' with the GATHER_STATISTICS macro. (print_obstack_statistics): Reconcile format vs. args in fprintf. Protect variables `i', `total_nodes', and `total_bytes' with the GATHER_STATISTICS macro. Lots more -W -Wall warnings disappear. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17515 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c (simplify_ternary_operation): Don't try to simplifylaw1998-01-251-1/+1
| | | | | | | | IF_THEN_ELSE expressions (created by combine) that don't use relational operators. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17472 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c (simplify_ternary_operation): Handle more IF_THEN_ELSElaw1998-01-231-0/+11
| | | | | | | simplifications. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17465 138bc75d-0d04-0410-961f-82ee72b054a4
* * varasm.c (immed_double_const): Add casts to HOST_WIDE_INT wherelaw1998-01-171-2/+2
| | | | | | | | | | | | | | | necessary. (const_hash): Hash val is unsigned long. (SYMHASH): Likewise. * tree.c (TYPE_HASH): Type of hash val is unsigned long. * print-tree.c (print_node_brief): HOST_PTR_PRINTF format wants a char pointer, not HOST_WIDE_INT. (print_node): Likewise. Also hash is unsigned long not HOST_WIDE_INT. * cse.c (canon_hash): Hash is unsigned long not HOST_WIDE_INT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17403 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO;rth1998-01-141-40/+41
| | | | | | | | | | | | | | | change gen_rtx(expr...) to gen_rtx_fmt_foo(expr...). * caller-save.c, calls.c, combine.c, cse.c: Likewise. * dwarf2out.c, except.c, explow.c, expmed.c, expr.c: Likewise. * final.c, flow.c, function.c, genpeep.c, haifa-sched.c: Likewise. * halfpic.c, integrate.c, jump.c, local-alloc.c, loop.c: Likewise. * profile.c, recog.c, reg-stack.c, regclass.c, regmove.c: Likewise. * reload.c, reload1.c, reorg.c, sched.c, stmt.c, stupid.c: Likewise. * unroll.c, varasm.c: Likewise. * config/alpha/alpha.c, config/alpha/alpha.md: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17357 138bc75d-0d04-0410-961f-82ee72b054a4
* Bring in final gcc-2.8.0 changes.law1998-01-141-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17355 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c (rtx_cost): Remove conflicting default case.law1997-12-271-3/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17245 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c (max_insn_uid): New variable.law1997-12-241-1/+14
| | | | | | | | | (invalidate): Remove CYGNUS LOCAL patch. (cse_around_loop): Use max_insn_uid. (cse_main): Set max_insn_uid. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17231 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c (rtx_cost): Add default case in enumeration switch.law1997-12-221-0/+3
| | | | | | | | | | | | * fix-header.c (recognized_macro): Likewise. (recognized_extern): Likewise. (write_rbrac): Likewise. * objc/objc-act.c (encode_aggregate): Likewise. (gen_declarator): Likewise. (gen_declspecs): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17186 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge from gcc-2.8law1997-12-071-2/+11
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16987 138bc75d-0d04-0410-961f-82ee72b054a4
* * m68k.c: Include tree.h for dwarf2out_cfi_label.law1997-12-061-0/+5
| | | | | | | | | | | | | | | * gcc.c (process_command): Do not take address of function fatal when calling lang_specific_driver. * config/i386/cygwin32.h (DWARF2_UNWIND): Exception handling doesn't work with it yet, so set it to 0. * config/i386/xm-cygwin32.h (NO_SYS_SIGLIST): Define. * cse.c (cse_insn): Check for invalid entries when taking references. More assorted pending patches. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16978 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c (cse_insn): Don't look at JUMP_LABEL field of a conditionllaw1997-11-171-1/+3
| | | | | | | | return. (cse_end_of_basic_block): Similarly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16534 138bc75d-0d04-0410-961f-82ee72b054a4
* Update mainline egcs to gcc2 snapshot 971021.law1997-11-021-8/+73
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16278 138bc75d-0d04-0410-961f-82ee72b054a4
* Patches to fix minor optimizer bugswilson1997-10-201-0/+10
| | | | | | | | | | * expmed.c (extract_bit_field): Don't make flag_force_mem disable extzv for memory operands. * cse.c (simplify_ternary_operation, case IF_THEN_ELSE): Collapse redundant conditional moves to single operand. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16129 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c (this_insn_cc0_mode): Initialize.law1997-10-011-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15816 138bc75d-0d04-0410-961f-82ee72b054a4
* * combine.c (try_combine): Use NULL_RTX instead of '0' wherelaw1997-09-221-1/+1
| | | | | | | | | | | | | | | appropriate in calls to gen_rtx(). * cse.c (cse_main): Likewise. * emit-rtl.c (gen_label_rtx): Likewise. * expr.c (init_expr_once): Likewise. * haifa-sched.c (flush_pending_lists, sched_analyze_insn, sched_analyze, init_rgn_data_dependences, compute_block_backward_dependences): Likewise. * sched.c (schedule_insns): Likewise. * varasm.c (immed_double_const): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15630 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c (simplify_relational_operation): Set h0u just like h0s.law1997-09-221-16/+2
| | | | | | | Similarly for h1u and h1s. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15616 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c (simplify_relational_operation): If MODE specifies alaw1997-09-151-2/+16
| | | | | | | | | | mode wider than HOST_WIDE_INT, then the high word of a CONST_INT is derived from the sign bit of the low word. Brought over from r5900 branch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15454 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix irix6 execute/921117-1.c c-torture failure.wilson1997-09-011-0/+4
| | | | | | | * cse.c (cse_insn): Don't record BLKmode values. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15024 138bc75d-0d04-0410-961f-82ee72b054a4
* * Integrate alias analysis changes from jfc@mit.edulaw1997-08-111-299/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (OBJS): Add alias.o (alias.o): Add dependencies. * alias.c: New file. * sched.c: Remove alias analysis code. It lives in alias.c now. (reg_last_uses_size): Declare. (sched_analyze_2): Add new arguments to true_dependence. (sched_analyze_insn): Use reg_last_uses_size instead of max_reg. (schedule_block): Initialize reg_last_uses_size. (schedule_insns): Always call init_alias_analysis. * calls.c (expand_call): Note calls to malloc, calloc, and realloc; mark return value from such functions as a pointer and keep track of them for alias analysis. If a return value from a function is a pointer, mark it as such. * combine.c (distribute_notes): Handle REG_NOALIAS. * cse.c (struct write_data): Delete. No longer needed. (invalidate): Don't call set_nonvarying_address_components anymore. Use true_dependence to decide if an entry should be removed from the hash table. (invalidate_memory): Remove WRITES argument, simplify appropriately. Fix all callers. (note_mem_written): Similarly for WRITE_PTR argument. (invalidate_from_clobbers): Similarly for W argument. (invalidate_for_call): Remove memory elements from the hash table. (refers_to_mem_p, cse_rtx_addr_varies_p): Deleted. (cse_rtx_varies_p): New function. Derived from old cse_rtx_addr_varies_p. (cse_insn): Remove WRITES_MEMORY and INIT variables and all references. Don't call note_mem_written anymore. Stack pushes invalidate the stack pointer if PUSH_ROUNDING is defined. No longer need to call cse_rtx_addr_varies_p to decide if a MEM should be invalidated. (skipped_writes_memory): Remove variable. (invalidate_skipped_set): Simplify and wewrite to use invalidate_memory. (invalidate_skipped_block): Simplify for new alias analysis code. (cse_set_around_loop): Likewise. (cse_main): Call init_alias_analysis. * flags.h (flag_alias_check, flag_argument_noalias): Declare. * toplev.c (flag_alias_check, flag_argument_noalias): Define. (f_options): Add new alias checking arguments. (main): Set flag_alias_check when optimizing. * local_alloc (validate_equiv_mem_from_store): Add new arguments to true_dependence. (memref_referenced_p): Likewise. * loop.c (NUM_STORES): Increase to 30. (prescan_loop): Only non-constant calls set unknown_address_altered. (invariant_p): Add new arguments to true_dependence. (record_giv): Initialize unrolled and shared fields. (emit_iv_add_mult): Call record_base_value as needed. * loop.h (struct induction): Add unrolled and shared fields. * unroll.c (unroll_loop): Call record_base_value as needed. (copy_loop_body): Likewise. (final_biv_value): Likewise. (final_giv_value): Likewise. (find_splittable_regs): Likewise. Only create one new pseudo if we have multiple address GIVs that were combined with the same dst_reg GIV. Note when a new register is created due to unrolling. * rtl.c (reg_note_name): Add REG_NOALIAS. * rtl.h (enum reg_note): Similarly. (rtx_varies_p, may_trap_p, side_effects_p): Declare. (volatile_refs_p, volatile_insn_p, remove_note): Likewise. (note_stores, refers_to_regno_p, reg_overlap_mentioned_p): Likewise. (true_dependence, read_dependence, anti_dependence): Likewise. (output_dependence, init_alias_analysis, end_alias_analysis): Likewise. (mark_user_reg, mark_reg_pointer): Likewise. jfc's alias analysis code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14768 138bc75d-0d04-0410-961f-82ee72b054a4
* (cse_insn): Ignore paradoxical SUBREGs unless we are looking for such.kenner1997-08-021-0/+31
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14625 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_best_addr): Add missing rtx_cost arguments.wilson1997-07-011-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14367 138bc75d-0d04-0410-961f-82ee72b054a4
* Delete erroneous references to (pseudo) in comments.dje1997-06-261-6/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14325 138bc75d-0d04-0410-961f-82ee72b054a4
* Use accessor macros to access arrays based on regno; move many of the arrays ↵meissner1997-05-301-5/+5
| | | | | | into a single structure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14140 138bc75d-0d04-0410-961f-82ee72b054a4
* (notreg_cost): New function, extracted from COST macro.kenner1997-05-171-13/+24
| | | | | | | (COST): Use notreg_cost. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14075 138bc75d-0d04-0410-961f-82ee72b054a4
* (cse_insn): Don't record a SRC that's a MEM and the same as akenner1997-05-171-0/+15
| | | | | | | REG_EQUIV note if DEST is set more than once. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14074 138bc75d-0d04-0410-961f-82ee72b054a4
* (fold_rtx, case PLUS): When seeing if negative of constant is around,kenner1997-04-211-4/+10
| | | | | | | make sure not dealing with largest negative. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13953 138bc75d-0d04-0410-961f-82ee72b054a4
* (canon_reg, cse_insn): Don't examine insn_n_dups if recog_memoizedkenner1997-04-131-2/+6
| | | | | | | fails to find a match. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13888 138bc75d-0d04-0410-961f-82ee72b054a4
* * cse.c (invalidate_from_clobbers): Delete unnecessary test fordje1997-02-071-9/+7
| | | | | | | (clobber nil). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13618 138bc75d-0d04-0410-961f-82ee72b054a4
* Get the right COST for a SUBREG when truncatingian1997-01-231-7/+19
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13549 138bc75d-0d04-0410-961f-82ee72b054a4
* Check SMALL_REGISTER_CLASSES at runtimeian1996-12-131-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13302 138bc75d-0d04-0410-961f-82ee72b054a4
* (fold_rtx): Fold inside ASM_OPERANDS.kenner1996-09-231-0/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12788 138bc75d-0d04-0410-961f-82ee72b054a4
* Correct comments.kenner1996-09-231-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12775 138bc75d-0d04-0410-961f-82ee72b054a4
* (canon_hash, cse_insn): MEM is not unchanging if it is in the frame (sincekenner1996-07-251-2/+4
| | | | | | | the temp slot might be reused). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12562 138bc75d-0d04-0410-961f-82ee72b054a4
* (note_mem_written): Varying structure memory access withwilson1996-07-081-2/+7
| | | | | | | AND address can alias scalars. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12417 138bc75d-0d04-0410-961f-82ee72b054a4
* formatting tweaksmrs1996-07-031-18/+21
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12390 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_binary_operation, case MULT): Check for casewilson1996-06-081-0/+5
| | | | | | | | where width is larger than HOST_BITS_PER_WIDE_INT, and upper most bit is set. We can not generate a simple shift in this case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12238 138bc75d-0d04-0410-961f-82ee72b054a4
* (cse_process_notes): Handle SUBREG like ZERO_EXTEND.wilson1996-04-211-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11864 138bc75d-0d04-0410-961f-82ee72b054a4
* (invalidate_skipped_set): Ignore CLOBBER after callingkenner1996-04-151-7/+7
| | | | | | | note_mem_written, not before. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11786 138bc75d-0d04-0410-961f-82ee72b054a4
* (simplify_unary_operation): Add new arg to REAL_VALUE_FROM_INT.kenner1996-04-141-3/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11765 138bc75d-0d04-0410-961f-82ee72b054a4
* (note_mem_written): Delete obsolete code for handlingwilson1996-03-201-3/+0
| | | | | | | (mem (scratch)). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11585 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_best_addr): Make sure folded address better before using.kenner1995-12-271-3/+15
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10873 138bc75d-0d04-0410-961f-82ee72b054a4
* (insert): Don't put a REG into qty_const.kenner1995-11-261-3/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10607 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud