summaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c33
1 files changed, 5 insertions, 28 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 3dd47992513..889064fd0f9 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -3021,34 +3021,11 @@ int
active_insn_p (insn)
rtx insn;
{
- if (GET_CODE (insn) == CALL_INSN || GET_CODE (insn) == JUMP_INSN)
- return true;
- if (GET_CODE (insn) == INSN)
- {
- if (reload_completed)
- {
- rtx pat = PATTERN (insn);
-
- /* After reload, remaining USE insns are noops. */
- if (GET_CODE (pat) == USE)
- return false;
-
- if (GET_CODE (pat) == CLOBBER)
- {
- /* ??? Don't skip past the clobber of the return register.
- If we eliminate it, we risk a variety of life analysis
- problems on broken code. */
- if (GET_CODE (XEXP (pat, 0)) == REG
- && REG_FUNCTION_VALUE_P (XEXP (pat, 0)))
- return true;
-
- /* Otherwise, clobbers don't do anything either. */
- return false;
- }
- }
- return true;
- }
- return false;
+ return (GET_CODE (insn) == CALL_INSN || GET_CODE (insn) == JUMP_INSN
+ || (GET_CODE (insn) == INSN
+ && (! reload_completed
+ || (GET_CODE (PATTERN (insn)) != USE
+ && GET_CODE (PATTERN (insn)) != CLOBBER))));
}
rtx