roy rosen <roy.1ro...@gmail.com> writes: > How are they split before register allocation or scheduling. We've > said that in any case only the combiner does the splitting.
No, we haven't said that. Or, if we did, we made a mistake. The documentation I see says "There are two cases where you should specify how to split a pattern into multiple insns" and "[t]he insn combiner phase also splits putative insns." The first case, the case in which the combiner does not split insns, is the primary use case for define_split. I believe that we could remove the combiner's use of define_split with minimal or zero performance effect. > And another thing: gccint says that the define_split is used only if > there is no define_insn that matches - but you say now that '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' so > I don't understand: if they write a define_insn then the pattern > matches and the split would not be used. I am confused... It is only when the combiner is splitting insns that the define_split is used only if there is no define_insn that matches. In the more typical case of splitting an insn, there is no such restriction. > Also, how do I build gccint from the current sources. Currently I just > use something I found in the internet. http://gcc.gnu.org/install/ Ian