summaryrefslogtreecommitdiffstats
path: root/lld/wasm/SymbolTable.h
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2019-02-06 02:35:18 +0000
committerSam Clegg <sbc@chromium.org>2019-02-06 02:35:18 +0000
commit1f3f774f104998f715783967ee852f4682f87fa8 (patch)
tree9d824f71cb1ccf2c902ac9f331d4a56b857869dd /lld/wasm/SymbolTable.h
parentc1950aa1836e7f63925f97761cfcc9ad96d315cf (diff)
downloadbcm5719-llvm-1f3f774f104998f715783967ee852f4682f87fa8.tar.gz
bcm5719-llvm-1f3f774f104998f715783967ee852f4682f87fa8.zip
[WebAssembly] Implement --trace and --trace-symbol
Differential Revision: https://reviews.llvm.org/D57725 llvm-svn: 353264
Diffstat (limited to 'lld/wasm/SymbolTable.h')
-rw-r--r--lld/wasm/SymbolTable.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/lld/wasm/SymbolTable.h b/lld/wasm/SymbolTable.h
index f0bdd6cc01c..ed5c0ca77dd 100644
--- a/lld/wasm/SymbolTable.h
+++ b/lld/wasm/SymbolTable.h
@@ -46,8 +46,11 @@ public:
void reportRemainingUndefines();
ArrayRef<Symbol *> getSymbols() const { return SymVector; }
+
Symbol *find(StringRef Name);
+ void trace(StringRef Name);
+
Symbol *addDefinedFunction(StringRef Name, uint32_t Flags, InputFile *File,
InputFunction *Function);
Symbol *addDefinedData(StringRef Name, uint32_t Flags, InputFile *File,
@@ -76,8 +79,12 @@ public:
private:
std::pair<Symbol *, bool> insert(StringRef Name, InputFile *File);
+ std::pair<Symbol *, bool> insertName(StringRef Name);
- llvm::DenseMap<llvm::CachedHashStringRef, Symbol *> SymMap;
+ // Maps symbol names to index into the SymVector. -1 means that symbols
+ // is to not yet in the vector but it should have tracing enabled if it is
+ // ever added.
+ llvm::DenseMap<llvm::CachedHashStringRef, int> SymMap;
std::vector<Symbol *> SymVector;
llvm::DenseSet<llvm::CachedHashStringRef> Comdats;
OpenPOWER on IntegriCloud