diff options
author | John Wehle <john@feith.com> | 2000-08-19 16:34:44 +0000 |
---|---|---|
committer | John Wehle <wehle@gcc.gnu.org> | 2000-08-19 16:34:44 +0000 |
commit | e76d9acbe9055e6f0ec35f4e5d0893ca10baf643 (patch) | |
tree | 2b760b9e70242dd44efe6a433b13fa0b8c4ba519 /gcc/loop.c | |
parent | 850aac532e0a0846f12c6c84c42370749c9bf461 (diff) | |
download | gcc-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.c | 11 |
1 files changed, 2 insertions, 9 deletions
@@ -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 |