Page MenuHomePhabricator

Full Restrict Support - single patch
Needs ReviewPublic

Authored by jeroen.dobbelaere on Oct 28 2019, 6:02 PM.
This revision needs review, but there are no reviewers specified.



This is a convenience patch that covers all 38 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.


  • 'SingleSource/Regression/C/gcc-c-torture/execute/GCC-C-execute-pr38212.test' in the 'test-suite' will be failing now as it depends on undefined behavior (reads and writes the same object through different restrict pointers that are visible in the same scope).
  • support for llvm-ir bitcode is currently missing

Diff Detail

Event Timeline

jeroen.dobbelaere edited the summary of this revision. (Show Details)Oct 28 2019, 6:05 PM

What revision is the base for this change?

What revision is the base for this change?

The is a rebase based on 82d3ba87d06f9e2abc6e27d8799587d433c56630

Is this work stalled?

Is this work stalled?


  • I still need to do the documentation work, creating a separate document for restrict/noalias.
  • Johannes wondered if we need to use operand bundles:
    • There is no resolution for this yet. If we decide that this is the way to go, I can migrate the full restrict support patch, once the load/store instructions support operand bundles.
MSxDOS added a subscriber: MSxDOS.Mon, Mar 2, 7:36 AM