[llvm-dev] Full restrict support - status update

Finkel, Hal J. via llvm-dev
Tue, 29 Oct 2019 04:06:13 -0000

On 10/28/19 8:12 PM, Jeroen Dobbelaere via llvm-dev
wrote:
> Hi all,
>
> ## Status:
>
> During the past weeks I have updated the restrict patches with various
improvements:
> - the ScopedNoAliasAA now also works together with the new pass manager
> - the SLPVectorizer now works nice with the noalias support.
> - there were some issues with some of the options enabling/disabling full
restrict.  These have been fixed.
> - various smaller enhancements.
>
> Today, I rebased the patches. [1]
> Based on the feedback at the 'full restrict' roundtable, I also
created a single patch containing all changes. [2]
>
> ## Request for testing and feedback:
>
> Extra help with the code review would be great [1].
> This includes feedback on the design decisions and naming.
>
> It would also be great if you could just try it out and check the effect on
your benchmarks and testcases.
> The single patch[2] should make it more convenient to try it out:
> - If the full restrict support triggers a problem, I would like to hear
about it.
> - But, if it works and improves your benchmarks, I also would like to hear
about it, either through
>    phabricator, the llvm mailing list or in private.
>
> ## Known issues:
>
> - For now, there is still no llvm-ir bitcode support for the load/store
noalias_sidechannel argument.
> - the
'SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr38212.test'
in the 'test-suite' fails:
> -- the test is wrong as it triggers undefined behavior: it reads and writes
the same object through 2 different
>      restrict pointers which have been declared in the same scope.


This, we can fix now independent of anything else. We should either fix
the test, if there's a reasonable way to fix it, or we should remove it.
If you can post a patch with an explanation of the problem, that would
be great.

Thanks again,

Hal


>
> ## Future changes
> - Another request that came up during the round table, is to split up the
documentation in two parts:
>     a separate document describing the noalias architecture, and the
LangRef, describing the intrinsics.
>    I'll be working on that in the coming days.
>
> Thanks,
>
> Jeroen Dobbelaere
>
> [1] https://reviews.llvm.org/D68484  [PATCH 01/38] [noalias] LangRef:
noalias intrinsics and noalias_sidechannel documentation.
> [2] https://reviews.llvm.org/D69542 Full Restrict Support - single patch
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory