Skip to content

Commit 1021404

Browse files
authored
[GISel] Make RegBank constructor constexpr. NFC (#71109)
RegBanks are constructed as global objects. Making the constructor constexpr helps the compiler construct it without a global constructor. clang's optimizer seems to figure this out on its own, but at least gcc 8 does not.
1 parent 308f58c commit 1021404

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

llvm/include/llvm/CodeGen/RegisterBank.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ class RegisterBank {
3636
friend RegisterBankInfo;
3737

3838
public:
39-
RegisterBank(unsigned ID, const char *Name, const uint32_t *CoveredClasses,
40-
unsigned NumRegClasses)
39+
constexpr RegisterBank(unsigned ID, const char *Name,
40+
const uint32_t *CoveredClasses, unsigned NumRegClasses)
4141
: ID(ID), NumRegClasses(NumRegClasses), Name(Name),
4242
CoveredClasses(CoveredClasses) {}
4343

llvm/utils/TableGen/RegisterBankEmitter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ void RegisterBankEmitter::emitBaseClassImplementation(
244244
for (const auto &Bank : Banks) {
245245
std::string QualifiedBankID =
246246
(TargetName + "::" + Bank.getEnumeratorName()).str();
247-
OS << "const RegisterBank " << Bank.getInstanceVarName() << "(/* ID */ "
247+
OS << "constexpr RegisterBank " << Bank.getInstanceVarName() << "(/* ID */ "
248248
<< QualifiedBankID << ", /* Name */ \"" << Bank.getName() << "\", "
249249
<< "/* CoveredRegClasses */ " << Bank.getCoverageArrayName()
250250
<< ", /* NumRegClasses */ "

0 commit comments

Comments
 (0)