summaryrefslogtreecommitdiffstats
path: root/gcc/loop.c
Commit message (Collapse)AuthorAgeFilesLines
...
* * loop.c (scan_loop): Don't call move_moveables for optimize_size.law1998-05-141-3/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19736 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (get_condition): Don't combine when either compare is MODE_CC.rth1998-05-091-2/+15
| | | | | | | | | | | | * alpha.c (alpha_emit_conditional_branch): New function. Taken from the body of beq; additionally set the mode of the branch to CCmode for FP compares and not fast_math. (alpha_emit_conditional_move): Always use a compare insn for FP when not fast_math, as well as setting CCmode on the cmov. * alpha.md (beq, bne, blt, et al): Call alpha_emit_conditional_branch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19645 138bc75d-0d04-0410-961f-82ee72b054a4
* typo typo fixes fixeslaw1998-05-061-6/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19601 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (regs_match_p): Fix typo in prototype.law1998-05-061-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19583 138bc75d-0d04-0410-961f-82ee72b054a4
* * Check in merge from gcc2. See ChangeLog.12 for details.law1998-05-051-1/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19553 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix hppa miscompilation bug reported by Manfred Hollstein.wilson1998-04-271-6/+20
| | | | | | | | | | | * loop.c (check_dbra_loop): New locals jump, first_compare, and compare_and_branch. Call get_condition to set first_compare. Set compare_and_branch to number of compare/branch instructions. Replace PREV_INSN (PREV_INSN (loop_end)) with first_compare. Replace '2' with compare_and_branch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19435 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c (alias_invariant): New variable.jfc1998-04-251-1/+1
| | | | | | | | | | | | | (record_base_value): New argument INVARIANT. (memrefs_conflict_p): If a register has an entry in the alias_invariant array, try substituting that value for the register. * rtl.h: Declare record_base_value. * loop.c, unroll.c: Update callers of record_base_value. * alias.c (find_base_value, find_base_term): SIGN_EXTEND and ZERO_EXTEND do not affect base values. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19408 138bc75d-0d04-0410-961f-82ee72b054a4
* Add match_insn2; Fix prototype in loop.cmeissner1998-04-221-2/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19377 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (regs_patch_p): Add prototype.law1998-04-161-0/+9
| | | | | | | | | | | | | | | | | | | | | | (add_label_notes, count_nonfixed_reads): Likewise. (find_single_use_in_loop): Likewise. (express_from): Surround prototype with #ifdef. (giv_sort): Similarly. * jump.c (mark_modified_reg): Add prototype. * haifa-sched.c (is_prisky): Add prototype. (queue_to_ready): Likewise. * genextract.c (gen_insn): Add prototype. * genemit.c (max_operand_1): Add prototype. (max_operand_vec, print_code, gen_exp, gen_insn): Likewise. (gen_expand, gen_explit, output_add_clobbers): Likewise. (output_init_mov_optab): Likewise. * genattrtab.c (attr_hash_add_rtx): Add prototype. (attr_hash_add_string, write_length_unit_log): Likewise. * genattr.c (init_range): Add prototype. * combine.c (sets_function_arg_p): Add prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19251 138bc75d-0d04-0410-961f-82ee72b054a4
* * c-lex.c (is_class_name): Delete declaration.law1998-04-071-45/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (whitespace_cr): Make static and add prototype. * c-lex.h (make_pointer_declarator, reinit_parse_for_function, yylex, get_directive_line): Turn declarations into prototypes. (position_after_whitespace, check_newline, yyerror,, is_class_name, forget_protocol_qualifiers, remember_protocol_qualifiers): Add prototypes. * genattr.c (extend_range, write_upcase, gen_attr, write_units): Add prototypes. * gencodes.c (gen_insn): Add prototype. * genconfig.c (walk_insn, gen_insn, gen_expand, gen_split, gen_peephole): Add prototypes. * genflags.c (num_operands, gen_proto, gen_nonproto, gen_insn): Add prototypes. * gengenrtl.c (type_from_format, accessor_from_format, special_rtx, special_format, find_formats, gendecl, genmacro, gendef, genlegend, genheader, gencode): Add prototypes. * genopinit.c (gen_insn): Add prototype. * genoutput.c (output_prologue, output_epilogue, scan_operands, process_template, validate_insn_alternatives, gen_insn, gen_peephole, gen_expand, gen_split, n_occurrences): Add prototypes. * genpeep.c (gen_peephole): Add prototype. * loop.c (find_and_verify_loops, mark_loop_jump, prescan_loop, reg_in_basic_block_p, consec_sets_invariant_p, libcall_other_reg, labels_in_range_p, count_loop_regs_set, note_addr_stored, loop_reg_used_before_p, scan_loop, replace_call_address, skip_consec_insns, libcall_benefit, ignore_some_movables, force_movables, combine_movables, rtx_equal_for_loop_p, move_movables, strength_reduce, valid_initial_value_p, find_mem_givs, record_biv, check_final_value, record_giv, update_giv_derive, basic_induction_var, simplify_giv_expr, general_induction_var, consec_sets_giv, check_dbra_loop, express_from, combine_givs_p, combine_givs, product_cheap_p, maybe_eliminate_biv, maybe_eliminate_biv_1, last_use_this_basic_block, record_initial, update_reg_last_use, iteration_info, analyze_loop_iterations, insert_bct, instrument_loop_bct, indirect_jump_in_function_p): Turn declarations into prototypes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19038 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix loop reversal bug reported by Joern Rennecke.wilson1998-04-071-1/+4
| | | | | | | | * loop.c (check_dbra_loop): When normalize comparison_val, add check to verify it is non-negative. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19030 138bc75d-0d04-0410-961f-82ee72b054a4
* * Check in merge from gcc2. See ChangeLog.11 and ChangeLog.12law1998-04-041-1/+1
| | | | | | | | | 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
* Fix m68k bootstrap failure reported by Toon Moene.wilson1998-03-251-0/+1
| | | | | | | * loop.c (scan_loop): Initialize move_insn_first to zero. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18821 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
* Fix sparc-sun-solaris2 -O2 -fPIC bootstrap failure with gcse code.wilson1998-03-181-23/+39
| | | | | | | | | | | * loop.c (struct movable): New field move_insn_first. (scan_loop): In consec sets code, set it. Clear it otherwise. (move_movables): In consec sets code, use it. Copy REG_NOTES from p to i1 only if i1 does not have REG_NOTES. Delete obsolete ifdefed out code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18669 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix warious warnings:ghazi1998-02-281-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* * loop.c (force_movables): Fix typo.law1998-02-181-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18102 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove unwanted CYGNUS LOCAL marker.law1998-02-171-2/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18050 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (rtx_equal_for_loop_p): Add some braces to disambiguatelaw1998-02-171-9/+12
| | | | | | | a dangling else clause. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18047 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (strength_reduce, record_biv, record_giv): Usejfc1998-02-161-7/+17
| | | | | | | HOST_WIDE_INT_PRINT_DEC to print CONST_INT values. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18024 138bc75d-0d04-0410-961f-82ee72b054a4
* * varasm.c (output_constant_pool): Bring back 'done' label insidelaw1998-02-141-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | an appropriate #ifdef. * bitmap.c (bitmap_element_allocate): Wrap variable 'i' in an appropriate #ifdef. (bitmap_copy, bitmap_operation): Likewise. * combine.c (combinable_i3pat): Similarly for 'src'. * function.c (fixup_var_refs_1): Similarly for 'outerdest'. (locate_and_pad_parm): Similarly for 'reg_parm_stack_space'. * regclass.c (copy_cost): Similarly for 'secondary_class'. * reload.c (make_memloc): Simliarly for 'i'. (find_reloads_address_1): Similarly for 'link'. * reload1.c (reload): Similarly for 'previous_frame_pointer_needed'. (emit_reload_insns): Similarly for 'second_reloadreg'. * unroll.c (iteration_info): Similarly for 'v'. * caller-save.c (insert_save_restore): Remove unused variable 'i'. * calls.c (expand_call): Similarly for 'i'. (emit_library_call, emit_library_call_value): Similarly for 'mode'. * fold-const.c (strip_compund_expr): Similarly for 'type'. * function.c (fixup_var_refs_1): Similarly for 'width'. (fixup_memory_subreg): Similarly for 'saved'. (locate_and_pad_parm): Similarly for 'boundary_in_bytes.' (setjmp_protect): Similarly for 'sub'. (thread_prologue_and_epilogue_insns): Similarly for 'insn'. * loop.c (record_giv): Similarly for 'p'. (combine_givs): Similarly for 'temp_iv'. (indirect_jump_in_function_p): Similarly for 'is_indirect_jump'. * recog.c (validate_replace_rtx_1): Similarly for 'width'. * tree.c (get_set_constructor_bytes): Similarly for 'vals'. * unroll.c (unroll_loop): Similarly for 'copy'. (iteration_info): Similarly for 'b'. * varasm.c (assemble_string): Similarly for 'i'. * i386.h (LEGITIMIZE_ADDRESS): Similarly for 'orig_x'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17973 138bc75d-0d04-0410-961f-82ee72b054a4
* Oops, bump copyright year.dje1998-02-081-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17782 138bc75d-0d04-0410-961f-82ee72b054a4
* Feb 8 14:56:03 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>dje1998-02-081-2/+8
| | | | | | | | * loop.c (strength_reduce): When placing increment for auto-inc case, do comparison in loop order. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17781 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (get_condition): Handle sign-extended constants.law1998-02-021-2/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17590 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (find_and_verify_loops): When attempting to move insns fromlaw1998-01-171-0/+21
| | | | | | | | inside the loop outside the loop, create a BARRIER if no suitable one was found. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17399 138bc75d-0d04-0410-961f-82ee72b054a4
* * alias.c: Change all uses of gen_rtx(FOO...) to gen_rtx_FOO;rth1998-01-141-88/+90
| | | | | | | | | | | | | | | 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
* * loop.c (check_dbra_loop): Make sure initial value is alaw1998-01-141-4/+5
| | | | | | | CONST_INT before trying to normalize it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17352 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge from gcc-2.8law1997-12-071-4/+14
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16987 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (invariant_p): Don't test flag_rerun_loop_opt.law1997-12-061-15/+13
| | | | | | | | | | | | | | (loop_optimize, scan_loop, strength_reduce): New argument unroll_p. * toplev.c (rest_of_compilation): Pass it. Remove code to save / clear / restore flag_unroll_{,all_}loops. * i386.c (notice_update_cc): Remove bogus pentium GCC code. * stmt.c (warn_if_unused_value): Don't warn for TRY_CATCH_EXPR. Various pending patches. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16973 138bc75d-0d04-0410-961f-82ee72b054a4
* * flags.h (flag_rerun_loop_opt): Declare.law1997-11-091-1/+6
| | | | | | | | * loop.c (invariant_p, case LABEL_REF): Check flag_rerun_loop_opt. * toplev.c (flag_rerum_loop_opt): Delete static. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16389 138bc75d-0d04-0410-961f-82ee72b054a4
* Update mainline egcs to gcc2 snapshot 971021.law1997-11-021-22/+72
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16278 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (simplify_giv_expr): Adding two invariants resultslaw1997-10-261-1/+11
| | | | | | | in an invariant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16179 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (indirect_jump_in_function_p): Return 0law1997-09-231-1/+2
| | | | | | | by default. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15666 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (loop_number): Delete function. Change all referenceslaw1997-09-221-22/+2
| | | | | | | | | | | to use uid_loop_num array. * loop.h (loop_number): Delete declaration. * unroll.c (unroll_loop): Change "loop_number" references to use uid_loop_num instead. Still cleaning up haifa. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15623 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (loop_unroll_factor): Move outside #ifdef HAIFAlaw1997-09-221-22/+17
| | | | | | | | | | | | | | | conditional. (loop_unroll_iter): Remove unused variable and all references. (loop_optimize): Always allocate and clear space for loop_unroll_factor. (insert_bct): Fix minor formatting problems. * loop.h (loop_unroll_factor): Move decl outside #ifdef HAIFA. (loop_unroll_iter): Removed unused decl. * unroll.c (unroll_loop): Remove code to set loop_unroll_iter. Always record the unrolling factor. More haifa cleanup git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15621 138bc75d-0d04-0410-961f-82ee72b054a4
* * jump.c (jmp_uses_reg_or_mem): Deleted unused function.law1997-09-221-28/+14
| | | | | | | | | | | | | | | | | | | (find_basic_blocks): Use computed_jump_p to determine if a particular JUMP_INSN is a computed jump. * reg-stack.c (find_blocks): Use computed_jump_p to determine if a particular JUMP_INSN is a computed jump. * rtlanal.c (jmp_uses_reg_or_mem): New function. (computed_jump_p): Likewise. * rtl.h (computed_jump_p): Declare. * genattrtab.c (pc_rtx): Define and initialize. * loop.c (loop_optimize): Always determine if the current function has a computed jump. (indirect_jump_in_function_p): Use computed_jump_p to determine if a particular JUMP_INSN is a computed jump. General (and haifa) cleanups. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15615 138bc75d-0d04-0410-961f-82ee72b054a4
* Finish last change.law1997-09-211-4/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15614 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (fix_bct_param): Delete unused function.law1997-09-211-35/+0
| | | | | | | (check_bct_param): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15613 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (strength_reduce): Fix typo.law1997-09-111-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15408 138bc75d-0d04-0410-961f-82ee72b054a4
* * flags.h (flag_move_all_movables): Declare.law1997-08-281-2/+3
| | | | | | | | | | | | | | | (flag_reduce_all_givs): Likewise. * loop.c (move_movables): Handle flag_move_all_movables. (strength_reduce): Handle flag_reduce_all_givs. * toplev.c (flag_move_all_movables): Define. (flag_reduce_all_givs): Likewise. (f_options): Add -fmove-all-movables and -freduce-all-givs. * invoke.texi: Document new options, including alias stuff that wasn't included last time. Two of the "Tooning" options :-) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14987 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (combine_movables): Earlier insns don't match later ones.law1997-08-271-1/+3
| | | | | | | Brought over from the fsf. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14966 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (check_final_value): Don't miss a biv increment in alaw1997-08-271-2/+1
| | | | | | | parallel. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14947 138bc75d-0d04-0410-961f-82ee72b054a4
* Another haifa typo.law1997-08-181-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14828 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix typos in last haifa change.law1997-08-181-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14827 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (is_power_of_2, is_conditional_branch): Delete unusedlaw1997-08-161-29/+4
| | | | | | | | | | functions and declarations. (analyze_loop_iterations): Use condjump_p. (insert_bct): Likewise. Use exact_log2. Just cleanup up some haifa code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14818 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (is_conditional_branch): Make definition match declaration.law1997-08-151-0/+1
| | | | | | | Found by the sunos compiler git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14815 138bc75d-0d04-0410-961f-82ee72b054a4
* * Integrate Haifa instruction scheduler.law1997-08-121-0/+752
| | | | | | | | * Integrate regmove pass. See ChangeLog for deatils. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14770 138bc75d-0d04-0410-961f-82ee72b054a4
* * Integrate alias analysis changes from jfc@mit.edulaw1997-08-111-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Do not go beyond end of arraymeissner1997-07-021-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14384 138bc75d-0d04-0410-961f-82ee72b054a4
* Widen some short fields to int; Use allocate_reg_info to allocate the ↵meissner1997-06-021-6/+6
| | | | | | reg_renumber array git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14142 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud