This is the mail archive of the
mailing list for the GCC project.
Re: Make more use of register insv and ext*v expanders
Roman Zippel <email@example.com> writes:
>> ...on targets that also have limited memory expanders.
>> The insv, extv and extzv patterns can ask for the structure operand
>> to be a register, a memory, or either. If the predicate rejects a
>> memory operand, store_bit_field and extract_bit_field try using a
>> register operand instead.
> Hmm, I already wanted to get the patch reverted I mentioned here:
> The problem is that this would conflict with your patch and since you
> already work in this area I hope you can give some help how to resolve
> this. :)
I think it's an orthogonal issue. Let's not try to solve everything
at once. ;) If we want to add that check back, we can easily add it
back to either the pre-patch or post-patch sources.
> Any idea how I can get gcc again to use and/or instructions for constant
> single-bit bitfields instead of bitfield instructions? Should I just
> reject this in the expander or is there something better?
This is related to the MIPS all-bits-set case I mentioned.
Perhaps the conceptually cleanest thing is to choose between
insv and store_fixed_bit_field based on rtx costs, but I haven't
really thought about it much.