Joern Rennecke <amyl...@spamcop.net> writes:

> Quoting Ian Lance Taylor <i...@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

Reply via email to