linux-sparse.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] fix killing OP_ASM
@ 2020-12-04 16:13 Luc Van Oostenryck
  0 siblings, 0 replies; only message in thread
From: Luc Van Oostenryck @ 2020-12-04 16:13 UTC (permalink / raw)
  To: linux-sparse; +Cc: Luc Van Oostenryck

Currently OP_ASMs are only handled by default in kill_insn().
In consequence, the usage is not removed from their inputs,
possibly leaving dead pseudos.

Fix this by removing the usage on the input pseudos.

Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
---
 simplify.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/simplify.c b/simplify.c
index 851f94209975..a877b693b610 100644
--- a/simplify.c
+++ b/simplify.c
@@ -308,6 +308,15 @@ static void kill_use_list(struct pseudo_list *list)
 	} END_FOR_EACH_PTR(p);
 }
 
+static void kill_asm(struct instruction *insn)
+{
+	struct asm_constraint *con;
+
+	FOR_EACH_PTR(insn->asm_rules->inputs, con) {
+		kill_use(&con->pseudo);
+	} END_FOR_EACH_PTR(con);
+}
+
 ///
 // kill an instruction
 // @insn: the instruction to be killed
@@ -373,6 +382,12 @@ int kill_insn(struct instruction *insn, int force)
 		kill_use(&insn->target);
 		break;
 
+	case OP_ASM:
+		if (!force)
+			return 0;
+		kill_asm(insn);
+		break;
+
 	case OP_ENTRY:
 		/* ignore */
 		return 0;
-- 
2.29.2


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2020-12-04 16:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-04 16:13 [PATCH] fix killing OP_ASM Luc Van Oostenryck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).