Lines Matching defs:SourceAggregate
958 auto Describe = [](std::optional<Value *> SourceAggregate) {
959 if (SourceAggregate == NotFound)
961 if (*SourceAggregate == FoundMismatch)
990 Value *SourceAggregate = EVI->getAggregateOperand();
993 if (SourceAggregate->getType() != AggTy)
999 return SourceAggregate; // AggregateDescription::Found
1008 std::optional<Value *> SourceAggregate;
1011 assert(Describe(SourceAggregate) != AggregateDescription::FoundMismatch &&
1012 "We don't store nullptr in SourceAggregate!");
1013 assert((Describe(SourceAggregate) == AggregateDescription::Found) ==
1015 "SourceAggregate should be valid after the first element,");
1033 switch (Describe(SourceAggregate)) {
1036 SourceAggregate = SourceAggregateForElement; // Record the aggregate!
1041 if (*SourceAggregateForElement != *SourceAggregate)
1049 assert(Describe(SourceAggregate) == AggregateDescription::Found &&
1051 return *SourceAggregate;
1054 std::optional<Value *> SourceAggregate;
1057 SourceAggregate = FindCommonSourceAggregate(/*UseBB=*/std::nullopt,
1059 if (Describe(SourceAggregate) != AggregateDescription::NotFound) {
1060 if (Describe(SourceAggregate) == AggregateDescription::FoundMismatch)
1063 return replaceInstUsesWith(OrigIVI, *SourceAggregate);
1126 SourceAggregate = FindCommonSourceAggregate(UseBB, Pred);
1127 if (Describe(SourceAggregate) == AggregateDescription::Found) {
1129 IV.first->second = *SourceAggregate;