summaryrefslogtreecommitdiff
path: root/gcc/flow.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix spelling errors.kenner1995-08-281-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10289 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
* Fix typos in comments.kenner1995-05-161-3/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9712 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_basic_blocks): Only perform n_basic_blocks sanitydje1995-05-131-1/+9
| | | | | | | check on first pass, and on second pass ensure it has the correct value. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9671 138bc75d-0d04-0410-961f-82ee72b054a4
* Eliminate dead code caused by last patchmeissner1995-05-111-10/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9618 138bc75d-0d04-0410-961f-82ee72b054a4
* Do not segfault if SUBREG uses something other than REG.meissner1995-05-111-0/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9617 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_used_regs, case SUBREG): Only fall through to REG casewilson1995-03-291-0/+5
| | | | | | | if operand is a REG. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9247 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_used_regs, case SUBREG): Set reg_changes_size even for integerkenner1995-03-181-4/+9
| | | | | | | modes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9205 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_basic_blocks): Revise calculation of when to make another pass.dje1995-02-131-2/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8945 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_basic_blocks): No longer need to check for deletedwilson1995-01-211-5/+2
| | | | | | | nonlocal_labels. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8781 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_set_1): For multi-reg hard register, clear allwilson1994-12-201-3/+8
| | | | | | | reg_next_use entries. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8670 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_auto_inc): Insert missing "return" statement.kenner1994-11-171-0/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8480 138bc75d-0d04-0410-961f-82ee72b054a4
* (flow_delete_insn): New function.dje1994-11-151-45/+119
| | | | | | | | | | | | | | (find_basic_blocks): Call it to physically delete insns in unreachable blocks. When scanning blocks after dead ones, start scanning after the dead one (not at the dead one). If there are lots of unreachable blocks, make another pass to squeeze them out (this reduces memory usage in some pathalogical cases by a significant amount without resorting to sparse matrices). (propagate_block): Make code a bit more efficient (for example, no need to test `loop_depth' for each insn, just notes). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8440 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_basic_blocks): Ensure each live basic block is actually reachable.kenner1994-10-261-3/+17
| | | | | | | (life_analysis): Clean up handling of basic_block_drops_in. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8340 138bc75d-0d04-0410-961f-82ee72b054a4
* (propagate_block): Call mark_used_regs to show global regs used bykenner1994-10-181-3/+3
| | | | | | | call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8304 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_used_regs, case REG): Correct typo, use GET_MODE not GET_CODE.wilson1994-09-081-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8042 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_used_regs): When adding REG_DEAD notes, check forwilson1994-08-141-0/+10
| | | | | | | | the case where a multiple register hard reg overlaps a register set by the insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7921 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_used_regs): Only show changes size if one mode is integral.kenner1994-08-121-1/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7904 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_auto_inc): Ensure that all proposed changes to insns are validkenner1994-08-111-44/+56
| | | | | | | before commiting to the auto-inc. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7889 138bc75d-0d04-0410-961f-82ee72b054a4
* (reg_changes_size): New variable.kenner1994-08-071-0/+21
| | | | | | | | (allocate_for_life_analysis): Allocate and initialize it. (mark_used_regs, case SUBREG): Set it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7864 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_set_1): Record explicit hard registers in their raw mode.dje1994-07-071-2/+4
| | | | | | | (mark_used_regs): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7669 138bc75d-0d04-0410-961f-82ee72b054a4
* Cast pointer operands to bzero, bcopy, and bcmp to (char *).kenner1994-06-141-24/+33
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7472 138bc75d-0d04-0410-961f-82ee72b054a4
* (try_pre_increment_1): Don't try to create a pre-increment expressionkenner1994-05-161-0/+3
| | | | | | | if the register dies in the succeeding insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7308 138bc75d-0d04-0410-961f-82ee72b054a4
* (flow_analysis, find_basic_blocks): Change from USE and CLOBBER insnskenner1994-05-061-21/+13
| | | | | | | to using CALL_INSN_FUNCTION_USAGE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7242 138bc75d-0d04-0410-961f-82ee72b054a4
* *** empty log message ***sac1994-04-201-13/+16
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7091 138bc75d-0d04-0410-961f-82ee72b054a4
* (libcall_dead_p): Fail not abort for libcall that returnswilson1994-03-111-1/+4
| | | | | | | value via invisible pointer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6748 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_basic_blocks): Also look for REG_LABEL notes on firstwilson1994-02-081-1/+4
| | | | | | | instruction of each basic block. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6500 138bc75d-0d04-0410-961f-82ee72b054a4
* Add prototypes for static functions.kenner1994-02-031-114/+173
| | | | | | | | | | | | | | (uses_reg_or_mem): New function. (find_basic_block): Some cleanups; eliminate shadowed variables. Look for REG_LABEL notes in all insns and allow for multiple such. Don't delete labels in forced_labels. Generalize test for computed jumps. (find_auto_inc): OFFSET should be HOST_WIDE_INT. (mark_used_regs): Put decls of parms in parm order. (find_use_as_address): PLUSCONST should be HOST_WIDE_INT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6477 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_auto_inc): Check for increment using single_set.kenner1994-01-291-7/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6436 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_used_regs, case CLOBBER): Refine previous change to just look atkenner1993-12-081-1/+8
| | | | | | | the address of a MEM inside a CLOBBER. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6195 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_used_regs): Look inside a CLOBBER; it may be the only place regskenner1993-12-071-1/+0
| | | | | | | are used if it has a stack slot that is from an inlined function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6193 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_basic_blocks): When starting new basic block for a CALL_INSN inkenner1993-11-151-3/+14
| | | | | | | | | | the presence of nonlocal labels, don't get confused with following CLOBBER. (flow_analysis): Use same logic as find_basic_block to see when the insn after a CALL_INSN starts a new basic block. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6097 138bc75d-0d04-0410-961f-82ee72b054a4
* * flow.c: (life_analysis): Mark HARD_FRAME_POINTER_REGNUM as live atdje1993-09-241-0/+23
| | | | | | | | | | | | | | the end of the function. (insn_dead_p): Don't delete insns that set the hard frame pointer. (mark_set_1): Don't add death information about HARD_FRAME_POINTER_REGNUM. (mark_used_regs, case REG): Don't put HARD_FRAME_POINTER_REGNUM in regs_ever_live. Don't mark it as needed either. * function.c: (instantiate_virtual_regs_1, case MEM): references to MEM via the hard frame pointer shouldn't be copied. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@5455 138bc75d-0d04-0410-961f-82ee72b054a4
* * (find_auto_inc): In *p=expr;q=p+size case, avoid clobbering qdje1993-07-021-3/+6
| | | | | | | if referenced in expr. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4830 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_used_regs): Use proper type for {all,some}_needed.kenner1993-04-241-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4207 138bc75d-0d04-0410-961f-82ee72b054a4
* (uid_block_number): Likewise.kenner1993-04-171-4/+4
| | | | | | | | (flow_analysis): Allocate uid_block_number and reg_basic_block as array of ints. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4174 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_set_1): Clear reg_next_use at the proper place.rms1993-04-081-3/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4044 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_set_1): Clear reg_next_use for all kinds of regs.rms1993-04-071-3/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4041 138bc75d-0d04-0410-961f-82ee72b054a4
* (regno_uninitialized): Test global_regs only for hard regs.rms1993-02-191-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@3497 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_basic_blocks): Don't mark labels in nonlocal_label_listrms1993-01-231-2/+5
| | | | | | | that were deleted due to having no references. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@3310 138bc75d-0d04-0410-961f-82ee72b054a4
* (life_analysis): Mark FP live at end of function.kenner1992-10-301-0/+14
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@2655 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_basic_blocks): Check for LABEL_REF_NONLOCAL_P in label_value_list.rms1992-10-261-2/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@2606 138bc75d-0d04-0410-961f-82ee72b054a4
* Change global-alloc.c to global.c.wilson1992-10-201-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@2537 138bc75d-0d04-0410-961f-82ee72b054a4
* (life_analysis, propagate_block, dump_flow_info): Add more missingkenner1992-08-141-6/+9
| | | | | | | casts to REGSET_ELT_TYPE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1826 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_used_regs): Do recurse in setting of global hard reg.rms1992-08-071-2/+9
| | | | | | | Do set reg_next_use for global hard reg. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1778 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_use_as_address): Use HOST_WIDE_INT instead of int when comparing akenner1992-08-031-4/+4
| | | | | | | pointer to an integer constant; also when returning int. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1748 138bc75d-0d04-0410-961f-82ee72b054a4
* entered into RCSrms1992-07-231-4/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1676 138bc75d-0d04-0410-961f-82ee72b054a4
* *** empty log message ***mycroft1992-07-061-52/+71
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1471 138bc75d-0d04-0410-961f-82ee72b054a4
* *** empty log message ***rms1992-06-291-2/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1332 138bc75d-0d04-0410-961f-82ee72b054a4
* *** empty log message ***kenner1992-06-281-3/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1318 138bc75d-0d04-0410-961f-82ee72b054a4