summaryrefslogtreecommitdiff
path: root/gcc/jump.c
Commit message (Collapse)AuthorAgeFilesLines
* reformat a little to match GNU coding standards.mrs1997-05-061-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14024 138bc75d-0d04-0410-961f-82ee72b054a4
* * jump.c (jump_optimize, follow_jumps, mark_jump_label): Disable somedje1997-03-281-6/+38
| | | | | | | | | optimizations when flag_test_coverage and there is a line number note in the way. (invert_jump): Add REG_BR_PROB when flag_branch_probabililties. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13817 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_cross_jump): Don't allow old-style and volatile asmswilson1997-02-041-1/+13
| | | | | | | to match. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13603 138bc75d-0d04-0410-961f-82ee72b054a4
* (rtx_equal_for_thread_p): Return 0 for floating-point.kenner1997-01-031-1/+8
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13361 138bc75d-0d04-0410-961f-82ee72b054a4
* Check SMALL_REGISTER_CLASSES at runtimeian1996-12-131-6/+12
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13302 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): Don't move initialization if there is a label between it ↵coxs1996-12-091-0/+1
| | | | | | and the jump for if (foo) bar++ to bar += (foo !=0) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13257 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): Fix bug in Sep 23 change.kenner1996-11-121-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13144 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): Fix second error in last change.kenner1996-10-261-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13038 138bc75d-0d04-0410-961f-82ee72b054a4
* jump.c (jump_optimize): fix bug in last change.dje1996-10-211-0/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12984 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): Use emit_store_flag even if branches are cheap, ifkenner1996-10-211-10/+17
| | | | | | | the store is even cheaper. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12982 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): Check for if (...) { x = a; goto l; } x = b;wilson1996-10-141-0/+90
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12960 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): In no-nop move deletion, don't testkenner1996-09-231-17/+28
| | | | | | | | | | PRESERVE_DEATH_INFO_REGNO_P; instead test if optimization is performed. Check for REG_UNUSED note on to-be deleted insn before searching for preceding instruction to delete note from. If PRESERVE_DEATH_INFO_REGNO_P is true for SREG, replace INSN with USE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12783 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): Insert conditional move after jump insn instead ofkenner1996-09-181-1/+3
| | | | | | | before. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12745 138bc75d-0d04-0410-961f-82ee72b054a4
* install EH codemrs1996-07-231-0/+11
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12549 138bc75d-0d04-0410-961f-82ee72b054a4
* formatting tweaksmrs1996-07-031-8/+8
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12390 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): When handle a USE insn before anwilson1996-03-111-1/+9
| | | | | | | | unconditional jump, disable the optimization if the USE is the only insn in the loop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11512 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): Fix potential infinite loop.kenner1996-02-131-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11253 138bc75d-0d04-0410-961f-82ee72b054a4
* * sched.c (canon_rtx): Recursively look for equivalences;law1995-12-181-1/+2
| | | | | | | | | | | | | look for expressions equivalent to MEMs. (true_dependence): Canonicalize inputs before operating on their values. (anti_dependence, output_dependence): Likewise. * jump.c (follow_jumps): Don't follow an unconditional jump that is not a simple_jump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10793 138bc75d-0d04-0410-961f-82ee72b054a4
* (duplicate_loop_exit_test): Return 0 if found a NOTE_INSN_LOOP_CONT.kenner1995-10-261-7/+11
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10510 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): Pass outer_code arg to rtx_cost.kenner1995-07-101-5/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@10111 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
* (jump_optimize, can_reach_end determination): A barrier candje1995-05-021-0/+4
| | | | | | | follow the return insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9564 138bc75d-0d04-0410-961f-82ee72b054a4
* (delete_insn): When deleting after label, delete a BARRIER as well.kenner1995-04-141-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9383 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): When searching for a LOOP_END note to move,wilson1995-02-071-14/+21
| | | | | | | stop if we find a LOOP_BEG note first. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8885 138bc75d-0d04-0410-961f-82ee72b054a4
* Include expr.h after insn-config.h and insn-flags.h.kenner1995-01-251-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8803 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): Try to emit a conditional move insn beforedje1995-01-251-155/+239
| | | | | | | trying a store-flag insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8801 138bc75d-0d04-0410-961f-82ee72b054a4
* Check target endianness at run time, not compile timeian1994-11-161-4/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8470 138bc75d-0d04-0410-961f-82ee72b054a4
* (delete_insn): Delete labels in ADDR_VECs anddje1994-11-151-0/+18
| | | | | | | ADDR_DIFF_VECs if their use count becomes zero. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8439 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): When deleting a jump, properly set NEXT.kenner1994-10-021-2/+3
| | | | | | | | (duplicate_loop_exit_test): Don't insety NOTE_INSN_LOOP_VTOP before deleted insn; insert first, then delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8194 138bc75d-0d04-0410-961f-82ee72b054a4
* (duplicate_loop_exit_test): Handle SUBREG in SET_DEST of loop exitkenner1994-07-051-8/+9
| | | | | | | test statements. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7654 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): Don't convert if (foo) x++ into an add of an scckenner1994-07-011-0/+2
| | | | | | | unless X has no side effects and can't trap. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7638 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): If we reverse "if (foo) bar else break;"erich1994-06-241-0/+29
| | | | | | | and there follows a NOTE_INSN_LOOP_END, move the note before "bar". git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7557 138bc75d-0d04-0410-961f-82ee72b054a4
* (duplicate_loop_exit_test): Initialize copy to zero.wilson1994-06-181-3/+3
| | | | | | | Emit jump to end lable if copy is still zero. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7519 138bc75d-0d04-0410-961f-82ee72b054a4
* * genconfig.c (main): Allow targets to override HAVE_conditional_move.dje1994-06-151-2/+2
| | | | | | | * jump.c (jump_optimize): Use it at run-time. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7482 138bc75d-0d04-0410-961f-82ee72b054a4
* Cast pointer operands to bzero, bcopy, and bcmp to (char *).kenner1994-06-141-3/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7472 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): Don't delete dead insn if it has a REG_RETVAL note.kenner1994-06-141-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7458 138bc75d-0d04-0410-961f-82ee72b054a4
* * jump.c (condjump_in_parallel_p): New function to detectlaw1994-06-141-1/+37
| | | | | | | | | | | | | conditional jumps within PARALLEL insns. (jump_optimize): Allow for some simple optimizations involving conditional jumps within PARALLEL insns. * reorg.c (get_jump_flags): Handle conditional jumps in PARALLEL insns. (get_branch_condition, fill_simple_delay_slots): Likewise. (fill_eager_delay_slots, relax_delay_slots, dbr_schedule): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7452 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): When deleting unneeded stack adjusts or mem-memkenner1994-05-291-2/+2
| | | | | | | copies, use delete_computation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7385 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): When looking for an `if' statement that takes twokenner1994-05-261-1/+5
| | | | | | | | insns to compute a result using a temporary, allow the temporary to be a SUBREG. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7355 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_cross_jump): Two CALL_INSNs only compare equal ifdje1994-05-151-35/+13
| | | | | | | their CALL_INSN_FUNCTION_USAGEs are the same as well. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7300 138bc75d-0d04-0410-961f-82ee72b054a4
* (find_cross_jump, get_label_{before,after}): Change from USE andkenner1994-05-061-47/+38
| | | | | | | CLOBBER insns to using CALL_INSN_FUNCTION_USAGE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7245 138bc75d-0d04-0410-961f-82ee72b054a4
* (invert_jump): Remove decl of unused variable OLABEL.kenner1994-03-251-2/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6888 138bc75d-0d04-0410-961f-82ee72b054a4
* (rtx_equal_for_thread_p): Correct error in previous change; addkenner1994-03-131-7/+7
| | | | | | | missing arg in recursive call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6763 138bc75d-0d04-0410-961f-82ee72b054a4
* Add prototypes for static functions.kenner1994-03-121-26/+16
| | | | | | | | | (jump_optimize, delete_insn): Use GET_RTX_CLASS to test for insns. (mark_jump_label): Delete dead code. (delete_computation, redirect_tablejump): No longer static. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6753 138bc75d-0d04-0410-961f-82ee72b054a4
* (jump_optimize): Delete REG_LABEL note if label no longer in insn.kenner1994-03-111-2/+12
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6745 138bc75d-0d04-0410-961f-82ee72b054a4
* (rtx_equal_for_thread_p): Commutative operations are identical if thekenner1994-03-091-0/+13
| | | | | | | operands match in the opposite order. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6731 138bc75d-0d04-0410-961f-82ee72b054a4
* (rtx_renumbered_equal_p): Fix bug in comparing SUBREGs and REGs.kenner1994-02-261-17/+49
| | | | | | | Two commutative operations are equal if the operands are in the opposite order. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6633 138bc75d-0d04-0410-961f-82ee72b054a4
* (mark_jump_label, case LABEL_REF): Update REG_LABEL note if changingkenner1994-02-121-2/+18
| | | | | | | target of jump. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6533 138bc75d-0d04-0410-961f-82ee72b054a4
* (comparison_dominates_p): NE is dominated by LT, GT, LTU and GTU.kenner1994-01-111-5/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6370 138bc75d-0d04-0410-961f-82ee72b054a4
* (follow_jumps): Don't follow tablejumps.jrv1994-01-091-0/+6
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@6361 138bc75d-0d04-0410-961f-82ee72b054a4