diff options
author | Fangrui Song <i@maskray.me> | 2024-06-19 17:51:32 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2024-06-19 17:51:32 -0700 |
commit | f8f4235612b9668bbcbb6a58634fcb756794045e (patch) | |
tree | cda02fc55b98d67539ed8eaca8b5e8dba4d282c4 | |
parent | fa00e8bb6a14d39e273f85a77308923ad28329f0 (diff) | |
download | llvm-f8f4235612b9668bbcbb6a58634fcb756794045e.zip llvm-f8f4235612b9668bbcbb6a58634fcb756794045e.tar.gz llvm-f8f4235612b9668bbcbb6a58634fcb756794045e.tar.bz2 |
[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.
-rw-r--r-- | llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h b/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h index 4ce0c8d..8fe53760 100644 --- a/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h +++ b/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h @@ -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; |