This is a convenience patch that covers all 27 patches starting from D68484 through D68523. It implements the support for full C99 restrict in clang/llvm.
Any feedback about how it behaves on your benchmarks and testcases is welcome !
Any help with code review is also welcome. That should happen on the separate patches.
(The part that is currently up for review is on D111159, introducing unknown_provenance and ptr_provenance)
The base version is dd2e681612f1f09d92abc9e16f5f65293e3fe725 (May 27, 2023)
Note: (November 17,2021)
- Moved NoAliasProvenance out of AAMetadata. Added PtrProvenance to MemoryLocation
- Introduced UnknownProvenance constant
- Added support for (some) atomic instructions.
Note: (July 29, 2022)
- Track ptr_provenance again during selectiondag lowering
Metadata copied over from Load to NoAliasLoad may include TBAA. NoAliasLoad may be a bitcast instruction which will cause IR verifier to assert if TBAA metadata is attached.