On Thu, Mar 5, 2015 at 1:54 AM, Jan Hubicka <hubi...@ucw.cz> wrote: >> > >> > It gets passed the valueize callback now which returns NULL_TREE for >> > SSA names we can't follow. >> >> Btw, for match-and-simplify I had to use that as default for fold_stmt >> _exactly_ because of the call to fold_stmt from replace_uses_by >> via merge-blocks from cfgcleanup. This is because replace-uses-by >> doesn't have all uses replaced before it folds the stmt! >> >> We also have the "weaker" in-place flag. >> >> 2015-03-04 Richard Biener <rguent...@suse.de> >> >> PR middle-end/65233 >> * ipa-polymorphic-call.c: Include tree-ssa-operands.h and >> tree-into-ssa.h. >> (walk_ssa_copies): Revert last chage. Instead do not walk >> SSA names registered for SSA update. > > Maybe include the patch? It should not be problem to make the function > to valuelize everything it looks into.
I attached it. Well, I think for stage1 the fix is to not call fold_stmt from CFG hooks or CFG cleanup. Merge-blocks can just demote PHIs to assignments and leave propagation to followup cleanups (we can of course propagate virtual operands). I can try to do it for this stage (I can only find merge-blocks doing this) as well. Opinions? Richard. > Honza