diff options
author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2021-02-20 06:27:31 +0100 |
---|---|---|
committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2021-02-21 14:57:29 +0100 |
commit | 2f92df710ef708c5e5fabb551189213e9ad5127e (patch) | |
tree | 5b304807553a44b79ff430d838b1e1b9f72e10e7 | |
parent | d6721b38b376e881b4aaf8a35eda4af45740245a (diff) | |
download | sparse-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.c | 6 | ||||
-rw-r--r-- | validation/mem2reg/asm-reload0.c | 1 |
2 files changed, 6 insertions, 1 deletions
@@ -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\\. |