The main inner & outer optimization loop must not only rerun if some CSE changes occured but must do so if any change occur. Insure this by testing any of the REPEAT_... flags as loop condition. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- optimize.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/optimize.c b/optimize.c index a63b3bc3a..5cde6a58c 100644 --- a/optimize.c +++ b/optimize.c @@ -78,11 +78,11 @@ repeat: if (repeat_phase & REPEAT_SYMBOL_CLEANUP) simplify_memops(ep); - } while (repeat_phase & REPEAT_CSE); + } while (repeat_phase); pack_basic_blocks(ep); if (repeat_phase & REPEAT_CFG_CLEANUP) kill_unreachable_bbs(ep); - } while (repeat_phase & REPEAT_CSE); + } while (repeat_phase); vrfy_flow(ep); -- 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