SILValue SROAMemoryUseAnalyzer::createAgg(SILBuilder &B, SILLocation Loc, SILType Ty, ArrayRef<SILValue> Elements) { if (TT) return B.createTuple(Loc, Ty, Elements); assert(SD && "SD must not be null here since it or TT must be set to call" " this method."); return B.createStruct(Loc, Ty, Elements); }
NullablePtr<SILInstruction> Projection:: createAggFromFirstLevelProjections(SILBuilder &B, SILLocation Loc, SILType BaseType, llvm::SmallVectorImpl<SILValue> &Values) { if (BaseType.getStructOrBoundGenericStruct()) { return B.createStruct(Loc, BaseType, Values); } if (BaseType.is<TupleType>()) { return B.createTuple(Loc, BaseType, Values); } return nullptr; }