This is a tutorial on the Attributor. There is a technical talk as well: link
In this tutorial we will:
- create a new llvm::Attribute, incl. all the pluming,
- deduce it with the Attributor, and
- se the new attribute to improve alias information :)
Please consider joining us in the Attributor talk prior to attending this tutorial, though it is not strictly required.
---
The Attributor fixpoint iteration framework is a new addition to LLVM that, first and foremost, offers powerful inter-procedural attribute deduction. While it was initially designed as a replacement for the existing “function attribute deduction” pass, the Attributor framework is already more than that. The framework, as well as the deduced information which does not directly translate to LLVM-IR attributes, can be used for various other purposes where information about the code is required.In this talk we will give an overview about the design, showcase current and future use cases, discuss the interplay with other (inter-procedural) passes, highlight ongoing and future extensions, and finally present an evolution. Actual deduction (and use) of attributes will be described but also discussed in our lighting talk presentations and poster.