LLVM 20.0.0git
Classes | Namespaces | Macros | Functions
PassPlugin.h File Reference
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/DynamicLibrary.h"
#include "llvm/Support/Error.h"
#include <cstdint>
#include <string>

Go to the source code of this file.

Classes

struct  llvm::PassPluginLibraryInfo
 Information about the plugin required to load its passes. More...
 
class  llvm::PassPlugin
 A loaded pass plugin. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Macros

#define LLVM_PLUGIN_API_VERSION   1
 \macro LLVM_PLUGIN_API_VERSION Identifies the API version understood by this plugin.
 

Functions

::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK llvmGetPassPluginInfo ()
 The public entry point for a pass plugin.
 

Macro Definition Documentation

◆ LLVM_PLUGIN_API_VERSION

#define LLVM_PLUGIN_API_VERSION   1

\macro LLVM_PLUGIN_API_VERSION Identifies the API version understood by this plugin.

When a plugin is loaded, the driver will check it's supported plugin version against that of the plugin. A mismatch is an error. The supported version will be incremented for ABI-breaking changes to the PassPluginLibraryInfo struct, i.e. when callbacks are added, removed, or reordered.

Definition at line 33 of file PassPlugin.h.

Function Documentation

◆ llvmGetPassPluginInfo()

The public entry point for a pass plugin.

When a plugin is loaded by the driver, it will call this entry point to obtain information about this plugin and about how to register its passes. This function needs to be implemented by the plugin, see the example below:

return {
LLVM_PLUGIN_API_VERSION, "MyPlugin", "v0.1", [](PassBuilder &PB) { ... }
};
}
#define LLVM_ATTRIBUTE_WEAK
Definition: Compiler.h:290
PassBuilder PB(Machine, PassOpts->PTO, std::nullopt, &PIC)
::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK llvmGetPassPluginInfo()
The public entry point for a pass plugin.
#define LLVM_PLUGIN_API_VERSION
\macro LLVM_PLUGIN_API_VERSION Identifies the API version understood by this plugin.
Definition: PassPlugin.h:33
Information about the plugin required to load its passes.
Definition: PassPlugin.h:41

Referenced by llvm::PassPlugin::Load().