diff --git a/include/revng-c/DataLayoutAnalysis/DLATypeSystem.h b/include/revng-c/DataLayoutAnalysis/DLATypeSystem.h index b70a76176..d9a19dbd2 100644 --- a/include/revng-c/DataLayoutAnalysis/DLATypeSystem.h +++ b/include/revng-c/DataLayoutAnalysis/DLATypeSystem.h @@ -14,6 +14,7 @@ #include #include +#include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/GraphTraits.h" #include "llvm/ADT/IntEqClasses.h" #include "llvm/ADT/SmallSet.h" @@ -332,7 +333,7 @@ public: } public: - void mergeNodes(const std::vector &ToMerge); + void mergeNodes(llvm::ArrayRef ToMerge); void removeNode(LayoutTypeSystemNode *N); diff --git a/lib/DataLayoutAnalysis/DLATypeSystem.cpp b/lib/DataLayoutAnalysis/DLATypeSystem.cpp index 3ec4c8583..704fbc14b 100644 --- a/lib/DataLayoutAnalysis/DLATypeSystem.cpp +++ b/lib/DataLayoutAnalysis/DLATypeSystem.cpp @@ -5,6 +5,7 @@ #include #include +#include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/SCCIterator.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/SmallString.h" @@ -281,10 +282,13 @@ static void fixPredSucc(LayoutTypeSystemNode *From, static Logger<> MergeLog("dla-merge-nodes"); -using LayoutTypeSystemNodePtrVec = std::vector; +void LayoutTypeSystem::mergeNodes(llvm::ArrayRef + ToMerge) { + revng_assert(ToMerge.size() > 0ULL); + // If we're merging just one node there's nothing to do. + if (ToMerge.size() <= 1ULL) + return; -void LayoutTypeSystem::mergeNodes(const LayoutTypeSystemNodePtrVec &ToMerge) { - revng_assert(ToMerge.size() > 1ULL); LayoutTypeSystemNode *Into = ToMerge[0]; const unsigned IntoID = Into->ID;