aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2021-02-20 06:27:31 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2021-02-21 14:57:29 +0100
commit2f92df710ef708c5e5fabb551189213e9ad5127e (patch)
tree5b304807553a44b79ff430d838b1e1b9f72e10e7
parentd6721b38b376e881b4aaf8a35eda4af45740245a (diff)
downloadsparse-2f92df710ef708c5e5fabb551189213e9ad5127e.tar.gz
asm-mem: teach dominates() about OP_ASM
The function dominates() needs to know if an OP_ASM instruction may modify. Use the information now available in the instruction to return the answer. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--flow.c6
-rw-r--r--validation/mem2reg/asm-reload0.c1
2 files changed, 6 insertions, 1 deletions
diff --git a/flow.c b/flow.c
index 5751ce75..5d630187 100644
--- a/flow.c
+++ b/flow.c
@@ -495,6 +495,12 @@ int dominates(pseudo_t pseudo, struct instruction *insn, struct instruction *dom
return local ? 0 : -1;
case OP_LOAD: case OP_STORE:
break;
+ case OP_ASM:
+ if (dom->clobber_memory)
+ return -1;
+ if (dom->output_memory)
+ return -1;
+ return 0;
default:
return 0;
}
diff --git a/validation/mem2reg/asm-reload0.c b/validation/mem2reg/asm-reload0.c
index c9e297dd..ce1829e0 100644
--- a/validation/mem2reg/asm-reload0.c
+++ b/validation/mem2reg/asm-reload0.c
@@ -8,7 +8,6 @@ static int asm_reload(void)
/*
* check-name: asm-reload0
* check-command: test-linearize $file
- * check-known-to-fail
*
* check-output-ignore
* check-output-contains: load\\.