diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:10:56 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-12-18 20:10:56 +0000 | 
| commit | 044eb2f6afba375a914ac9d8024f8f5142bb912e (patch) | |
| tree | 1475247dc9f9fe5be155ebd4c9069c75aadf8c20 /include/llvm/PassInfo.h | |
| parent | eb70dddbd77e120e5d490bd8fbe7ff3f8fa81c6b (diff) | |
Notes
Diffstat (limited to 'include/llvm/PassInfo.h')
| -rw-r--r-- | include/llvm/PassInfo.h | 31 | 
1 files changed, 11 insertions, 20 deletions
| diff --git a/include/llvm/PassInfo.h b/include/llvm/PassInfo.h index 81dface3c9a0..2f1ab4d43377 100644 --- a/include/llvm/PassInfo.h +++ b/include/llvm/PassInfo.h @@ -10,18 +10,17 @@  // This file defines and implements the PassInfo class.  //  //===----------------------------------------------------------------------===// +  #ifndef LLVM_PASSINFO_H  #define LLVM_PASSINFO_H  #include "llvm/ADT/StringRef.h" -  #include <cassert>  #include <vector>  namespace llvm {  class Pass; -class TargetMachine;  //===---------------------------------------------------------------------------  /// PassInfo class - An instance of this class exists for every pass known by @@ -31,18 +30,17 @@ class TargetMachine;  ///  class PassInfo {  public: -  typedef Pass* (*NormalCtor_t)(); +  using NormalCtor_t = Pass* (*)();  private:    StringRef PassName;     // Nice name for Pass    StringRef PassArgument; // Command Line argument to run this pass    const void *PassID; -  const bool IsCFGOnlyPass;              // Pass only looks at the CFG. +  const bool IsCFGOnlyPass = false;      // Pass only looks at the CFG.    const bool IsAnalysis;                 // True if an analysis pass.    const bool IsAnalysisGroup;            // True if an analysis group.    std::vector<const PassInfo *> ItfImpl; // Interfaces implemented by this pass - -  NormalCtor_t NormalCtor; +  NormalCtor_t NormalCtor = nullptr;  public:    /// PassInfo ctor - Do not call this directly, this should only be invoked @@ -51,21 +49,22 @@ public:             bool isCFGOnly, bool is_analysis)        : PassName(name), PassArgument(arg), PassID(pi), IsCFGOnlyPass(isCFGOnly),          IsAnalysis(is_analysis), IsAnalysisGroup(false), NormalCtor(normal) {} +    /// PassInfo ctor - Do not call this directly, this should only be invoked    /// through RegisterPass. This version is for use by analysis groups; it    /// does not auto-register the pass.    PassInfo(StringRef name, const void *pi) -      : PassName(name), PassArgument(""), PassID(pi), IsCFGOnlyPass(false), -        IsAnalysis(false), IsAnalysisGroup(true), NormalCtor(nullptr) {} +      : PassName(name), PassID(pi), IsAnalysis(false), IsAnalysisGroup(true) {} + +  PassInfo(const PassInfo &) = delete; +  PassInfo &operator=(const PassInfo &) = delete;    /// getPassName - Return the friendly name for the pass, never returns null -  ///    StringRef getPassName() const { return PassName; }    /// getPassArgument - Return the command line option that may be passed to    /// 'opt' that will cause this pass to be run.  This will return null if there    /// is no argument. -  ///    StringRef getPassArgument() const { return PassArgument; }    /// getTypeInfo - Return the id object for the pass... @@ -77,7 +76,6 @@ public:    /// isAnalysisGroup - Return true if this is an analysis group, not a normal    /// pass. -  ///    bool isAnalysisGroup() const { return IsAnalysisGroup; }    bool isAnalysis() const { return IsAnalysis; } @@ -88,7 +86,6 @@ public:    /// getNormalCtor - Return a pointer to a function, that when called, creates    /// an instance of the pass and returns it.  This pointer may be null if there    /// is no default constructor for the pass. -  ///    NormalCtor_t getNormalCtor() const {      return NormalCtor;    } @@ -108,23 +105,17 @@ public:    /// addInterfaceImplemented - This method is called when this pass is    /// registered as a member of an analysis group with the RegisterAnalysisGroup    /// template. -  ///    void addInterfaceImplemented(const PassInfo *ItfPI) {      ItfImpl.push_back(ItfPI);    }    /// getInterfacesImplemented - Return a list of all of the analysis group    /// interfaces implemented by this pass. -  ///    const std::vector<const PassInfo*> &getInterfacesImplemented() const {      return ItfImpl;    } - -private: -  void operator=(const PassInfo &) = delete; -  PassInfo(const PassInfo &) = delete;  }; -} +} // end namespace llvm -#endif +#endif // LLVM_PASSINFO_H | 
