On Wed, Feb 17, 2021 at 10:30:06AM +0000, Richard Sandiford wrote:
> Hmm.  I think that just means that the optimisation performed by
> the copy constructor isn't valid in practice (even if it should be
> in principle).  Guess this is the curse of manipulating data structures
> directly rather than through well-defined interfaces :-)
> 
> TBH, since the obvious thing didn't work, I think we should keep it
> simple and take the hit of the full copy.  It seems less error-prone
> and I'd be surprised if the overhead was noticeable in practice.
> It also means that if we do manage to optimise the copy in future,
> all callers would automatically benefit.
> 
> I.e. my preference would be to go for your original patch without
> the recog.[hc] bits.

It is more than 1KB there and back each time we call one of those
splitter conditions.
When we know only the recog_data.{operand,insn} part is needed...
Only copying that would be 240B there, back + clear of 8 bytes.
Anyway, don't feel strongly about that.

        Jakub

Reply via email to