cmc-rep wrote:

> Missing documentation in clang/docs/LanguageExtensions.rst. Missing release 
> note.
> 
> It's not clear to me how, exactly, we expect users to use this. "Disabling 
> LICM" disables the pass itself, but there are other passes which can 
> effectively perform hosting. So it's basically "do less hoisting", where 
> exactly how much less is undefined.

Without further details, we have some domain-specific cases, in which the code 
pattern looks like the following:
    kernel ( ... )
        Loop:
            RealKernel( ... )

The real kernel will be inlined, fully optimized as the loop-body. However, we 
really want to minimize the code hoisting out of the outer-loop. In our case, 
LICM is the main culprit.

Take one step back: this change simply exposes the already-existing llvm meta 
data: llvm.loop.licm.disable. It is up to users to decide when to use it.

https://github.com/llvm/llvm-project/pull/188108
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to