https://gcc.gnu.org/bugzilla/show_bug.cgi?id=39722
Jeffrey A. Law <law at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |law at redhat dot com Resolution|--- |FIXED Summary|[4.8/4.9/5 |[4.8/4.9 |Regression][cond-optab] |Regression][cond-optab] |worse code with bitfields |worse code with bitfields |on v850, mn10300, avr |on v850, mn10300, avr --- Comment #10 from Jeffrey A. Law <law at redhat dot com> --- First note the testcase is rather bogus. Modern compilers collapse foo() down into a simple return as DCE doesn't find any statements within foo() which affect state outside of foo. Testing was thus done with "t" being an extern. The code we generate on the trunk for the v850 is marginally better than what we generated prior to the cond-optab merge (smaller by a single move insn) The code we generate on the mn103 is slightly better as well. It uses fewer registers (and as a result has less memory traffic to save/restore registers), and generates smaller code. The avr code looks considerably better, though my familiarity with that architecture is minimal. It appears to use fewer registers and is considerably smaller. I haven't done bisection to see what fixed the reported regressions, nor do I plan to. While this might have been a regression in 4.8 and 4.9, I don't think anyone bothered to check and I can't see anyone bothering to do so in the future or backport the fix if it were identified. Thus I'm closing as resolved. If anyone objects, feel free to reopen.