On Thu, Jun 03, 2021 at 11:11:53AM -0600, Jeff Law wrote: > On 6/3/2021 2:00 AM, Segher Boessenkool wrote: > >The whole point of requiring the split condition to start with && is so > >it will become harder to mess things up (it will make the gen* code a > >tiny little bit simpler as well). And there is no transition period or > >anything like that needed either. Just the bunch that will break will > >need fixing. So let's find out how many of those there are :-) > Exactly. While these empty conditions or those not starting with "&&" > are technically valid, they're all suspicious from a port correctness > standpoint, particularly if the main condition is non-empty.
And note that this is also the case if you wrote the insn condition as an empty string, but you used some iterator with a condition. I found many of these in rs6000. This will need to be fixed before we do anything else. > Having made that mistake when converting the H8 away from CC0, I can say > fairly confidently that if we had this in place a year ago that those > mistakes would likely have been avoided. Thankfully the H8 isn't a > heavily used port and has limped along until I stumbled over the issue a > week or so ago while polishing some improvements to the port. I've noticed unexpected splits in rs6000 only a few times over the years. That doesn't mean more didn't happen, they just didn't cause obvious enough problems :-) Segher