[PATCH 7/8] optim: load simplification should repeat optimization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



convert_load_instrcution() & rewrite_load_instruction() remove
a load instruction and as such should retrigger optimization of
symbols.

Do this by setting REPEAT_SYMBOL_CLEANUP at the end of these
two functions.

Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx>
---
 flow.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/flow.c b/flow.c
index 9d27e4307..f928c2684 100644
--- a/flow.c
+++ b/flow.c
@@ -306,6 +306,7 @@ void convert_load_instruction(struct instruction *insn, pseudo_t src)
 {
 	convert_instruction_target(insn, src);
 	kill_instruction(insn);
+	repeat_phase |= REPEAT_SYMBOL_CLEANUP;
 }
 
 static int overlapping_memop(struct instruction *a, struct instruction *b)
@@ -459,7 +460,7 @@ void rewrite_load_instruction(struct instruction *insn, struct pseudo_list *domi
 	FOR_EACH_PTR(dominators, phi) {
 		kill_instruction(phi->def);
 	} END_FOR_EACH_PTR(phi);
-	return;
+	goto end;
 
 complex_phi:
 	/* We leave symbol pseudos with a bogus usage list here */
@@ -467,6 +468,9 @@ complex_phi:
 		kill_use(&insn->src);
 	insn->opcode = OP_PHI;
 	insn->phi_list = dominators;
+
+end:
+	repeat_phase |= REPEAT_SYMBOL_CLEANUP;
 }
 
 static int find_dominating_stores(pseudo_t pseudo, struct instruction *insn,
-- 
2.16.2

--
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux