summaryrefslogtreecommitdiffstats
path: root/gcc/loop.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Use accessor macros to access arrays based on regno; move many of the arrays ↵meissner1997-05-301-41/+41
| | | | | | into a single structure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14140 138bc75d-0d04-0410-961f-82ee72b054a4
* (maybe_eliminate_biv_1): In (set (cc0) <biv>) case, swap comparekenner1997-05-181-3/+4
| | | | | | | operands when mult_val < 0 in one additional place. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14087 138bc75d-0d04-0410-961f-82ee72b054a4
* reformat a little to match GNU coding standards.mrs1997-05-061-6/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14024 138bc75d-0d04-0410-961f-82ee72b054a4
* (invariant_p, case REG): Pointers into frame are not invariants ifkenner1997-04-131-2/+7
| | | | | | | function has nonlocal gotos. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13862 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (strength_reduce): Adjust BENEFIT appropriately if anlaw1997-03-161-3/+17
| | | | | | | autoincrement memory reference will eliminate add insns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13717 138bc75d-0d04-0410-961f-82ee72b054a4
* (check_final_value): Handle insns with no luid's.kenner1997-01-191-2/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13514 138bc75d-0d04-0410-961f-82ee72b054a4
* (basic_induction_var): Return 0 if SUBREG is not a promoted variable.kenner1997-01-041-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13365 138bc75d-0d04-0410-961f-82ee72b054a4
* Check SMALL_REGISTER_CLASSES at runtimeian1996-12-131-3/+8
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13302 138bc75d-0d04-0410-961f-82ee72b054a4
* (combine_givs): When combining a DEST_REG giv with its only use,kenner1996-10-231-8/+11
| | | | | | | always set the benefit of the combined giv to that of the DEST_REG giv. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13012 138bc75d-0d04-0410-961f-82ee72b054a4
* (strength_reduce): Add check for ! bl->reversed towilson1996-10-211-2/+4
| | | | | | | auto_inc_opt code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12985 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (strength_reduce): Avoid taking PATTERN of a label.dje1996-10-151-6/+12
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12965 138bc75d-0d04-0410-961f-82ee72b054a4
* (get_condition): Use rtx_equal_p to compare rtx.kenner1996-09-241-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12833 138bc75d-0d04-0410-961f-82ee72b054a4
* (check_dbra_loop): Don't assume label must be second part ofkenner1996-09-231-0/+2
| | | | | | | if_then_else in condjump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12784 138bc75d-0d04-0410-961f-82ee72b054a4
* (combine_givs): Improve combining DEST_REG giv with its only use.kenner1996-09-221-3/+15
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12769 138bc75d-0d04-0410-961f-82ee72b054a4
* install EH codemrs1996-07-231-0/+14
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12549 138bc75d-0d04-0410-961f-82ee72b054a4
* formatting tweaksmrs1996-07-031-25/+25
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12390 138bc75d-0d04-0410-961f-82ee72b054a4
* (strength_reduce): If HAVE_cc0 defined, disable auto_inc_optwilson1996-06-061-0/+9
| | | | | | | if it would put an insn between a cc0 setter/user pair. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12176 138bc75d-0d04-0410-961f-82ee72b054a4
* (maybe_eliminate_biv_1): Disable all but two cases of biv eliminationkenner1996-05-101-9/+27
| | | | | | | | with givs and restrict those two cases to an ADD_VAL that is an address. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11968 138bc75d-0d04-0410-961f-82ee72b054a4
* (combine_givs): Use new macro GIV_SORT_CRITERION.wilson1996-04-041-29/+71
| | | | | | | | | | New variable giv_array. Loop over giv_array instead of following next_iv links. (giv_sort): New function. K git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11668 138bc75d-0d04-0410-961f-82ee72b054a4
* * loop.c (init_loop): Use pseudo reg in add_cost computationdje1996-03-051-1/+1
| | | | | | | | so cost doesn't vary depending on whether reg 0 happens to be fixed or not. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11458 138bc75d-0d04-0410-961f-82ee72b054a4
* (scan_loop): Correct comment.wilson1996-01-241-31/+192
| | | | | | | | | | | | | | | (strength_reduce): Correct comments. Don't set maybe_multiple when pass branch to scan_start. Don't set not_every_iteration after passing a CODE_LABEL, or after passing a branch out of the loop. When outputting DEST_ADDR giv increments, put them next to the memory address on machines with auto-increment addresses. (record_biv): Set new field always_executed. (record_giv): Set new fields always_executed and auto_inc_opt. (maybe_eliminate_biv_1): Reject biv with auto_inc_opt optimization in some cases. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11090 138bc75d-0d04-0410-961f-82ee72b054a4
* Update comments.kenner1995-10-031-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10423 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_and_verify_loops): Fix error in last change.kenner1995-09-161-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10370 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_and_verify_loops): When moving exit blocks out of the loop,kenner1995-09-151-0/+6
| | | | | | | verify that the target of P is within the current loop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10364 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_and_verify_loops): Set dest_loop only if JUMP_LABEL (insn) iskenner1995-08-131-9/+11
| | | | | | | non-zero. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10210 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_and_verify_loops): When moving blocks of code, verify that thekenner1995-07-261-2/+30
| | | | | | | | | just destination is not in an inner nested loop. (mark_loop_jump): Don't mark label as loop exit if it jumps to an inner nested loop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10164 138bc75d-0d04-0410-961f-82ee72b054a4
* (loop_number_exit_count): New global variable.kenner1995-07-141-4/+28
| | | | | | | | | | (loop_optimize): Allocate space for it. (find_and_verify_loops, mark_loop_jump): Set it. (strength_reduce, check_dbra_loop): Use loop_number_exit_count instead of loop_number_exit_labels. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10128 138bc75d-0d04-0410-961f-82ee72b054a4
* Update FSF address.kenner1995-06-151-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9961 138bc75d-0d04-0410-961f-82ee72b054a4
* (record_giv): When computing replaceable, usewilson1995-05-131-39/+9
| | | | | | | | back_branch_in_range_p instead of looking for branches to named labels. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9675 138bc75d-0d04-0410-961f-82ee72b054a4
* (check_dbra_loop): When reversing loop whenwilson1995-05-121-2/+8
| | | | | | | no_use_except_counting is false, there must be only one biv. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9642 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_loop_jump): Remove bogus assignments to LABEL_ fields in defaultkenner1995-02-131-6/+2
| | | | | | | case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8921 138bc75d-0d04-0410-961f-82ee72b054a4
* (record_giv): Initialize new field same_insn.wilson1995-01-211-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8785 138bc75d-0d04-0410-961f-82ee72b054a4
* (scan_loop): For the replace_rtx call, copy the rtx that iswilson1995-01-211-2/+4
| | | | | | | being substituted in before the call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8779 138bc75d-0d04-0410-961f-82ee72b054a4
* (get_condition): Use CONST0_RTX instead of const0_rtx.dje1995-01-051-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8721 138bc75d-0d04-0410-961f-82ee72b054a4
* (invariant_p): Reject const volatile references.wilson1994-12-191-3/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8666 138bc75d-0d04-0410-961f-82ee72b054a4
* (move_movables): For move_insn case, skip notes when deletingkenner1994-11-171-0/+2
| | | | | | | instructions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8475 138bc75d-0d04-0410-961f-82ee72b054a4
* (move_movables): Aviod lossage when CALL_INSN_FUNCTION_USAGEwilson1994-07-191-4/+6
| | | | | | | is NULL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7777 138bc75d-0d04-0410-961f-82ee72b054a4
* (basic_induction_var, case REG): Allow previous insn to set a SUBREGkenner1994-06-291-1/+6
| | | | | | | of X. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7611 138bc75d-0d04-0410-961f-82ee72b054a4
* (strength_reduce): When replacing DEST_ADDR givs, make sure resultingkenner1994-06-221-1/+1
| | | | | | | insn is valid. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7529 138bc75d-0d04-0410-961f-82ee72b054a4
* (move_movables): Copy CALL_INSN_FUNCTION_USAGE field.wilson1994-06-181-2/+16
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7517 138bc75d-0d04-0410-961f-82ee72b054a4
* Cast pointer operands to bzero, bcopy, and bcmp to (char *).kenner1994-06-141-8/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7472 138bc75d-0d04-0410-961f-82ee72b054a4
* (note_addr_stored): A SET or CLOBBER of a BLKmode MEM means that allkenner1994-05-311-4/+7
| | | | | | | memory is clobbered. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7395 138bc75d-0d04-0410-961f-82ee72b054a4
* No longer handle LSHIFT.kenner1994-04-101-2/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7020 138bc75d-0d04-0410-961f-82ee72b054a4
* (init_loop): Remove decls of unused variables.kenner1994-03-251-11/+1
| | | | | | | | | | | (loop_optimize): Remove decl of unused variable END. (combine_movables): Remove decls of unused variables. (check_final_value): Remove decl of unused variable TEM. (check_dbra_loop): Remove decls of unused variables. (maybe_eliminate_biv): Remove decls of unused variables SET and V. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6889 138bc75d-0d04-0410-961f-82ee72b054a4
* (get_condition): Exit if we don't recognize SET_SRC of a SET thatkenner1994-03-231-0/+2
| | | | | | | modifies OP0. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6860 138bc75d-0d04-0410-961f-82ee72b054a4
* (scan_loop): New variable loop_depth. Increment andwilson1994-03-181-20/+40
| | | | | | | | | decrement on LOOP_BEG and LOOP_END notes. Only use LOOP_VTOP note if loop_depth is zero. (strength_reduce): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6811 138bc75d-0d04-0410-961f-82ee72b054a4
* (maybe_eliminate_biv_1): Ignore GIV if it isn't always computed.kenner1994-02-241-5/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6616 138bc75d-0d04-0410-961f-82ee72b054a4
* (scan_loop, strength_reduce): Go back to LOOP_TOP, not its NEXT_INSNkenner1994-02-241-5/+5
| | | | | | | (in case SCAN_START == LOOP_TOP). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6615 138bc75d-0d04-0410-961f-82ee72b054a4
* (scan_loop): Add no_labels_between_p call to tests whichwilson1994-02-161-1/+2
| | | | | | | decide if an invariant reg can be safely replaced with its SET_SRC. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6574 138bc75d-0d04-0410-961f-82ee72b054a4
* (get_condition): Can reverse comparison if -ffast-math.kenner1993-12-271-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6337 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud