[PATCH][combine][RFC][2/2] PR rtl-optimization/68796: Perfer zero_extract comparison against zero rather than unsupported shorter modes
Segher Boessenkool
segher@kernel.crashing.org
Thu Dec 17 17:27:00 GMT 2015
On Thu, Dec 17, 2015 at 05:12:16PM +0100, Bernd Schmidt wrote:
> On 12/17/2015 05:10 PM, Kyrill Tkachov wrote:
> >Well, this patch still produces the QImode comparison if the target has
> >a QImode comparison
> >(the have_insn_for check in the simplify_comparison hunk).
>
> Ok, I didn't look that closely because I had doubts about the approach.
> This kind of check also goes somewhat against the principles of just
> producing canonical forms of RTL.
The canonicalisation rules exist so that optimisers only need to match
one form instead of several, and machine descriptions only need to
describe one form instead of several. For this bitmasking case it
perversely forces you to describe the same instruction in many ways,
for many targets. This is what the change_zero_ext was about as well.
It's not so easy to fix for the compare case. Maybe the idea of making
genrecog make code that recognises more forms of the same insn will work
out. GCC 7 in any case...
Segher
More information about the Gcc-patches
mailing list