Skip to content

Commit f8f4235

Browse files
committed
[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.
1 parent fa00e8b commit f8f4235

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
#include "llvm/ADT/DenseMap.h"
1717
#include "llvm/ADT/DenseSet.h"
18+
#include "llvm/ADT/MapVector.h"
1819
#include "llvm/ADT/FunctionExtras.h"
1920
#include "llvm/ADT/STLExtras.h"
2021
#include "llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h"
@@ -847,7 +848,7 @@ class SectionRange {
847848

848849
class LinkGraph {
849850
private:
850-
using SectionMap = DenseMap<StringRef, std::unique_ptr<Section>>;
851+
using SectionMap = MapVector<StringRef, std::unique_ptr<Section>>;
851852
using ExternalSymbolMap = StringMap<Symbol *>;
852853
using AbsoluteSymbolSet = DenseSet<Symbol *>;
853854
using BlockSet = DenseSet<Block *>;
@@ -1543,7 +1544,7 @@ class LinkGraph {
15431544
unsigned PointerSize;
15441545
llvm::endianness Endianness;
15451546
GetEdgeKindNameFunction GetEdgeKindName = nullptr;
1546-
DenseMap<StringRef, std::unique_ptr<Section>> Sections;
1547+
MapVector<StringRef, std::unique_ptr<Section>> Sections;
15471548
ExternalSymbolMap ExternalSymbols;
15481549
AbsoluteSymbolSet AbsoluteSymbols;
15491550
orc::shared::AllocActions AAs;

0 commit comments

Comments
 (0)