[fpc-devel] Wrong debug info when using clang backend
Adriaan van Os
adriaan at adriaan.biz
Sat Dec 9 13:35:11 CET 2023
Jonas Maebe via fpc-devel wrote:
> On 09/12/2023 10:07, Adriaan van Os via fpc-devel wrote:
>
>> Another question. Is there a way to put pragmas in fpc source code to
>> be passed to CLang, eg. those mentioned here
>> <https://llvm.org/docs/Vectorizers.html> ? That would gain a lot, at
>> little cost.
>
> No. However, FPC command line parameters (e.g. -O, -Cp) and
> directives/modifiers (e.g. inline, const, constref, ...) get translated
> into LLVM directives wherever possible.
>
> So if/when we would get FPC equivalents of such directives, I could
> translate those to LLVM IR as well.
Then I suggest the following (and I can prepare a patch to the code and docs if it were to be accepted)
$vectorize ON}
{$vectorize OFF}
{$vectorize WIDTH=VALUE}
{$vectorize TYPE=FIXED}
{$vectorize TYPE=SCALABLE}
{$vectorize PREDICATE=ON}
{$vectorize PREDICATE=OFF}
For a description, see <https://llvm.org/docs/Vectorizers.html#command-line-flags>. And
{$unroll ON}
{$unroll OFF}
{$unroll FULL}
{$unroll COUNT=VALUE}
For a description, see
<https://clang.llvm.org/docs/LanguageExtensions.html#extensions-for-loop-hint-optimizations>.
LLVM equivalents of these compiler switches will be passed (by Jonas) to Clang as IR methadata.
Also, I suggest
-Cl<xxx> Pass xxx to Clang as pragma on the command-line.
Regards,
Adriaan van Os
More information about the fpc-devel
mailing list