aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2021-03-20 16:11:40 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2021-04-17 20:43:15 +0200
commitee17130837d9cef3e587d6dea7533903c277718c (patch)
treedb4d60869b0ad7aef4d45a1e9b40b86db7dc08cc
parentb91ba64904a6a05d619a27a17545163eac97c2ca (diff)
downloadsparse-ee17130837d9cef3e587d6dea7533903c277718c.tar.gz
memops: we can kill addresses unconditionally
In rewrite_load_instruction(), if the load instruction is converted into a phi-node, its address is then no more used and must be removed. However, this is only done when this address is not a symbol. This was explicitly done in the following commit because of the problem of removing an element from the usage list while walking this list: 602f6b6c0d41 ("Leave symbol pseudo usage intact when doing phi-node conversion.") But currently rewrite_load_instruction() is only used during memops simplification where the usage list is not walked. So, kill the address' usage unconditionally. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--memops.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/memops.c b/memops.c
index 67f37f79..89d9eb2c 100644
--- a/memops.c
+++ b/memops.c
@@ -45,9 +45,7 @@ static void rewrite_load_instruction(struct instruction *insn, struct pseudo_lis
goto end;
complex_phi:
- /* We leave symbol pseudos with a bogus usage list here */
- if (insn->src->type != PSEUDO_SYM)
- kill_use(&insn->src);
+ kill_use(&insn->src);
insn->opcode = OP_PHI;
insn->phi_list = dominators;