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)
140 OS << " " << Bank.getEnumeratorName() << " = " << ID++ << ",\n";
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) {
227 for (const auto &RC : Bank.register_classes())
230 OS << "const uint32_t " << Bank.getCoverageArrayName() << "[] = {\n";
246 for (const auto &Bank : Banks) {
248 (TargetName + "::" + Bank.getEnumeratorName()).str();
249 OS << "constexpr RegisterBank " << Bank.getInstanceVarName() << "(/* ID */ "
250 << QualifiedBankID << ", /* Name */ \"" << Bank.getName() << "\", "
251 << "/* CoveredRegClasses */ " << Bank.getCoverageArrayName()
260 for (const auto &Bank : Banks)
261 OS << " &" << TargetName << "::" << Bank.getInstanceVarName() << ",\n";
273 for (const auto &Bank : Banks) {
274 const CodeGenRegisterClass &RC = *Bank.getRCWithLargestRegSize(M);
303 RegisterBank Bank(*V, CGH.getNumModeIds());
306 Bank.getExplicitlySpecifiedRegisterClasses(RegisterClassHierarchy)) {
309 [&Bank](const CodeGenRegisterClass *RC, StringRef Kind) {
312 Bank.addRegisterClass(RC);
317 Banks.push_back(Bank);
320 // Warn about ambiguous MIR caused by register bank/class name clashes.
323 for (const auto &Bank : Banks) {
324 if (Bank.getName().lower() == StringRef(Class.getName()).lower()) {
325 PrintWarning(Bank.getDef().getLoc(), "Register bank names should be "
328 PrintNote(Bank.getDef().getLoc(), "RegisterBank was declared here");
335 emitSourceFileHeader("Register Bank Source Fragments", OS);
351 X("gen-register-bank", "Generate registers bank descriptions");