define_split
Ian Lance Taylor
iant@google.com
Tue Nov 2 14:09:00 GMT 2010
Joern Rennecke <amylaar@spamcop.net> writes:
> Quoting Ian Lance Taylor <iant@google.com>:
>
>> That said, this is not a very interesting use of splits these days and
>> it could probably be removed without doing any noticeable harm. These
>> days most people just write the complex pattern using define_insn, and
>> then write a define_split (or a define_insn_and_split) which splits up
>> the insn just before register allocation or just before instruction
>> scheduling.
>
> Although such patterns are justified in some cases, adding them willy-nilly
> can make your port worse, if such patterns that need to be split into
> multiple insns are generated by rtl passes from simpler instructions
> to increase the total instruction count after splitting, or when they
> hide scheduling opportunities.
>
> combine-split patterns are still the pattern of choice when you want to
> prevent the whole pattern tfrom being considered a single instruction.
I don't understand how this could ever hide scheduling opportunities, as
you can simply have the split run before reload. And I don't understand
your comment about increasing the instruction count after splitting, as
I'm not sure which pass would actually do that. So I guess I don't
understand.
Can you give us some examples of useful combine-split patterns?
Ian
More information about the Gcc
mailing list