Lines Matching refs:SubTypes
412 /// @param SubTypes List of the partial components making up the type from
414 /// represented is SubTypes.back()->getTypeAtIndex(Path.back() - 1).
417 /// (SubTypes[0]) to the leaf node currently represented.
421 /// false. SubTypes.back()->getTypeAtIndex(Path.back()) is either an empty
423 static bool advanceToNextLeafType(SmallVectorImpl<Type *> &SubTypes,
427 while (!Path.empty() && !indexReallyValid(SubTypes.back(), Path.back() + 1)) {
429 SubTypes.pop_back();
440 ExtractValueInst::getIndexedType(SubTypes.back(), Path.back());
445 SubTypes.push_back(DeeperType);
462 /// Path as [1, 1] and SubTypes as [Next, {{}, i32, {}}] to represent the first
464 static bool firstRealType(Type *Next, SmallVectorImpl<Type *> &SubTypes,
470 SubTypes.push_back(Next);
482 while (ExtractValueInst::getIndexedType(SubTypes.back(), Path.back())
484 if (!advanceToNextLeafType(SubTypes, Path))
493 static bool nextRealType(SmallVectorImpl<Type *> &SubTypes,
496 if (!advanceToNextLeafType(SubTypes, Path))
500 } while (ExtractValueInst::getIndexedType(SubTypes.back(), Path.back())