Index: src/IceTargetLoweringARM32.cpp |
diff --git a/src/IceTargetLoweringARM32.cpp b/src/IceTargetLoweringARM32.cpp |
index 0568d051a5c679511e8cd319538723980f47c62d..0761f0297dada3a287a8742875b1474bb3ea4fb1 100644 |
--- a/src/IceTargetLoweringARM32.cpp |
+++ b/src/IceTargetLoweringARM32.cpp |
@@ -160,9 +160,9 @@ TargetARM32Features::TargetARM32Features(const ClFlags &Flags) { |
} |
TargetARM32::TargetARM32(Cfg *Func) |
- : TargetLowering(Func), CPUFeatures(Func->getContext()->getFlags()) { |
- // TODO: Don't initialize IntegerRegisters and friends every time. Instead, |
- // initialize in some sort of static initializer for the class. |
+ : TargetLowering(Func), CPUFeatures(Func->getContext()->getFlags()) {} |
+ |
+void TargetARM32::staticInit() { |
// Limit this size (or do all bitsets need to be the same width)??? |
llvm::SmallBitVector IntegerRegisters(RegARM32::Reg_NUM); |
llvm::SmallBitVector I64PairRegisters(RegARM32::Reg_NUM); |
@@ -4268,4 +4268,8 @@ void TargetHeaderARM32::lower() { |
Str << ".eabi_attribute 14, 3 @ Tag_ABI_PCS_R9_use: Not used\n"; |
} |
+llvm::SmallBitVector TargetARM32::TypeToRegisterSet[IceType_NUM]; |
+llvm::SmallBitVector TargetARM32::RegisterAliases[RegARM32::Reg_NUM]; |
+llvm::SmallBitVector TargetARM32::ScratchRegs; |
+ |
} // end of namespace Ice |