This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Make more use of register insv and ext*v expanders


Roman Zippel <zippel@linux-m68k.org> 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:
>
> http://gcc.gnu.org/ml/gcc-patches/2007-07/msg01169.html
>
> 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.

Richard


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]