This is an archive of the discontinued LLVM Phabricator instance.

[Clang][X86] Convert non-temporal store builtins to generic __builtin_nontemporal_store in headers
ClosedPublic

Authored by RKSimon on Jun 12 2016, 2:48 PM.

Details

Summary

As discussed on D20358, we can now use __builtin_nontemporal_store instead of target specific builtins for naturally aligned nontemporal stores which avoids the need for handling in CGBuiltin.cpp

The scalar integer nontemporal (unaligned) store builtins will have to wait as __builtin_nontemporal_store currently assumes natural alignment and doesn't accept the 'packed struct' trick that we use for normal unaligned load/stores.

NOTE: The nontemporal loads require further backend support before we can safely convert them to __builtin_nontemporal_load

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon updated this revision to Diff 60481.Jun 12 2016, 2:48 PM
RKSimon retitled this revision from to [Clang][X86] Convert non-temporal store builtins to generic __builtin_nontemporal_store in headers.
RKSimon updated this object.
RKSimon added reviewers: craig.topper, ab, spatel, andreadb.
RKSimon set the repository for this revision to rL LLVM.
RKSimon added a subscriber: cfe-commits.
delena accepted this revision.Jun 13 2016, 12:06 AM
delena added a reviewer: delena.
This revision is now accepted and ready to land.Jun 13 2016, 12:06 AM
This revision was automatically updated to reflect the committed changes.