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