Dataflow issues in the MIPS backend.

David Daney ddaney@avtrex.com
Fri Jun 22 18:55:00 GMT 2007


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



More information about the Gcc mailing list