------- Comment #12 from rguenth at gcc dot gnu dot org 2006-04-07 12:01 ------- So what I now have is (ahh, a PROP_loops would be so nice...)
pass_ch pass_split_crit_edges pass_pre [cfg_cleanup to re-merge critical edges] pass_hoist_guards which works nice for this scenario, still without an extra load-PRE pass we have memory loads that were only PREd out of the inner loop (due to the not hoisted guard) inside the outer loop, even if they're now redundant. Which makes me wonder, if PRE could do loop-header-FRE here? Danny? Has such been done before? Basically you have do { if (*mem > 0) { i = 0; do { } while (*mem > i); } } while (...); where the (*mem > 0) is (full or partially?) redundant. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dberlin at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23855