On 03/05/15 01:47, Richard Biener wrote:
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).
Seems reasonable. Though I'd also like to see us look to narrow the window in which things are in this odd state. It's just asking for long term maintenance headaches.

Removal of unreachable blocks so that we can compute dominators should, in theory, never need to look at this stuff and that's a much smaller window than all of tree_cleanup_cfg.


Along the same lines I want to tackle the ssa name manager issues that are loosely related.

Jeff

Reply via email to