Back To Schedule
Thursday, November 3 • 10:30am - 11:15am
Intrinsics, Metadata, and Attributes: The story continues!

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

This talk is a sequel to my talk at the 2014 LLVM Developers' Meeting, in which I discussed @llvm.assume; scoped-noalias metadata; and parameter attributes that specify pointer alignment, dereferenceability, and more. The past two years have seen changes to the metadata representation itself (e.g. distinct vs. uniqued metadata), as well as new metadata that specify pointer alignment, dereferenceability, control loop optimizations, and more. Several new attributes and intrinsics allow for more-detailed control over pointer-aliasing and control-flow properties, and new intrinsics to support masked and scatter/gather memory accesses have been added. Support for older features, such as fast-math flags and the returned attribute, have been significantly extended. I'll explain the semantics of many of these new features, their intended uses, and a few ways they shouldn't be used. Finally, I'll discuss how Clang exposes and leverages these new features to encourage the generation of higher-performance code.

avatar for Hal Finkel

Hal Finkel

Argonne National Laboratory

Thursday November 3, 2016 10:30am - 11:15am PDT
1 - General Session (Rm LL20ABC)