diff options
-rw-r--r-- | memops.c | 5 | ||||
-rw-r--r-- | validation/memops/kill-redundant-store0.c | 1 |
2 files changed, 5 insertions, 1 deletions
@@ -213,6 +213,11 @@ static bool try_to_kill_store(pseudo_t pseudo, struct instruction *insn, /* possible partial dominance? */ if (dominance < 0) return false; + if (insn->target == dom->target && insn->bb == dom->bb) { + // found a memop which makes the store redundant + kill_instruction_force(insn); + return false; + } if (dom->opcode == OP_LOAD) return false; if (dom->is_volatile) diff --git a/validation/memops/kill-redundant-store0.c b/validation/memops/kill-redundant-store0.c index e911166d..8819938f 100644 --- a/validation/memops/kill-redundant-store0.c +++ b/validation/memops/kill-redundant-store0.c @@ -7,7 +7,6 @@ void foo(int *ptr) /* * check-name: kill-redundant-store0 * check-command: test-linearize -Wno-decl $file - * check-known-to-fail * * check-output-ignore * check-output-excludes: store |