[RFC] Kill gen_sequence

Jan Hubicka jh@suse.cz
Thu Jun 6 05:18:00 GMT 2002


> 
> The idea of this patch is to eliminate usage of SEQUENCE rtl from
> most of the compiler.  Usage remains in three areas:
> 
> 1) SSA.  It even hacks up the insns in the SEQUENCE array so
>    that it's just the SETs.
> 
>    Maybe these bits can just be replaces with a parallel?
> 
> 2) REORG.  This is how delay slots are represented.
>    As discussed the other day, there is no particular reason
>    why SEQUENCES are needed to represent this stuff and REORG
>    should be obliterated in favor of having the instruction
>    scheduler solve this problem.
> 
> 3) SH/PA ports.  They put a special SEQUENCE into a reg note
>    of an insn for the sake of describing things to dwarf2.
> 
>    The usage of SEQUENCE is arbitrary here, we can just as easily
>    use a PARALLEL since the intepretation of the contents is fixed
>    since this lives only in these special REG_NOTES dwarf2 looks
>    for.
> 
> One minor piece of lossage results from this patch.  Basically
> splitters are no longer allowed to emit no instructions, they have to
> emit some RTL.  The reason for this is that now that all of the
> generators return an INSN list, there is no easy way to distinguish
> between "no splitter matched" and "splitter matched but no insns
> emitted".
> 
> Initially I was very concerned about potential fallout from this....
> 
> As it turned out, it's not such a big deal.  I reviewed every single
> splitter in every MD file and I found only 3 occurances of splitters
> which could potentially output 0 insns.

Can't this be cared by potentially teaching try_split to emit
NOTE_INSN_DELETED if it happends?
(or at least abort, so we find such bugs?)
> 
> Any comments or suggestions before I check this in?  Also, if anyone

Did you tested how much of performance it brings?
sequence is relatively consistent abstraction bit, but in case it is
expensive I don't have objections...

Honza



More information about the Gcc-patches mailing list