LLVM 20.0.0git
Public Member Functions | List of all members
llvm::RegisterPass< passName > Struct Template Reference

RegisterPass<t> template - This template class is used to notify the system that a Pass is available for use, and registers it into the internal database maintained by the PassManager. More...

#include "llvm/PassSupport.h"

Inheritance diagram for llvm::RegisterPass< passName >:
Inheritance graph
[legend]

Public Member Functions

 RegisterPass (StringRef PassArg, StringRef Name, bool CFGOnly=false, bool is_analysis=false)
 
- Public Member Functions inherited from llvm::PassInfo
 PassInfo (StringRef name, StringRef arg, const void *pi, NormalCtor_t normal, bool isCFGOnly, bool is_analysis)
 PassInfo ctor - Do not call this directly, this should only be invoked through RegisterPass.
 
 PassInfo (const PassInfo &)=delete
 
PassInfooperator= (const PassInfo &)=delete
 
StringRef getPassName () const
 getPassName - Return the friendly name for the pass, never returns null
 
StringRef getPassArgument () const
 getPassArgument - Return the command line option that may be passed to 'opt' that will cause this pass to be run.
 
const void * getTypeInfo () const
 getTypeInfo - Return the id object for the pass... TODO : Rename
 
bool isPassID (const void *IDPtr) const
 Return true if this PassID implements the specified ID pointer.
 
bool isAnalysis () const
 
bool isCFGOnlyPass () const
 isCFGOnlyPass - return true if this pass only looks at the CFG for the function.
 
NormalCtor_t getNormalCtor () const
 getNormalCtor - Return a pointer to a function, that when called, creates an instance of the pass and returns it.
 
void setNormalCtor (NormalCtor_t Ctor)
 
PasscreatePass () const
 createPass() - Use this method to create an instance of this pass.
 

Additional Inherited Members

- Public Types inherited from llvm::PassInfo
using NormalCtor_t = Pass *(*)()
 

Detailed Description

template<typename passName>
struct llvm::RegisterPass< passName >

RegisterPass<t> template - This template class is used to notify the system that a Pass is available for use, and registers it into the internal database maintained by the PassManager.

Unless this template is used, opt, for example will not be able to see the pass and attempts to create the pass will fail. This template is used in the follow manner (at global scope, in your .cpp file):

static RegisterPass<YourPassClassName> tmp("passopt", "My Pass Name");

This statement will cause your pass to be created by calling the default constructor exposed by the pass.

Definition at line 107 of file PassSupport.h.

Constructor & Destructor Documentation

◆ RegisterPass()

template<typename passName >
llvm::RegisterPass< passName >::RegisterPass ( StringRef  PassArg,
StringRef  Name,
bool  CFGOnly = false,
bool  is_analysis = false 
)
inline

The documentation for this struct was generated from the following file: