- if (!recompute_aliased_variables (cfg))
- goto done;
-
- /*
- A lot of simplification just took place, we recompute local variables and do DCE to
- really profit from the previous gains
- */
- mono_handle_global_vregs (cfg);
- if (cfg->opt & MONO_OPT_DEADCE)
- mono_local_deadce (cfg);
+ for (i = 0; i < 3 && restored_vars > 0 && recompute_aliased_variables (cfg, &restored_vars); ++i) {
+ /*
+ A lot of simplification just took place, we recompute local variables and do DCE to
+ really profit from the previous gains
+ */
+ mono_handle_global_vregs (cfg);
+ if (cfg->opt & MONO_OPT_DEADCE)
+ mono_local_deadce (cfg);
+ }