[llvm-dev] Full restrict support - status update

Finkel, Hal J. via llvm-dev llvm-dev at lists.llvm.org
Mon Oct 28 21:06:13 PDT 2019

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,


> ## 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

More information about the llvm-dev mailing list