Calling TLI->getNumRegisters creates a circular dependency when building LLVM using cmake.
Get the number of registers by calling getTypeLegalizationCost.
PR14199.
llvm-svn: 166911
diff --git a/llvm/lib/Target/TargetTransformImpl.cpp b/llvm/lib/Target/TargetTransformImpl.cpp
index d3ab105..d3823a6 100644
--- a/llvm/lib/Target/TargetTransformImpl.cpp
+++ b/llvm/lib/Target/TargetTransformImpl.cpp
@@ -270,7 +270,7 @@
return getScalarizationOverhead(ValTy, true, false) + Num * Cost;
}
- // Unknown scalar opcode.
+ // Unknown scalar opcode.
return 1;
}
@@ -300,6 +300,8 @@
unsigned
VectorTargetTransformImpl::getNumberOfParts(Type *Tp) const {
- return TLI->getNumRegisters(Tp->getContext(), TLI->getValueType(Tp));
+ std::pair<unsigned, EVT> LT =
+ getTypeLegalizationCost(Tp->getContext(), TLI->getValueType(Tp));
+ return LT.first;
}