[JITLink] Use MapVector to stabilize iteration order
Otherwise LinkGraph::dump output could change (llvm/test/ExecutionEngine/JITLink/x86-64/COFF_pdata_strip.s) when llvm::hash_value(StringRef) changes.
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
|
||||
#include "llvm/ADT/DenseMap.h"
|
||||
#include "llvm/ADT/DenseSet.h"
|
||||
#include "llvm/ADT/MapVector.h"
|
||||
#include "llvm/ADT/FunctionExtras.h"
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
#include "llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h"
|
||||
@@ -847,7 +848,7 @@ private:
|
||||
|
||||
class LinkGraph {
|
||||
private:
|
||||
using SectionMap = DenseMap<StringRef, std::unique_ptr<Section>>;
|
||||
using SectionMap = MapVector<StringRef, std::unique_ptr<Section>>;
|
||||
using ExternalSymbolMap = StringMap<Symbol *>;
|
||||
using AbsoluteSymbolSet = DenseSet<Symbol *>;
|
||||
using BlockSet = DenseSet<Block *>;
|
||||
@@ -1543,7 +1544,7 @@ private:
|
||||
unsigned PointerSize;
|
||||
llvm::endianness Endianness;
|
||||
GetEdgeKindNameFunction GetEdgeKindName = nullptr;
|
||||
DenseMap<StringRef, std::unique_ptr<Section>> Sections;
|
||||
MapVector<StringRef, std::unique_ptr<Section>> Sections;
|
||||
ExternalSymbolMap ExternalSymbols;
|
||||
AbsoluteSymbolSet AbsoluteSymbols;
|
||||
orc::shared::AllocActions AAs;
|
||||
|
||||
Reference in New Issue
Block a user