Calling TLI->getNumRegisters creates a circular dependency when building LLVM using...
authorNadav Rotem <nrotem@apple.com>
Mon, 29 Oct 2012 05:28:35 +0000 (05:28 +0000)
committerNadav Rotem <nrotem@apple.com>
Mon, 29 Oct 2012 05:28:35 +0000 (05:28 +0000)
Get the number of registers by calling getTypeLegalizationCost.

PR14199.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166911 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/TargetTransformImpl.cpp

index d3ab1059882e28fb7fdb8c27756b9bb4c40b067f..d3823a65fe3d3b12e92fc4b423bb3bf12003af43 100644 (file)
@@ -270,7 +270,7 @@ unsigned VectorTargetTransformImpl::getCmpSelInstrCost(unsigned Opcode,
     return getScalarizationOverhead(ValTy, true, false) + Num * Cost;
   }
 
-  // Unknown scalar opcode. 
+  // Unknown scalar opcode.
   return 1;
 }
 
@@ -300,6 +300,8 @@ VectorTargetTransformImpl::getMemoryOpCost(unsigned Opcode, Type *Src,
 
 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;
 }