#[plugin]Available on crate feature
macros only.Expand description
Macro for defining a new LLVM plugin.
This macro must be used on a function, and needs a name and version
parameters.
The annotated function will be used as the plugin’s entrypoint, and must
take a PassBuilder as argument.
§Warning
This macro should be used on cdylib crates only. Also, since it generates
an export symbol, it should be used once for the whole dylib being compiled.
§Example
#[llvm_plugin::plugin(name = "plugin_name", version = "0.1")]
fn plugin_registrar(builder: &mut PassBuilder) {
builder.add_module_pipeline_parsing_callback(|name, pass_manager| {
// add passes to the pass manager
});
builder.add_module_analysis_registration_callback(|analysis_manager| {
// register analyses to the analysis manager
});
}