Lines Matching full:bank

1 //===- RegisterBankEmitter.cpp - Generate a Register Bank Desc. -*- C++ -*-===//
10 // register bank for a code generator.
23 #define DEBUG_TYPE "register-bank-emitter"
30 /// A vector of register classes that are included in the register bank.
36 /// The register classes that are covered by the register bank.
46 /// Get the human-readable name for the bank.
73 /// Add a register class to the bank without duplicates.
139 for (const auto &Bank : Banks) in emitHeader() local
140 OS << " " << Bank.getEnumeratorName() << " = " << ID++ << ",\n"; in emitHeader()
159 /// Visit each register class belonging to the given register bank.
161 /// A class belongs to the bank iff any of these apply:
223 for (const auto &Bank : Banks) { in emitBaseClassImplementation() local
227 for (const auto &RC : Bank.register_classes()) in emitBaseClassImplementation()
230 OS << "const uint32_t " << Bank.getCoverageArrayName() << "[] = {\n"; in emitBaseClassImplementation()
246 for (const auto &Bank : Banks) { in emitBaseClassImplementation() local
248 (TargetName + "::" + Bank.getEnumeratorName()).str(); in emitBaseClassImplementation()
249 OS << "constexpr RegisterBank " << Bank.getInstanceVarName() << "(/* ID */ " in emitBaseClassImplementation()
250 << QualifiedBankID << ", /* Name */ \"" << Bank.getName() << "\", " in emitBaseClassImplementation()
251 << "/* CoveredRegClasses */ " << Bank.getCoverageArrayName() in emitBaseClassImplementation()
260 for (const auto &Bank : Banks) in emitBaseClassImplementation() local
261 OS << " &" << TargetName << "::" << Bank.getInstanceVarName() << ",\n"; in emitBaseClassImplementation()
273 for (const auto &Bank : Banks) { in emitBaseClassImplementation() local
274 const CodeGenRegisterClass &RC = *Bank.getRCWithLargestRegSize(M); in emitBaseClassImplementation()
303 RegisterBank Bank(*V, CGH.getNumModeIds()); in run() local
306 Bank.getExplicitlySpecifiedRegisterClasses(RegisterClassHierarchy)) { in run()
309 [&Bank](const CodeGenRegisterClass *RC, StringRef Kind) { in run()
312 Bank.addRegisterClass(RC); in run()
317 Banks.push_back(Bank); in run()
320 // Warn about ambiguous MIR caused by register bank/class name clashes. in run()
323 for (const auto &Bank : Banks) { in run() local
324 if (Bank.getName().lower() == StringRef(Class.getName()).lower()) { in run()
325 PrintWarning(Bank.getDef().getLoc(), "Register bank names should be " in run()
328 PrintNote(Bank.getDef().getLoc(), "RegisterBank was declared here"); in run()
335 emitSourceFileHeader("Register Bank Source Fragments", OS); in run()
351 X("gen-register-bank", "Generate registers bank descriptions");