On 5/30/23 17:37, juzhe.zhong wrote:
Oh. I forgot we need vl/vtype regnum dependency. It seems extending vla
pattern with vls mode is unavoidable. So.... I think we can
define_insn_and _spit and split intructions after RA so that we can get
benefits from general rtl code patterns.
So you're suggesting to represent them in the relatively simple VLS form
until some split pass (split1?) then lower the VLS form into the VLA from?
Isn't that option #2 from Kito's proposal? Essentially at split1 we
convert the VLS into VLA and it stays VLA from that point through
codegen. I know Kito said it "might be weird and not natural", but in
my mind I can easily see the version step as a lowering which very much
matches what we often are trying to do with define_insn_and_split. The
downside is we end up duplicating a ton of patterns.
I think one of Kito's proposals was to add an iterator to the existing
sets so that the VLA patterns match. Presumably we'd then key a
lowering step based on the mode?
Where do we stand on this now? Waiting on Kito to resubmit a VLS->VLA
lowering via define_insn_and_split or do we think Kito's approach is viable?
Is this blocking any work?
jeff