As noted in http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32437#c5

> I'm not surprised that converting it to an unspec_volatile stops
> us from deleting the instruction, but that wasn't really my concern.
>
> As I said earlier, several other ports use top-level unspecs (rather than
> unspec_volatiles), and it appears that after the dataflow merge, that construct > is no longer allowed. Thus I think we should first nail down whether this
> is a deliberate change.  If it is (and I can see that it might be),
> then I think we should change the RTL generators so that top-level
> unspecs are not allowed in define_insns.  I do not think we should the
> MIPS port until we have established what the new rules are.
>
> (This isn't an issue about dataflow being more accurate per se;
> the old code could also have deleted top-level unspecs with no
> register dependencies, if it had thought that doing so was allowed.)

I would appreciate it if one or more dataflow maintainers were to opine on the correctness of the patch in the bug report and to address Richard's concerns.

Thanks,
David Daney

Reply via email to