Coverage Report

Created: 2019-07-24 05:18

/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
309k
  MachinePassRegistryListener() = default;
llvm::MachinePassRegistryListener<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::MachinePassRegistryListener()
Line
Count
Source
36
103k
  MachinePassRegistryListener() = default;
llvm::MachinePassRegistryListener<llvm::FunctionPass* (*)()>::MachinePassRegistryListener()
Line
Count
Source
36
103k
  MachinePassRegistryListener() = default;
llvm::MachinePassRegistryListener<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::MachinePassRegistryListener()
Line
Count
Source
36
103k
  MachinePassRegistryListener() = default;
37
309k
  virtual ~MachinePassRegistryListener() = default;
llvm::MachinePassRegistryListener<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::~MachinePassRegistryListener()
Line
Count
Source
37
103k
  virtual ~MachinePassRegistryListener() = default;
llvm::MachinePassRegistryListener<llvm::FunctionPass* (*)()>::~MachinePassRegistryListener()
Line
Count
Source
37
103k
  virtual ~MachinePassRegistryListener() = default;
llvm::MachinePassRegistryListener<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::~MachinePassRegistryListener()
Line
Count
Source
37
103k
  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.52M
      : 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.33M
      : Name(N), Description(D), Ctor(C) {}
llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::MachinePassRegistryNode(char const*, char const*, llvm::FunctionPass* (*)())
Line
Count
Source
57
515k
      : 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
669k
      : Name(N), Description(D), Ctor(C) {}
58
59
  // Accessors
60
4.42M
  MachinePassRegistryNode *getNext()      const { return Next; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::getNext() const
Line
Count
Source
60
1.23M
  MachinePassRegistryNode *getNext()      const { return Next; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::getNext() const
Line
Count
Source
60
2.26M
  MachinePassRegistryNode *getNext()      const { return Next; }
llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::getNext() const
Line
Count
Source
60
928k
  MachinePassRegistryNode *getNext()      const { return Next; }
61
0
  MachinePassRegistryNode **getNextAddress()    { return &Next; }
Unexecuted instantiation: llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::getNextAddress()
Unexecuted instantiation: llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::getNextAddress()
Unexecuted instantiation: llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::getNextAddress()
62
3.14M
  StringRef getName()                   const { return Name; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::getName() const
Line
Count
Source
62
772k
  StringRef getName()                   const { return Name; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::getName() const
Line
Count
Source
62
1.75M
  StringRef getName()                   const { return Name; }
llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::getName() const
Line
Count
Source
62
618k
  StringRef getName()                   const { return Name; }
63
2.52M
  StringRef getDescription()            const { return Description; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::getDescription() const
Line
Count
Source
63
669k
  StringRef getDescription()            const { return Description; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::getDescription() const
Line
Count
Source
63
1.33M
  StringRef getDescription()            const { return Description; }
llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::getDescription() const
Line
Count
Source
63
515k
  StringRef getDescription()            const { return Description; }
64
2.52M
  PassCtorTy getCtor() const { return Ctor; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::getCtor() const
Line
Count
Source
64
669k
  PassCtorTy getCtor() const { return Ctor; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::getCtor() const
Line
Count
Source
64
1.33M
  PassCtorTy getCtor() const { return Ctor; }
llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::getCtor() const
Line
Count
Source
64
515k
  PassCtorTy getCtor() const { return Ctor; }
65
2.52M
  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
669k
  void setNext(MachinePassRegistryNode *N)      { Next = N; }
llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::setNext(llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>*)
Line
Count
Source
65
1.33M
  void setNext(MachinePassRegistryNode *N)      { Next = N; }
llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>::setNext(llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>*)
Line
Count
Source
65
515k
  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
309k
  MachinePassRegistryNode<PassCtorTy> *getList() { return List; }
llvm::MachinePassRegistry<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::getList()
Line
Count
Source
86
103k
  MachinePassRegistryNode<PassCtorTy> *getList() { return List; }
llvm::MachinePassRegistry<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::getList()
Line
Count
Source
86
103k
  MachinePassRegistryNode<PassCtorTy> *getList() { return List; }
llvm::MachinePassRegistry<llvm::FunctionPass* (*)()>::getList()
Line
Count
Source
86
103k
  MachinePassRegistryNode<PassCtorTy> *getList() { return List; }
87
70.9k
  PassCtorTy getDefault() { return Default; }
88
35.3k
  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
619k
  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
206k
  void setListener(MachinePassRegistryListener<PassCtorTy> *L) { Listener = L; }
llvm::MachinePassRegistry<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::setListener(llvm::MachinePassRegistryListener<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>*)
Line
Count
Source
102
206k
  void setListener(MachinePassRegistryListener<PassCtorTy> *L) { Listener = L; }
llvm::MachinePassRegistry<llvm::FunctionPass* (*)()>::setListener(llvm::MachinePassRegistryListener<llvm::FunctionPass* (*)()>*)
Line
Count
Source
102
206k
  void setListener(MachinePassRegistryListener<PassCtorTy> *L) { Listener = L; }
103
104
  /// Add - Adds a function pass to the registration list.
105
  ///
106
2.52M
  void Add(MachinePassRegistryNode<PassCtorTy> *Node) {
107
2.52M
    Node->setNext(List);
108
2.52M
    List = Node;
109
2.52M
    if (Listener)
110
619k
      Listener->NotifyAdd(Node->getName(), Node->getCtor(),
111
619k
                          Node->getDescription());
112
2.52M
  }
llvm::MachinePassRegistry<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::Add(llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>*)
Line
Count
Source
106
669k
  void Add(MachinePassRegistryNode<PassCtorTy> *Node) {
107
669k
    Node->setNext(List);
108
669k
    List = Node;
109
669k
    if (Listener)
110
103k
      Listener->NotifyAdd(Node->getName(), Node->getCtor(),
111
103k
                          Node->getDescription());
112
669k
  }
llvm::MachinePassRegistry<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::Add(llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>*)
Line
Count
Source
106
1.33M
  void Add(MachinePassRegistryNode<PassCtorTy> *Node) {
107
1.33M
    Node->setNext(List);
108
1.33M
    List = Node;
109
1.33M
    if (Listener)
110
412k
      Listener->NotifyAdd(Node->getName(), Node->getCtor(),
111
412k
                          Node->getDescription());
112
1.33M
  }
llvm::MachinePassRegistry<llvm::FunctionPass* (*)()>::Add(llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>*)
Line
Count
Source
106
515k
  void Add(MachinePassRegistryNode<PassCtorTy> *Node) {
107
515k
    Node->setNext(List);
108
515k
    List = Node;
109
515k
    if (Listener)
110
103k
      Listener->NotifyAdd(Node->getName(), Node->getCtor(),
111
103k
                          Node->getDescription());
112
515k
  }
113
114
  /// Remove - Removes a function pass from the registration list.
115
  ///
116
2.52M
  void Remove(MachinePassRegistryNode<PassCtorTy> *Node) {
117
2.52M
    for (MachinePassRegistryNode<PassCtorTy> **I = &List; *I;
118
2.52M
         
I = (*I)->getNextAddress()0
) {
119
2.52M
      if (*I == Node) {
120
2.52M
        if (Listener)
121
619k
          Listener->NotifyRemove(Node->getName());
122
2.52M
        *I = (*I)->getNext();
123
2.52M
        break;
124
2.52M
      }
125
2.52M
    }
126
2.52M
  }
llvm::MachinePassRegistry<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>::Remove(llvm::MachinePassRegistryNode<llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level)>*)
Line
Count
Source
116
669k
  void Remove(MachinePassRegistryNode<PassCtorTy> *Node) {
117
669k
    for (MachinePassRegistryNode<PassCtorTy> **I = &List; *I;
118
669k
         
I = (*I)->getNextAddress()0
) {
119
669k
      if (*I == Node) {
120
669k
        if (Listener)
121
103k
          Listener->NotifyRemove(Node->getName());
122
669k
        *I = (*I)->getNext();
123
669k
        break;
124
669k
      }
125
669k
    }
126
669k
  }
llvm::MachinePassRegistry<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::Remove(llvm::MachinePassRegistryNode<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>*)
Line
Count
Source
116
1.33M
  void Remove(MachinePassRegistryNode<PassCtorTy> *Node) {
117
1.33M
    for (MachinePassRegistryNode<PassCtorTy> **I = &List; *I;
118
1.33M
         
I = (*I)->getNextAddress()0
) {
119
1.33M
      if (*I == Node) {
120
1.33M
        if (Listener)
121
412k
          Listener->NotifyRemove(Node->getName());
122
1.33M
        *I = (*I)->getNext();
123
1.33M
        break;
124
1.33M
      }
125
1.33M
    }
126
1.33M
  }
llvm::MachinePassRegistry<llvm::FunctionPass* (*)()>::Remove(llvm::MachinePassRegistryNode<llvm::FunctionPass* (*)()>*)
Line
Count
Source
116
515k
  void Remove(MachinePassRegistryNode<PassCtorTy> *Node) {
117
515k
    for (MachinePassRegistryNode<PassCtorTy> **I = &List; *I;
118
515k
         
I = (*I)->getNextAddress()0
) {
119
515k
      if (*I == Node) {
120
515k
        if (Listener)
121
103k
          Listener->NotifyRemove(Node->getName());
122
515k
        *I = (*I)->getNext();
123
515k
        break;
124
515k
      }
125
515k
    }
126
515k
  }
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
309k
      : cl::parser<typename RegistryClass::FunctionPassCtor>(O) {}
llvm::RegisterPassParser<llvm::MachineSchedRegistry>::RegisterPassParser(llvm::cl::Option&)
Line
Count
Source
141
103k
      : cl::parser<typename RegistryClass::FunctionPassCtor>(O) {}
llvm::RegisterPassParser<llvm::RegisterRegAlloc>::RegisterPassParser(llvm::cl::Option&)
Line
Count
Source
141
103k
      : cl::parser<typename RegistryClass::FunctionPassCtor>(O) {}
llvm::RegisterPassParser<llvm::RegisterScheduler>::RegisterPassParser(llvm::cl::Option&)
Line
Count
Source
141
103k
      : cl::parser<typename RegistryClass::FunctionPassCtor>(O) {}
142
309k
  ~RegisterPassParser() override { RegistryClass::setListener(nullptr); }
llvm::RegisterPassParser<llvm::MachineSchedRegistry>::~RegisterPassParser()
Line
Count
Source
142
103k
  ~RegisterPassParser() override { RegistryClass::setListener(nullptr); }
llvm::RegisterPassParser<llvm::RegisterRegAlloc>::~RegisterPassParser()
Line
Count
Source
142
103k
  ~RegisterPassParser() override { RegistryClass::setListener(nullptr); }
llvm::RegisterPassParser<llvm::RegisterScheduler>::~RegisterPassParser()
Line
Count
Source
142
103k
  ~RegisterPassParser() override { RegistryClass::setListener(nullptr); }
143
144
309k
  void initialize() {
145
309k
    cl::parser<typename RegistryClass::FunctionPassCtor>::initialize();
146
309k
147
309k
    // Add existing passes to option.
148
309k
    for (RegistryClass *Node = RegistryClass::getList();
149
2.21M
         Node; 
Node = Node->getNext()1.90M
) {
150
1.90M
      this->addLiteralOption(Node->getName(),
151
1.90M
                      (typename RegistryClass::FunctionPassCtor)Node->getCtor(),
152
1.90M
                             Node->getDescription());
153
1.90M
    }
154
309k
155
309k
    // Make sure we listen for list changes.
156
309k
    RegistryClass::setListener(this);
157
309k
  }
llvm::RegisterPassParser<llvm::MachineSchedRegistry>::initialize()
Line
Count
Source
144
103k
  void initialize() {
145
103k
    cl::parser<typename RegistryClass::FunctionPassCtor>::initialize();
146
103k
147
103k
    // Add existing passes to option.
148
103k
    for (RegistryClass *Node = RegistryClass::getList();
149
1.02M
         Node; 
Node = Node->getNext()925k
) {
150
925k
      this->addLiteralOption(Node->getName(),
151
925k
                      (typename RegistryClass::FunctionPassCtor)Node->getCtor(),
152
925k
                             Node->getDescription());
153
925k
    }
154
103k
155
103k
    // Make sure we listen for list changes.
156
103k
    RegistryClass::setListener(this);
157
103k
  }
llvm::RegisterPassParser<llvm::RegisterRegAlloc>::initialize()
Line
Count
Source
144
103k
  void initialize() {
145
103k
    cl::parser<typename RegistryClass::FunctionPassCtor>::initialize();
146
103k
147
103k
    // Add existing passes to option.
148
103k
    for (RegistryClass *Node = RegistryClass::getList();
149
515k
         Node; 
Node = Node->getNext()412k
) {
150
412k
      this->addLiteralOption(Node->getName(),
151
412k
                      (typename RegistryClass::FunctionPassCtor)Node->getCtor(),
152
412k
                             Node->getDescription());
153
412k
    }
154
103k
155
103k
    // Make sure we listen for list changes.
156
103k
    RegistryClass::setListener(this);
157
103k
  }
llvm::RegisterPassParser<llvm::RegisterScheduler>::initialize()
Line
Count
Source
144
103k
  void initialize() {
145
103k
    cl::parser<typename RegistryClass::FunctionPassCtor>::initialize();
146
103k
147
103k
    // Add existing passes to option.
148
103k
    for (RegistryClass *Node = RegistryClass::getList();
149
669k
         Node; 
Node = Node->getNext()566k
) {
150
566k
      this->addLiteralOption(Node->getName(),
151
566k
                      (typename RegistryClass::FunctionPassCtor)Node->getCtor(),
152
566k
                             Node->getDescription());
153
566k
    }
154
103k
155
103k
    // Make sure we listen for list changes.
156
103k
    RegistryClass::setListener(this);
157
103k
  }
158
159
  // Implement the MachinePassRegistryListener callbacks.
160
  void NotifyAdd(StringRef N, typename RegistryClass::FunctionPassCtor C,
161
619k
                 StringRef D) override {
162
619k
    this->addLiteralOption(N, C, D);
163
619k
  }
llvm::RegisterPassParser<llvm::MachineSchedRegistry>::NotifyAdd(llvm::StringRef, llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*), llvm::StringRef)
Line
Count
Source
161
412k
                 StringRef D) override {
162
412k
    this->addLiteralOption(N, C, D);
163
412k
  }
llvm::RegisterPassParser<llvm::RegisterRegAlloc>::NotifyAdd(llvm::StringRef, llvm::FunctionPass* (*)(), llvm::StringRef)
Line
Count
Source
161
103k
                 StringRef D) override {
162
103k
    this->addLiteralOption(N, C, D);
163
103k
  }
llvm::RegisterPassParser<llvm::RegisterScheduler>::NotifyAdd(llvm::StringRef, llvm::ScheduleDAGSDNodes* (*)(llvm::SelectionDAGISel*, llvm::CodeGenOpt::Level), llvm::StringRef)
Line
Count
Source
161
103k
                 StringRef D) override {
162
103k
    this->addLiteralOption(N, C, D);
163
103k
  }
164
619k
  void NotifyRemove(StringRef N) override {
165
619k
    this->removeLiteralOption(N);
166
619k
  }
llvm::RegisterPassParser<llvm::MachineSchedRegistry>::NotifyRemove(llvm::StringRef)
Line
Count
Source
164
412k
  void NotifyRemove(StringRef N) override {
165
412k
    this->removeLiteralOption(N);
166
412k
  }
llvm::RegisterPassParser<llvm::RegisterRegAlloc>::NotifyRemove(llvm::StringRef)
Line
Count
Source
164
103k
  void NotifyRemove(StringRef N) override {
165
103k
    this->removeLiteralOption(N);
166
103k
  }
llvm::RegisterPassParser<llvm::RegisterScheduler>::NotifyRemove(llvm::StringRef)
Line
Count
Source
164
103k
  void NotifyRemove(StringRef N) override {
165
103k
    this->removeLiteralOption(N);
166
103k
  }
167
};
168
169
} // end namespace llvm
170
171
#endif // LLVM_CODEGEN_MACHINEPASSREGISTRY_H