On Wed, Sep 14, 2022 at 08:09:08AM +0000, Richard Biener wrote: > Are nested functions a thing for OpenMP? But yes, punt on them > for now.
For Fortran certainly because they are part of the language, for C too because they are GNU extension. But declare simd is mostly best effort, so we can at least for now punt. > I agree that a conditional call should be explicit, but the above is > only transitional between if-conversion and vectorization, right? > Do we support indirect calls here? As Jakub says one possibility > is to do > > .IFN_COND/MASK_CALL (fn-addr, condition/mask, ...) > > another would be > > fnptr = cond ? fn : &nop_call; > (*fnptr) (...); > > thus replace the called function with conditional "nop". How > to exactly represent that NOP probably isn't too important > when it's transitional until vectorization only, even NULL > might work there. Of course having the function address > in a computation might confuse parts of the vectorizer. OTOH > it allows to keep the original call (and the chain and any > other info we'd have to preserve otherwise). On the ifn one can preserve those too and the advantage is that it would be just one command rather than 2, but I'm not opposed to the other way either. Jakub