| 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
|
|
|