aboutsummaryrefslogtreecommitdiff
path: root/gcc/loop.c
AgeCommit message (Collapse)AuthorFilesLines
1999-08-03loop.c (strength_reduce): When doing biv->giv conversion, update reg note of ↵J"orn Rennecke1-2/+8
NEXT->insn. * loop.c (strength_reduce): When doing biv->giv conversion, update reg note of NEXT->insn. From-SVN: r28423
1999-08-02loop.c (strength_reduce): When doing biv->giv conversion, fix up reg_biv_class.J"orn Rennecke1-1/+8
* loop.c (strength_reduce): When doing biv->giv conversion, fix up reg_biv_class. From-SVN: r28413
1999-07-09loop.c (check_dbra_loop): When reversing a loop...Bernd Schmidt1-0/+34
* loop.c (check_dbra_loop): When reversing a loop, delete all REG_EQUAL notes referencing the reversed biv except those which are for a giv based on it. From-SVN: r28043
1999-06-24loop.c (verify_dominator): Properly handle ADDR_VEC and ADDR_DIFF_VEC insns ↵Jeff Law1-4/+11
that appear inside loops. h * loop.c (verify_dominator): Properly handle ADDR_VEC and ADDR_DIFF_VEC insns that appear inside loops. From-SVN: r27760
1999-06-24Revert these two patches:Mark Mitchell1-20/+5
Thu Jun 17 21:34:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk> * loop.c (strength_reduce): When doing biv->giv conversion, update reg note of NEXT->insn. Thu Jun 17 17:22:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk> * loop.c (strength_reduce): When doing biv->giv conversion, fix up reg_biv_class. (recombine_givs): Set ix field after sorting. From-SVN: r27727
1999-06-17loop.c (strength_reduce): When doing biv->giv conversion, update reg note of ↵J"orn Rennecke1-2/+8
NEXT->insn. * loop.c (strength_reduce): When doing biv->giv conversion, update reg note of NEXT->insn. From-SVN: r27574
1999-06-17loop.c (move_movables): Note issues with replacing REGs with SUBREGs.Jeffrey A Law1-1/+8
� * loop.c (move_movables): Note issues with replacing REGs with SUBREGs. * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly. From-SVN: r27573
1999-06-17loop.c (strength_reduce): When doing biv->giv conversion, fix up reg_biv_class.J"orn Rennecke1-3/+12
* loop.c (strength_reduce): When doing biv->giv conversion, fix up reg_biv_class. (recombine_givs): Set ix field after sorting. From-SVN: r27565
1999-06-16loop.c (strength_reduce): Insert sets of derived givs at every biv ↵J"orn Rennecke1-14/+22
increment, even if it's the only one. * loop.c (strength_reduce): Insert sets of derived givs at every biv increment, even if it's the only one. From-SVN: r27549
1999-06-09loop.c (loop_insn_first_p): Don't compare LUIDs when P is a note...J"orn Rennecke1-3/+8
* loop.c (loop_insn_first_p): Don't compare LUIDs when P is a note; use <= for the compare; advance P while it is a NOTE. From-SVN: r27454
1999-06-03loop.c (check_dbra_loop): Fix change of Jan 19.Andreas Schwab1-1/+1
1999-06-04 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * loop.c (check_dbra_loop): Fix change of Jan 19. From-SVN: r27345
1999-05-26* loop.c (strength_reduce): Don't do biv->giv conversion on constants.J"orn Rennecke1-0/+2
From-SVN: r27194
1999-05-24loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the last ↵Jeffrey A Law1-3/+20
CODE_LABEL in a loop if... * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the last CODE_LABEL in a loop if we have previously passed a jump to the top of the loop. From-SVN: r27125
1999-05-23[multiple changes]Jeff Law1-0/+1
Sun May 23 20:31:16 1999 Jeffrey A Law (law@cygnus.com) * loop.c (strength_reduce): Grow reg_single_usage as needed. Sun May 23 10:13:20 1999 David O'Brien <obrien@FreeBSD.org> * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic. Also remove a useless comment. Sun May 23 10:05:23 1999 Jerry Quinn <jquinn@nortelnetworks.com> * pa.md (negdf2,negsf2): Use fneg instead of fsub on pa 2.0. From-SVN: r27111
1999-05-12loop.c (maybe_eliminate_biv): Check regno against max_reg_before_loop.Graham Stott1-1/+2
* loop.c (maybe_eliminate_biv): Check regno against max_reg_before_loop. From-SVN: r26918
1999-04-08* loop.c (strength_reduce): Re-enable Joern's loop improvements.Jeffrey A Law1-5/+1
From-SVN: r26299
1999-03-29loop.c (maybe_eliminate_biv): For libcalls that set a giv, skip to end of ↵J"orn Rennecke1-0/+20
libcall. * loop.c (maybe_eliminate_biv): For libcalls that set a giv, skip to end of libcall. From-SVN: r26056
1999-03-26loop.c (combine_givs): Fix index into can_combine when doing benefit ↵J"orn Rennecke1-1/+1
adjustment for remaining givs when... * loop.c (combine_givs): Fix index into can_combine when doing benefit adjustment for remaining givs when having combined a giv. From-SVN: r25998
1999-03-25* loop.c (strength_reduce): Correct a comment.Finn Hakansson1-2/+2
From-SVN: r25983
1999-03-20* loop.c (check_dbra_loop): Fix debug message.Michael Hayes1-2/+7
From-SVN: r25868
1999-03-19Warning fixes:Kaveh R. Ghazi1-2/+0
* cccp.c (create_definition): Cast to U_CHAR* when assigning to one. * cppfiles.c (read_and_prescan): Likewise. Start a #define in column 0. * cpplib.c (cpp_define): Cast to U_CHAR* when assigning to one. (cpp_push_buffer): Likewise for cpp_buffer*. (do_include): Change the type of `fbeg' and `fend' to unsigned char*. (do_endif): Cast to char* when assigning to one. (do_assert): Likewise. (do_unassert): Likewise. (cpp_read_check_assertion): Change the type of `name' to U_CHAR*. Don't do unnecessary cast to char* anymore. * genrecog.c (make_insn_sequence): Cast to char** when assigning to one. Cast the first argument of bzero to PTR. * loop.c (strength_reduce): Remove unused variable `note'. * reload1.c (new_insn_chain): Cast to struct insn_chain* when assigning to one. * rtl.c (copy_rtx): Use memcpy instead of bcopy. From-SVN: r25860
1999-03-18Do not perform pseudo replacements if the loop contains volatile memoryNick Clifton1-1/+4
references. From-SVN: r25841
1999-03-11loop.c (strength_reduce): Don't do biv increment -> DEST_REG giv conversion ↵J"orn Rennecke1-3/+36
if we don't know the lifetime. * loop.c (strength_reduce): Don't do biv increment -> DEST_REG giv conversion if we don't know the lifetime. From-SVN: r25702
1999-02-25rtl.h (insn_first_p): Don't declare.J"orn Rennecke1-7/+21
* rtl.h (insn_first_p): Don't declare. * rtlanal.c (insn_first_p): Delete. * loop.c (loop_insn_first_p): Faster implementation. From-SVN: r25436
1999-02-24loop.h (loop_insn_first_p): Declare.J"orn Rennecke1-3/+1
* loop.h (loop_insn_first_p): Declare. * loop.c (loop_insn_first_p): No longer static. * unroll.c (iteration_info) Fix comparison to reg_iv_type->num_elements. Before accessing reg_biv_class, check index against max_reg_before_loop. Fix and enable code for giv iterators. (loop_iterations): Compare with reg_iv_type->num_elements instead of with max_reg_before_loop. From-SVN: r25401
1999-02-22loop.c (libcall_other_regs): Make extern.Andrew MacLeod1-2/+1
* loop.c (libcall_other_regs): Make extern. * rtl.h (find_last_value): Add parameter to prototype. (libcall_other_reg): Add extern declaration. * rtlanal.c (find_last_value): Add another parameter to allow a definition using a hardware register to be found as well. From-SVN: r25378
1999-02-19rtlanal.c (insn_first_p): Fix return value for insn == reference.J"orn Rennecke1-21/+10
* rtlanal.c (insn_first_p): Fix return value for insn == reference. * loop.c (strength_reduce, check_final_value, check_dbra_loop): Use loop_insn_first_p. From-SVN: r25321
1999-02-19loop.c (strength_reduce): Check for intervening jumps when converting biv ↵J"orn Rennecke1-4/+32
increment to giv. * loop.c (strength_reduce): Check for intervening jumps when converting biv increment to giv. From-SVN: r25310
1999-02-18loop.c (strength_reduce): For derived givs, replace the giv this was derived ↵J"orn Rennecke1-5/+14
from with its new_reg. * loop.c (strength_reduce): For derived givs, replace the giv this was derived from with its new_reg. (recombine_givs): Don't set new_reg for derived giv. And don't print it, print SUM instead. From-SVN: r25289
1999-02-17loop.c (strength_reduce): Don't move giv insn for biv turned giv below ↵J"orn Rennecke1-0/+1
scan_start. * loop.c (strength_reduce): Don't move giv insn for biv turned giv below scan_start. From-SVN: r25264
1999-02-16loop.c (strength_reduce): Calculate maybe_dead before calling recombine_givs.J"orn Rennecke1-22/+30
* loop.c (strength_reduce): Calculate maybe_dead before calling recombine_givs. From-SVN: r25251
1999-02-16* loop.c (strength_reduce): Dump biv increment -> giv conversions.J"orn Rennecke1-0/+5
From-SVN: r25250
1999-02-15loop.c (mark_loop_jump): Handle LO_SUM.Jeff Law1-11/+16
� * loop.c (mark_loop_jump): Handle LO_SUM. If we encounter something we do not understand, mark the loop and containing loops as invalid. From-SVN: r25215
1999-02-13loop.c: Disable recent loop changes.Jeffrey A Law1-3/+5
* loop.c: Disable recent loop changes. Temporary as Joern continues to fix problems. From-SVN: r25184
1999-02-13loop.c (combine_givs_used_by_other): Delete.Richard Henderson1-51/+21
* loop.c (combine_givs_used_by_other): Delete. (combine_givs_benefit_from): Delete. (combine_givs): Deny combination of givs only used once. Simplify code with the death of combine_givs_benefit_from. From-SVN: r25183
1999-02-13loop.c (scan_loop): Call reg_in_basic_block_p before loop_reg_used_before_p.Michael Hayes1-8/+14
* loop.c (scan_loop): Call reg_in_basic_block_p before loop_reg_used_before_p. From-SVN: r25182
1999-02-12loop.c (loop_insn_first_p, [...]): New functions.J"orn Rennecke1-55/+65
* loop.c (loop_insn_first_p, biv_elimination_giv_has_0_offset): New functions. (maybe_eliminate_biv_1): Use biv_elimination_giv_has_0_offset. From-SVN: r25167
1999-02-12loop.c (load_mems): Don't guess how to do a load / store, use emit_move_insn.J"orn Rennecke1-2/+2
* loop.c (load_mems): Don't guess how to do a load / store, use emit_move_insn. From-SVN: r25165
1999-02-08loop.c (reg_single_usage): New file-scope variable ...Richard Henderson1-36/+28
* loop.c (reg_single_usage): New file-scope variable ... (scan_loop): ... moved out of here. Always initialize. Test loop_has_call instead of reg_single_usage not zero. Free reg_single_usage after strength reduction. (count_loop_regs_set): Assume single_usage non-zero. (combine_givs_used_by_other): Test reg_single_usage. (load_mems_and_recount_loop_regs_set): Remove reg_single_usage as a parameter. Assume non-zero. From-SVN: r25098
1999-02-05loop.c (check_dbra_loop): A store using an address giv for which we have no ↵Michael Meissner1-2/+3
life information is not... * loop.c (check_dbra_loop): A store using an address giv for which we have no life information is not reversible. From-SVN: r25051
1999-02-05loop.c (strength_reduce): Clear not_every_iteration when passing the ↵Jeffrey A Law1-4/+14
NOTE_INSN_LOOP_CONT note. * loop.c (strength_reduce): Clear not_every_iteration when passing the NOTE_INSN_LOOP_CONT note. From-SVN: r25050
1999-02-04loop.c (first_loop_store_insn): New file-scope variable.J"orn Rennecke1-3/+26
* loop.c (first_loop_store_insn): New file-scope variable. (prescan_loop): Set it. (check_dbra_loop): Check if a store depends on a register that is set after the store. From-SVN: r25034
1999-02-04loop.c (scan_loop): New argument loop_cont.J"orn Rennecke1-16/+17
* loop.c (scan_loop): New argument loop_cont. Changed caller. (strength_reduce): New argument loop_cont. Changed caller. Before clearing not_every_iteration after a label, check if we are not already past LOOP_CONT. From-SVN: r25026
1999-02-03loop.h (express_from): Declare.J"orn Rennecke1-7/+6
* loop.h (express_from): Declare. (struct induction): Replace derived flag with derived_from pointer. * loop.c (strength_reduce, record_giv, recombine_givs): Likewise. (express_from): No longer static. * unroll.c (find_splittable_givs): Replace derived with derived_from. When processing an address giv with which another giv has been combined that has also been derived from a third giv, handle like having combined with the third giv. Set splittable_regs_updates appropriately for derived givs. From-SVN: r25007
1999-02-02loop.c (loop_optimize): Fix value max_uid_for_loop is reset to after ↵J"orn Rennecke1-2/+3
find_and_verify_loops call. * loop.c (loop_optimize): Fix value max_uid_for_loop is reset to after find_and_verify_loops call. From-SVN: r24973
1999-02-02(recombine_givs): Don't use a giv that's likely to be dead to derive others.J"orn Rennecke1-5/+21
* (recombine_givs): Don't use a giv that's likely to be dead to derive others. * loop.c (recombine_givs): Fix test for lifetime overlaps / loop wrap around when deriving givs. From-SVN: r24967
1999-01-31* loop.c (recombine_givs): Dump recombination and derivation data.Richard Henderson1-0/+18
From-SVN: r24948
1999-01-30loop.c: Disable recent loop changes.Jeffrey A Law1-1/+5
* loop.c: Disable recent loop changes. Temporary as Joern continues to fix problems. From-SVN: r24916
1999-01-29* loop.c (strength_reduce): Size reg_map according to reg_iv_type.J"orn Rennecke1-5/+9
From-SVN: r24910
1999-01-29* loop.c (recombine_givs): Don't try to derive givs that have combined.J"orn Rennecke1-7/+4
From-SVN: r24906