Page MenuHomePhabricator

[PATCH 27/27] [noalias] Clang: enable full restrict by default.
Needs ReviewPublic

Authored by jeroen.dobbelaere on Oct 4 2019, 3:31 PM.

Details

Reviewers
hfinkel
jdoerfert
Summary

This is part of the series started by D68484.

This is the clang-side patch for enabling full restrict by default.

Note: this is a stable point and tests should run fine with the patches applied up to this point.

Diff Detail

Event Timeline

D68521 (Patch 36/38) was updated (Moved options to the 'f_Group' and reworked the logic).

Rebased.

Note: '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).

jeroen.dobbelaere retitled this revision from [PATCH 38/38] [noalias] Clang: enable full restrict by default. to [PATCH 26/26] [noalias] Clang: enable full restrict by default..
jeroen.dobbelaere retitled this revision from [PATCH 26/26] [noalias] Clang: enable full restrict by default. to [PATCH 27/27] [noalias] Clang: enable full restrict by default..

Rebased to 9fb46a452d4e5666828c95610ceac8dcd9e4ce16 (September 7, 2020)

jeroen.dobbelaere added a comment.EditedJun 14 2021, 3:24 PM
NOTE: the latest update missed two mandatory changes: * in clang/include/clang/Driver/Options.td : the DefaultFalse should become a DefaultTrue in order to enable the full restrict by default. * in clang/lib/Driver/ToolChains/Clang.cpp, '"-use-noalias-intrinsic-during-inlining=0"' must become '"-use-noalias-intrinsic-during-inlining=scopes"'