Coverage Report

Created: 2019-02-15 18:59

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/CodeGen/MachinePassRegistry.h
Line
Count
Source (jump to first uncovered line)
1
//===- llvm/CodeGen/MachinePassRegistry.h -----------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file contains the mechanics for machine function pass registries.  A
10
// function pass registry (MachinePassRegistry) is auto filled by the static
11
// constructors of MachinePassRegistryNode.  Further there is a command line
12
// parser (RegisterPassParser) which listens to each registry for additions
13
// and deletions, so that the appropriate command option is updated.
14
//
15
//===----------------------------------------------------------------------===//
16
17
#ifndef LLVM_CODEGEN_MACHINEPASSREGISTRY_H
18
#define LLVM_CODEGEN_MACHINEPASSREGISTRY_H
19
20
#include "llvm/ADT/StringRef.h"
21
#include "llvm/CodeGen/Passes.h"
22
#include "llvm/Support/CommandLine.h"
23
24
namespace llvm {
25
26
//===----------------------------------------------------------------------===//
27
///
28
/// MachinePassRegistryListener - Listener to adds and removals of nodes in
29
/// registration list.
30
///
31
//===----------------------------------------------------------------------===//
32
template <class PassCtorTy> class MachinePassRegistryListener {
33
0
  virtual void anchor() {}
Unexecuted instantiation: llvm::MachinePassRegistryListener<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::anchor()
Unexecuted instantiation: llvm::MachinePassRegistryListener<llvm::FunctionPass* (*)()>::anchor()
Unexecuted instantiation: llvm::MachinePassRegistryListener<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::anchor()
34
35
public:
36
293k
  MachinePassRegistryListener() = default;
llvm::MachinePassRegistryListener<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::MachinePassRegistryListener()
Line
Count
Source
36
97.6k
  MachinePassRegistryListener() = default;
llvm::MachinePassRegistryListener<llvm::FunctionPass* (*)()>::MachinePassRegistryListener()
Line
Count
Source
36
97.6k
  MachinePassRegistryListener() = default;
llvm::MachinePassRegistryListener<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::MachinePassRegistryListener()
Line
Count
Source
36
97.6k
  MachinePassRegistryListener() = default;
37
293k
  virtual ~MachinePassRegistryListener() = default;
llvm::MachinePassRegistryListener<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::~MachinePassRegistryListener()
Line
Count
Source
37
97.6k
  virtual ~MachinePassRegistryListener() = default;
llvm::MachinePassRegistryListener<llvm::FunctionPass* (*)()>::~MachinePassRegistryListener()
Line
Count
Source
37
97.6k
  virtual ~MachinePassRegistryListener() = default;
llvm::MachinePassRegistryListener<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::~MachinePassRegistryListener()
Line
Count
Source
37
97.6k
  virtual ~MachinePassRegistryListener() = default;
38
39
  virtual void NotifyAdd(StringRef N, PassCtorTy C, StringRef D) = 0;
40
  virtual void NotifyRemove(StringRef N) = 0;
41
};
42
43
//===----------------------------------------------------------------------===//
44
///
45
/// MachinePassRegistryNode - Machine pass node stored in registration list.
46
///
47
//===----------------------------------------------------------------------===//
48
template <typename PassCtorTy> class MachinePassRegistryNode {
49
private:
50
  MachinePassRegistryNode *Next = nullptr; // Next function pass in list.
51
  StringRef Name;                       // Name of function pass.
52
  StringRef Description;                // Description string.
53
  PassCtorTy Ctor;                      // Pass creator.
54
55
public:
56
  MachinePassRegistryNode(const char *N, const char *D, PassCtorTy C)
57
2.19M
      : Name(N), Description(D), Ctor(C) {}
llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::MachinePassRegistryNode(char const*, char const*, llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*))
Line
Count
Source
57
1.07M
      : Name(N), Description(D), Ctor(C) {}
llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::MachinePassRegistryNode(char const*, char const*, llvm::FunctionPass* (*)())
Line
Count
Source
57
488k
      : Name(N), Description(D), Ctor(C) {}
llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::MachinePassRegistryNode(char const*, char const*, llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level))
Line
Count
Source
57
631k
      : Name(N), Description(D), Ctor(C) {}
58
59
  // Accessors
60
3.79M
  MachinePassRegistryNode *getNext()      const { return Next; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::getNext() const
Line
Count
Source
60
1.75M
  MachinePassRegistryNode *getNext()      const { return Next; }
llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::getNext() const
Line
Count
Source
60
878k
  MachinePassRegistryNode *getNext()      const { return Next; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::getNext() const
Line
Count
Source
60
1.16M
  MachinePassRegistryNode *getNext()      const { return Next; }
61
0
  MachinePassRegistryNode **getNextAddress()    { return &Next; }
Unexecuted instantiation: llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::getNextAddress()
Unexecuted instantiation: llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::getNextAddress()
Unexecuted instantiation: llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::getNextAddress()
62
2.77M
  StringRef getName()                   const { return Name; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::getName() const
Line
Count
Source
62
1.46M
  StringRef getName()                   const { return Name; }
llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::getName() const
Line
Count
Source
62
585k
  StringRef getName()                   const { return Name; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::getName() const
Line
Count
Source
62
729k
  StringRef getName()                   const { return Name; }
63
2.19M
  StringRef getDescription()            const { return Description; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::getDescription() const
Line
Count
Source
63
1.07M
  StringRef getDescription()            const { return Description; }
llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::getDescription() const
Line
Count
Source
63
488k
  StringRef getDescription()            const { return Description; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::getDescription() const
Line
Count
Source
63
631k
  StringRef getDescription()            const { return Description; }
64
2.19M
  PassCtorTy getCtor() const { return Ctor; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::getCtor() const
Line
Count
Source
64
1.07M
  PassCtorTy getCtor() const { return Ctor; }
llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::getCtor() const
Line
Count
Source
64
488k
  PassCtorTy getCtor() const { return Ctor; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::getCtor() const
Line
Count
Source
64
631k
  PassCtorTy getCtor() const { return Ctor; }
65
2.19M
  void setNext(MachinePassRegistryNode *N)      { Next = N; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::setNext(llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>*)
Line
Count
Source
65
1.07M
  void setNext(MachinePassRegistryNode *N)      { Next = N; }
llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::setNext(llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>*)
Line
Count
Source
65
488k
  void setNext(MachinePassRegistryNode *N)      { Next = N; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::setNext(llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>*)
Line
Count
Source
65
631k
  void setNext(MachinePassRegistryNode *N)      { Next = N; }
66
};
67
68
//===----------------------------------------------------------------------===//
69
///
70
/// MachinePassRegistry - Track the registration of machine passes.
71
///
72
//===----------------------------------------------------------------------===//
73
template <typename PassCtorTy> class MachinePassRegistry {
74
private:
75
  MachinePassRegistryNode<PassCtorTy> *List; // List of registry nodes.
76
  PassCtorTy Default;                        // Default function pass creator.
77
  MachinePassRegistryListener<PassCtorTy>
78
      *Listener; // Listener for list adds are removes.
79
80
public:
81
  // NO CONSTRUCTOR - we don't want static constructor ordering to mess
82
  // with the registry.
83
84
  // Accessors.
85
  //
86
293k
  MachinePassRegistryNode<PassCtorTy> *getList() { return List; }
llvm::MachinePassRegistry<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::getList()
Line
Count
Source
86
97.6k
  MachinePassRegistryNode<PassCtorTy> *getList() { return List; }
llvm::MachinePassRegistry<llvm::FunctionPass* (*)()>::getList()
Line
Count
Source
86
97.6k
  MachinePassRegistryNode<PassCtorTy> *getList() { return List; }
llvm::MachinePassRegistry<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::getList()
Line
Count
Source
86
97.6k
  MachinePassRegistryNode<PassCtorTy> *getList() { return List; }
87
68.0k
  PassCtorTy getDefault() { return Default; }
88
33.8k
  void setDefault(PassCtorTy C) { Default = C; }
89
  /// setDefault - Set the default constructor by name.
90
  void setDefault(StringRef Name) {
91
    PassCtorTy Ctor = nullptr;
92
    for (MachinePassRegistryNode<PassCtorTy> *R = getList(); R;
93
         R = R->getNext()) {
94
      if (R->getName() == Name) {
95
        Ctor = R->getCtor();
96
        break;
97
      }
98
    }
99
    assert(Ctor && "Unregistered pass name");
100
    setDefault(Ctor);
101
  }
102
586k
  void setListener(MachinePassRegistryListener<PassCtorTy> *L) { Listener = L; }
llvm::MachinePassRegistry<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::setListener(llvm::MachinePassRegistryListener<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>*)
Line
Count
Source
102
195k
  void setListener(MachinePassRegistryListener<PassCtorTy> *L) { Listener = L; }
llvm::MachinePassRegistry<llvm::FunctionPass* (*)()>::setListener(llvm::MachinePassRegistryListener<llvm::FunctionPass* (*)()>*)
Line
Count
Source
102
195k
  void setListener(MachinePassRegistryListener<PassCtorTy> *L) { Listener = L; }
llvm::MachinePassRegistry<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::setListener(llvm::MachinePassRegistryListener<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>*)
Line
Count
Source
102
195k
  void setListener(MachinePassRegistryListener<PassCtorTy> *L) { Listener = L; }
103
104
  /// Add - Adds a function pass to the registration list.
105
  ///
106
2.19M
  void Add(MachinePassRegistryNode<PassCtorTy> *Node) {
107
2.19M
    Node->setNext(List);
108
2.19M
    List = Node;
109
2.19M
    if (Listener)
110
586k
      Listener->NotifyAdd(Node->getName(), Node->getCtor(),
111
586k
                          Node->getDescription());
112
2.19M
  }
llvm::MachinePassRegistry<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::Add(llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>*)
Line
Count
Source
106
1.07M
  void Add(MachinePassRegistryNode<PassCtorTy> *Node) {
107
1.07M
    Node->setNext(List);
108
1.07M
    List = Node;
109
1.07M
    if (Listener)
110
390k
      Listener->NotifyAdd(Node->getName(), Node->getCtor(),
111
390k
                          Node->getDescription());
112
1.07M
  }
llvm::MachinePassRegistry<llvm::FunctionPass* (*)()>::Add(llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>*)
Line
Count
Source
106
488k
  void Add(MachinePassRegistryNode<PassCtorTy> *Node) {
107
488k
    Node->setNext(List);
108
488k
    List = Node;
109
488k
    if (Listener)
110
97.6k
      Listener->NotifyAdd(Node->getName(), Node->getCtor(),
111
97.6k
                          Node->getDescription());
112
488k
  }
llvm::MachinePassRegistry<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::Add(llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>*)
Line
Count
Source
106
631k
  void Add(MachinePassRegistryNode<PassCtorTy> *Node) {
107
631k
    Node->setNext(List);
108
631k
    List = Node;
109
631k
    if (Listener)
110
97.6k
      Listener->NotifyAdd(Node->getName(), Node->getCtor(),
111
97.6k
                          Node->getDescription());
112
631k
  }
113
114
  /// Remove - Removes a function pass from the registration list.
115
  ///
116
2.19M
  void Remove(MachinePassRegistryNode<PassCtorTy> *Node) {
117
2.19M
    for (MachinePassRegistryNode<PassCtorTy> **I = &List; *I;
118
2.19M
         
I = (*I)->getNextAddress()0
) {
119
2.19M
      if (*I == Node) {
120
2.19M
        if (Listener)
121
586k
          Listener->NotifyRemove(Node->getName());
122
2.19M
        *I = (*I)->getNext();
123
2.19M
        break;
124
2.19M
      }
125
2.19M
    }
126
2.19M
  }
llvm::MachinePassRegistry<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::Remove(llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>*)
Line
Count
Source
116
1.07M
  void Remove(MachinePassRegistryNode<PassCtorTy> *Node) {
117
1.07M
    for (MachinePassRegistryNode<PassCtorTy> **I = &List; *I;
118
1.07M
         
I = (*I)->getNextAddress()0
) {
119
1.07M
      if (*I == Node) {
120
1.07M
        if (Listener)
121
390k
          Listener->NotifyRemove(Node->getName());
122
1.07M
        *I = (*I)->getNext();
123
1.07M
        break;
124
1.07M
      }
125
1.07M
    }
126
1.07M
  }
llvm::MachinePassRegistry<llvm::FunctionPass* (*)()>::Remove(llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>*)
Line
Count
Source
116
488k
  void Remove(MachinePassRegistryNode<PassCtorTy> *Node) {
117
488k
    for (MachinePassRegistryNode<PassCtorTy> **I = &List; *I;
118
488k
         
I = (*I)->getNextAddress()0
) {
119
488k
      if (*I == Node) {
120
488k
        if (Listener)
121
97.6k
          Listener->NotifyRemove(Node->getName());
122
488k
        *I = (*I)->getNext();
123
488k
        break;
124
488k
      }
125
488k
    }
126
488k
  }
llvm::MachinePassRegistry<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::Remove(llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>*)
Line
Count
Source
116
631k
  void Remove(MachinePassRegistryNode<PassCtorTy> *Node) {
117
631k
    for (MachinePassRegistryNode<PassCtorTy> **I = &List; *I;
118
631k
         
I = (*I)->getNextAddress()0
) {
119
631k
      if (*I == Node) {
120
631k
        if (Listener)
121
97.6k
          Listener->NotifyRemove(Node->getName());
122
631k
        *I = (*I)->getNext();
123
631k
        break;
124
631k
      }
125
631k
    }
126
631k
  }
127
};
128
129
//===----------------------------------------------------------------------===//
130
///
131
/// RegisterPassParser class - Handle the addition of new machine passes.
132
///
133
//===----------------------------------------------------------------------===//
134
template <class RegistryClass>
135
class RegisterPassParser
136
    : public MachinePassRegistryListener<
137
          typename RegistryClass::FunctionPassCtor>,
138
      public cl::parser<typename RegistryClass::FunctionPassCtor> {
139
public:
140
  RegisterPassParser(cl::Option &O)
141
293k
      : cl::parser<typename RegistryClass::FunctionPassCtor>(O) {}
llvm::RegisterPassParser<llvm::MachineSchedRegistry>::RegisterPassParser(llvm::cl::Option&)
Line
Count
Source
141
97.6k
      : cl::parser<typename RegistryClass::FunctionPassCtor>(O) {}
llvm::RegisterPassParser<llvm::RegisterRegAlloc>::RegisterPassParser(llvm::cl::Option&)
Line
Count
Source
141
97.6k
      : cl::parser<typename RegistryClass::FunctionPassCtor>(O) {}
llvm::RegisterPassParser<llvm::RegisterScheduler>::RegisterPassParser(llvm::cl::Option&)
Line
Count
Source
141
97.6k
      : cl::parser<typename RegistryClass::FunctionPassCtor>(O) {}
142
293k
  ~RegisterPassParser() override { RegistryClass::setListener(nullptr); }
llvm::RegisterPassParser<llvm::MachineSchedRegistry>::~RegisterPassParser()
Line
Count
Source
142
97.6k
  ~RegisterPassParser() override { RegistryClass::setListener(nullptr); }
llvm::RegisterPassParser<llvm::RegisterRegAlloc>::~RegisterPassParser()
Line
Count
Source
142
97.6k
  ~RegisterPassParser() override { RegistryClass::setListener(nullptr); }
llvm::RegisterPassParser<llvm::RegisterScheduler>::~RegisterPassParser()
Line
Count
Source
142
97.6k
  ~RegisterPassParser() override { RegistryClass::setListener(nullptr); }
143
144
293k
  void initialize() {
145
293k
    cl::parser<typename RegistryClass::FunctionPassCtor>::initialize();
146
293k
147
293k
    // Add existing passes to option.
148
293k
    for (RegistryClass *Node = RegistryClass::getList();
149
1.89M
         Node; 
Node = Node->getNext()1.60M
) {
150
1.60M
      this->addLiteralOption(Node->getName(),
151
1.60M
                      (typename RegistryClass::FunctionPassCtor)Node->getCtor(),
152
1.60M
                             Node->getDescription());
153
1.60M
    }
154
293k
155
293k
    // Make sure we listen for list changes.
156
293k
    RegistryClass::setListener(this);
157
293k
  }
llvm::RegisterPassParser<llvm::MachineSchedRegistry>::initialize()
Line
Count
Source
144
97.6k
  void initialize() {
145
97.6k
    cl::parser<typename RegistryClass::FunctionPassCtor>::initialize();
146
97.6k
147
97.6k
    // Add existing passes to option.
148
97.6k
    for (RegistryClass *Node = RegistryClass::getList();
149
778k
         Node; 
Node = Node->getNext()681k
) {
150
681k
      this->addLiteralOption(Node->getName(),
151
681k
                      (typename RegistryClass::FunctionPassCtor)Node->getCtor(),
152
681k
                             Node->getDescription());
153
681k
    }
154
97.6k
155
97.6k
    // Make sure we listen for list changes.
156
97.6k
    RegistryClass::setListener(this);
157
97.6k
  }
llvm::RegisterPassParser<llvm::RegisterRegAlloc>::initialize()
Line
Count
Source
144
97.6k
  void initialize() {
145
97.6k
    cl::parser<typename RegistryClass::FunctionPassCtor>::initialize();
146
97.6k
147
97.6k
    // Add existing passes to option.
148
97.6k
    for (RegistryClass *Node = RegistryClass::getList();
149
488k
         Node; 
Node = Node->getNext()390k
) {
150
390k
      this->addLiteralOption(Node->getName(),
151
390k
                      (typename RegistryClass::FunctionPassCtor)Node->getCtor(),
152
390k
                             Node->getDescription());
153
390k
    }
154
97.6k
155
97.6k
    // Make sure we listen for list changes.
156
97.6k
    RegistryClass::setListener(this);
157
97.6k
  }
llvm::RegisterPassParser<llvm::RegisterScheduler>::initialize()
Line
Count
Source
144
97.6k
  void initialize() {
145
97.6k
    cl::parser<typename RegistryClass::FunctionPassCtor>::initialize();
146
97.6k
147
97.6k
    // Add existing passes to option.
148
97.6k
    for (RegistryClass *Node = RegistryClass::getList();
149
631k
         Node; 
Node = Node->getNext()533k
) {
150
533k
      this->addLiteralOption(Node->getName(),
151
533k
                      (typename RegistryClass::FunctionPassCtor)Node->getCtor(),
152
533k
                             Node->getDescription());
153
533k
    }
154
97.6k
155
97.6k
    // Make sure we listen for list changes.
156
97.6k
    RegistryClass::setListener(this);
157
97.6k
  }
158
159
  // Implement the MachinePassRegistryListener callbacks.
160
  void NotifyAdd(StringRef N, typename RegistryClass::FunctionPassCtor C,
161
586k
                 StringRef D) override {
162
586k
    this->addLiteralOption(N, C, D);
163
586k
  }
llvm::RegisterPassParser<llvm::MachineSchedRegistry>::NotifyAdd(llvm::StringRef, llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*), llvm::StringRef)
Line
Count
Source
161
390k
                 StringRef D) override {
162
390k
    this->addLiteralOption(N, C, D);
163
390k
  }
llvm::RegisterPassParser<llvm::RegisterRegAlloc>::NotifyAdd(llvm::StringRef, llvm::FunctionPass* (*)(), llvm::StringRef)
Line
Count
Source
161
97.6k
                 StringRef D) override {
162
97.6k
    this->addLiteralOption(N, C, D);
163
97.6k
  }
llvm::RegisterPassParser<llvm::RegisterScheduler>::NotifyAdd(llvm::StringRef, llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level), llvm::StringRef)
Line
Count
Source
161
97.6k
                 StringRef D) override {
162
97.6k
    this->addLiteralOption(N, C, D);
163
97.6k
  }
164
586k
  void NotifyRemove(StringRef N) override {
165
586k
    this->removeLiteralOption(N);
166
586k
  }
llvm::RegisterPassParser<llvm::MachineSchedRegistry>::NotifyRemove(llvm::StringRef)
Line
Count
Source
164
390k
  void NotifyRemove(StringRef N) override {
165
390k
    this->removeLiteralOption(N);
166
390k
  }
llvm::RegisterPassParser<llvm::RegisterRegAlloc>::NotifyRemove(llvm::StringRef)
Line
Count
Source
164
97.6k
  void NotifyRemove(StringRef N) override {
165
97.6k
    this->removeLiteralOption(N);
166
97.6k
  }
llvm::RegisterPassParser<llvm::RegisterScheduler>::NotifyRemove(llvm::StringRef)
Line
Count
Source
164
97.6k
  void NotifyRemove(StringRef N) override {
165
97.6k
    this->removeLiteralOption(N);
166
97.6k
  }
167
};
168
169
} // end namespace llvm
170
171
#endif // LLVM_CODEGEN_MACHINEPASSREGISTRY_H