Date & Time
Thursday, November 18, 2021, 11:45 AM - 12:15 PM
ptr_provenance and @llvm.noalias: The Tale of Full Restrict

Software kernels for DSP architectures benefit from good control on pointer aliasing. C99 restrict was designed to provide this aliasing information to the compiler. Unfortunately, clang only supports restrict annotations for function arguments, which is too limited. Even worse is that, for a long time, such usage could result in mis-compilations after inlining. The 'Full Restrict' patches, which have been available for some time now, were created to close that gap. This tale gives an overview of the improvements they introduce to the LLVM architecture and how those are used to implement C99 restrict. It also goes in more detail on the current state of integration into the main LLVM.

Session Type
Technical Talk