Skip to content

Commit

Permalink
[WebAssembly] Use DenseMapInfo traits from LLVM repo. NFC
Browse files Browse the repository at this point in the history
Differential Revision: https://reviews.llvm.org/D44150

llvm-svn: 327527
  • Loading branch information
NWilson committed Mar 14, 2018
1 parent 48d6dbe commit 3e3f5fb
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 47 deletions.
26 changes: 2 additions & 24 deletions lld/wasm/Writer.cpp
Expand Up @@ -21,6 +21,7 @@
#include "lld/Common/Threads.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/BinaryFormat/Wasm.h"
#include "llvm/Object/WasmTraits.h"
#include "llvm/Support/FileOutputBuffer.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/FormatVariadic.h"
Expand All @@ -41,29 +42,6 @@ static constexpr int kInitialTableOffset = 1;

namespace {

// Traits for using WasmSignature in a DenseMap.
struct WasmSignatureDenseMapInfo {
static WasmSignature getEmptyKey() {
WasmSignature Sig;
Sig.ReturnType = 1;
return Sig;
}
static WasmSignature getTombstoneKey() {
WasmSignature Sig;
Sig.ReturnType = 2;
return Sig;
}
static unsigned getHashValue(const WasmSignature &Sig) {
unsigned H = hash_value(Sig.ReturnType);
for (int32_t Param : Sig.ParamTypes)
H = hash_combine(H, Param);
return H;
}
static bool isEqual(const WasmSignature &LHS, const WasmSignature &RHS) {
return LHS == RHS;
}
};

// An init entry to be written to either the synthetic init func or the
// linking metadata.
struct WasmInitEntry {
Expand Down Expand Up @@ -120,7 +98,7 @@ class Writer {
uint32_t MaxMemoryPages = 0;

std::vector<const WasmSignature *> Types;
DenseMap<WasmSignature, int32_t, WasmSignatureDenseMapInfo> TypeIndices;
DenseMap<WasmSignature, int32_t> TypeIndices;
std::vector<const Symbol *> ImportedSymbols;
unsigned NumImportedFunctions = 0;
unsigned NumImportedGlobals = 0;
Expand Down
24 changes: 1 addition & 23 deletions lld/wasm/WriterUtils.h
Expand Up @@ -17,28 +17,6 @@

using llvm::raw_ostream;

// Needed for WasmSignatureDenseMapInfo
inline bool operator==(const llvm::wasm::WasmSignature &LHS,
const llvm::wasm::WasmSignature &RHS) {
return LHS.ReturnType == RHS.ReturnType && LHS.ParamTypes == RHS.ParamTypes;
}

inline bool operator!=(const llvm::wasm::WasmSignature &LHS,
const llvm::wasm::WasmSignature &RHS) {
return !(LHS == RHS);
}

// Used for general comparison
inline bool operator==(const llvm::wasm::WasmGlobalType &LHS,
const llvm::wasm::WasmGlobalType &RHS) {
return LHS.Type == RHS.Type && LHS.Mutable == RHS.Mutable;
}

inline bool operator!=(const llvm::wasm::WasmGlobalType &LHS,
const llvm::wasm::WasmGlobalType &RHS) {
return !(LHS == RHS);
}

namespace lld {
namespace wasm {

Expand Down Expand Up @@ -75,7 +53,7 @@ void writeExport(raw_ostream &OS, const llvm::wasm::WasmExport &Export);

} // namespace wasm

std::string toString(const llvm::wasm::ValType Type);
std::string toString(llvm::wasm::ValType Type);
std::string toString(const llvm::wasm::WasmSignature &Sig);
std::string toString(const llvm::wasm::WasmGlobalType &Sig);

Expand Down

0 comments on commit 3e3f5fb

Please sign in to comment.