aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ira.c21
2 files changed, 6 insertions, 20 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7176ee8..f1e1183 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2014-07-31 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
+ (compute_regs_asm_clobbered): Use extract_asm_operands instead.
+
2014-07-31 Richard Biener <rguenther@suse.de>
* data-streamer.h (streamer_write_data_stream): Declare here,
diff --git a/gcc/ira.c b/gcc/ira.c
index 1dd2187..ccc6c79 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -2221,25 +2221,6 @@ ira_bad_reload_regno (int regno, rtx in, rtx out)
|| ira_bad_reload_regno_1 (regno, out));
}
-/* Return TRUE if *LOC contains an asm. */
-static int
-insn_contains_asm_1 (rtx *loc, void *data ATTRIBUTE_UNUSED)
-{
- if ( !*loc)
- return FALSE;
- if (GET_CODE (*loc) == ASM_OPERANDS)
- return TRUE;
- return FALSE;
-}
-
-
-/* Return TRUE if INSN contains an ASM. */
-static bool
-insn_contains_asm (rtx insn)
-{
- return for_each_rtx (&insn, insn_contains_asm_1, NULL);
-}
-
/* Add register clobbers from asm statements. */
static void
compute_regs_asm_clobbered (void)
@@ -2253,7 +2234,7 @@ compute_regs_asm_clobbered (void)
{
df_ref def;
- if (insn_contains_asm (insn))
+ if (NONDEBUG_INSN_P (insn) && extract_asm_operands (PATTERN (insn)))
FOR_EACH_INSN_DEF (def, insn)
{
unsigned int dregno = DF_REF_REGNO (def);