On Wed, Sep 23, 2015 at 12:21:35PM -0600, Jeff Law wrote: > On 09/23/2015 10:32 AM, Marek Polacek wrote: > >On Tue, Sep 22, 2015 at 03:33:34PM -0600, Martin Sebor wrote: > >>It's fine by me (for whatever it's worth). > > > >Thanks. Let's wait if Jason/Joseph or anyone else wants to chime in. > > > >>Btw., if you're unhappy about having to wipe out the whole chain > >>after every side-effect it occurred to me that it might be possible > >>to do better: instead of deleting the whole chain, only remove from > >>it the elements that may be affected by the side-effect. This should > >>make it possible to keep on the chain all conditions involving local > >>variables whose address hasn't been taken, which I would expect to > >>be most in most cases. > > > >I'm not unhappy about deleting the chain ;). I'd rather not do that > >because that might get somewhat hairy. First, I don't think we have > >the capability to easily detect variables whose address hasn't been > >taken, second, consider e.g. > > > > if (j == 4) // ... > > else if ((j++, --k, ++l)) // ... > > else if (bar (j, &k)) // ... > > > >we'd probably need some walk_tree, save the variables temporarily somewhere > >etc.; that might slow and complicate things for a corner case. Or am I being > >just too lazy? ;) > This is all running on generic, not gimple/ssa, right? In which case, no > you don't know what stuff might be aliased.
Right. Hence this doesn't seem doable, but I don't think that's a big deal at all. Marek