return CastAttr;
}
-template <typename T> void sortTargetValues(std::vector<T> &TargValues) {
- llvm::sort(TargValues, [](const auto &ValA, const auto &ValB) {
- return ValA.getOrder() < ValB.getOrder();
- });
- llvm::sort(TargValues, [](const auto &ValA, const auto &ValB) {
- return ValA.getOrder() == ValB.getOrder() && ValA.getVal() < ValB.getVal();
- });
-}
-
template <typename T>
void printVecVal(std::string Indent, const DiffOutput &Attr, raw_ostream &OS) {
if (Attr.Values.empty())
});
for (auto *Vec : SortedAttrs) {
- sortTargetValues<DiffScalarVal<StringRef, AD_Diff_Scalar_Str>>(
- Vec->TargValues);
+ llvm::sort(Vec->TargValues, [](const auto &ValA, const auto &ValB) {
+ return ValA.getOrder() == ValB.getOrder() &&
+ ValA.getVal() < ValB.getVal();
+ });
OS << Indent << "\t" << getTargetTripleName(Vec->Targ) << "\n";
for (auto &Item : Vec->TargValues)
Item.print(OS, Indent);
return ValA->Targ < ValB->Targ;
});
for (auto *SymVec : SortedAttrs) {
- sortTargetValues<SymScalar>(SymVec->TargValues);
+ llvm::sort(SymVec->TargValues, [](const auto &ValA, const auto &ValB) {
+ return ValA.getOrder() == ValB.getOrder() &&
+ ValA.getVal() < ValB.getVal();
+ });
OS << Indent << "\t" << getTargetTripleName(SymVec->Targ) << "\n";
for (auto &Item : SymVec->TargValues)
Item.print(OS, Indent, SymVec->Targ);