[Libre-soc-bugs] [Bug 558] gcc SV intrinsics concept

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Wed Dec 30 21:11:20 GMT 2020


https://bugs.libre-soc.org/show_bug.cgi?id=558

--- Comment #28 from Jacob Lifshay <programmerjake at gmail.com> ---
(In reply to Luke Kenneth Casson Leighton from comment #26)
> (In reply to Jacob Lifshay from comment #24)
> 
> > I'm inclined to define two different ABIs where one has VL be clobbered by
> > calls and the other has it be saved by calls, though I'm not sure which
> > should be default.
> 
> the generally-accepted industry-standard wisdom here is that making function
> calls *at all* from inside a vectorised loop (unless they are static inline)
> is simply too hard a problem to consider let alone write an ABI for.
> 
> if this wisdom is accepted then the problem entirely disappears.  VL does
> not need saving (except by traps / contextswitching which is not the
> program's responsibility)

that works for traditional loop vectorization but not really for full function
vectorization which is needed for graphics shaders. in graphics shaders, VL is
set at the start of the shader and not changed, the whole shader program
(potentially many functions and thousands of lines of code) is all inside the
vectorized loop. that is part of why I'm planning on having the vectorization
pass in the shader compiler where the IR is kept in a form that is vectorizable
by construction (no irreducible control-flow-graphs).

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list