aboutsummaryrefslogtreecommitdiff
path: root/gcc/loop.c
diff options
context:
space:
mode:
authorJohn Wehle <john@feith.com>2000-08-19 16:34:44 +0000
committerJohn Wehle <wehle@gcc.gnu.org>2000-08-19 16:34:44 +0000
commite76d9acbe9055e6f0ec35f4e5d0893ca10baf643 (patch)
tree2b760b9e70242dd44efe6a433b13fa0b8c4ba519 /gcc/loop.c
parent850aac532e0a0846f12c6c84c42370749c9bf461 (diff)
downloadgcc-e76d9acbe9055e6f0ec35f4e5d0893ca10baf643.zip
gcc-e76d9acbe9055e6f0ec35f4e5d0893ca10baf643.tar.gz
gcc-e76d9acbe9055e6f0ec35f4e5d0893ca10baf643.tar.bz2
loop.c (scan_loop): Use CONST_CALL_P instead of checking for REG_LIBCALL / REG_RETVAL.
* loop.c (scan_loop): Use CONST_CALL_P instead of checking for REG_LIBCALL / REG_RETVAL. From-SVN: r35808
Diffstat (limited to 'gcc/loop.c')
-rw-r--r--gcc/loop.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/gcc/loop.c b/gcc/loop.c
index ddaf017..fe9e0d4 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -599,7 +599,6 @@ scan_loop (loop, flags)
rtx loop_entry_jump = 0;
/* Number of insns in the loop. */
int insn_count;
- int in_libcall = 0;
int tem;
rtx temp, update_start, update_end;
/* The SET from an insn, if it is the only SET in the insn. */
@@ -753,11 +752,6 @@ scan_loop (loop, flags)
p != NULL_RTX;
p = next_insn_in_loop (loop, p))
{
- if (INSN_P (p) && find_reg_note (p, REG_LIBCALL, NULL_RTX))
- in_libcall = 1;
- else if (INSN_P (p) && find_reg_note (p, REG_RETVAL, NULL_RTX))
- in_libcall = 0;
-
if (GET_CODE (p) == INSN
&& (set = single_set (p))
&& GET_CODE (SET_DEST (set)) == REG
@@ -1046,9 +1040,8 @@ scan_loop (loop, flags)
}
/* Past a call insn, we get to insns which might not be executed
because the call might exit. This matters for insns that trap.
- Call insns inside a REG_LIBCALL/REG_RETVAL block always return,
- so they don't count. */
- else if (GET_CODE (p) == CALL_INSN && ! in_libcall)
+ Constant and pure call insns always return, so they don't count. */
+ else if (GET_CODE (p) == CALL_INSN && ! CONST_CALL_P (p))
call_passed = 1;
/* Past a label or a jump, we get to insns for which we
can't count on whether or how many times they will be