01:24 imirkin: cwabbott: afaik calim had some modifications to it, but probably similar yea
01:25 imirkin: as for the whole simplify/etc logic, i figured it out at one point, but it's long ago been paged out
03:12 imirkin: karolherbst: so as (somewhat) expected, the issue is in the noSpill handling
03:12 imirkin: if i don't mark the merge's as noSpill, then all is well
03:13 imirkin: and they don't _actually_ spill, and we get a perfectly reasonable-looking shader
03:13 karolherbst: sure
03:13 karolherbst: but what do you plan to change in the nospill handling to fix this?
03:14 imirkin: i mean ... i don't have the fix yet
03:14 imirkin: i plan on getting a better understanding of the algo, and how the nospill handling we have is not jelling with it
03:14 karolherbst: but yeah, I mean, I already said that nothing actually gets spilled if you jsut force it :)
03:14 karolherbst: _maybe_ we can improve the nospill thing, but we don't spill merges for a reason
03:15 imirkin: but that's the point ... the mere fact that it's marked no-spill is upsetting the logic
03:15 imirkin: which means that the no-spill handling is wrong
03:15 karolherbst: but what if something needs to be spilled
03:15 imirkin: that's not like a core part of the algo
03:15 imirkin: (no-spill handling, that is)
03:15 imirkin: i suspect it was hacked on
03:15 karolherbst: potentially
03:15 imirkin: and probably not done in the perfect way
03:16 imirkin: anyways, like i said, i don't have a fix, but i have a plausible avenue of investigation
03:16 karolherbst: I am not entirely happe about the merge/split things we have, but...
03:17 karolherbst: having vec support in the IR makes things so much simplier
03:17 karolherbst: not doing native vecs was a mistake :)
03:19 imirkin: i dunno
03:30 karolherbst: yeah.. not sure either, they do also make other things more complicated, but I think they would make RA simplier as you won't need to rely on tricks like split/merge
03:31 karolherbst: you still need to merge/split values, but then those are just instructions
03:33 imirkin: we just suck at that RA
03:33 imirkin: freedreno has the same thing
03:33 imirkin: (but called something else)
03:33 imirkin: and it works fine
03:33 imirkin: iirc "fan-in" and "fan-out"
11:52 cwabbott: freedreno's RA was also completely rewritten by yours truely to be SSA-based :)
11:53 cwabbott: I think marking merge/split as nospill is probably a mistake
11:53 cwabbott: you need to spill (merged) registers, not SSA values
11:53 cwabbott: or whatever RA calls it
11:54 cwabbott: then only spill/fill around merge/split if the SSA values weren't already combined into the same register