peephole2: dead regs not marked as dead
Georg Lay
avr@gjlay.de
Tue Nov 2 10:39:00 GMT 2010
Paolo Bonzini schrieb:
> On 11/02/2010 10:41 AM, Georg Lay wrote:
>> What I do not understand is*why* this works.
>> The internals "16.16 How to Split Instructions" mention two flavours
>> of insn
>> splitting: One after reload for the scheduler and one during combine
>> stage, the
>> latter just doing single_set --> 2 * single_set splits for insns that
>> do*not*
>> match during combine stage.
>
> I think this is extremely out-of-date, I am sorry. I read something
> from Ian Lance Taylor on the mailing list recently about the history of
> splits. I cannot find it now, but basically the original purpose (help
> combine to find matches for "big" patterns representing more than one
> instruction) is now almost obsolete with define_insn_and_split, and the
> split passes before and after reload have the biggest role in splitting.
You mean this?
http://gcc.gnu.org/ml/gcc/2010-10/msg00444.html
>> I observed that the insn gets split in split1 even if the splitter
>> produces more
>> than two insns and also if optimization is off.
>
> Yes, split1 does unconditional splitting of every define_split that
> matches.
Ok, so there is no way to re-feed the split insns into combine whilst
insns that got split during combine will be reused by combiner,
if I understand correctly.
Anyway, many thanks for you explanations and your patience :-)
Georg
More information about the Gcc
mailing list