aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2014-01-17 16:47:49 -0800
committerAlon Zakai <alonzakai@gmail.com>2014-01-17 16:47:49 -0800
commit4d2357600922c8f50c5b742ca079e304d387706b (patch)
tree975413bfd6888b2514b1f2ff9393929a2e0d3c35
parentd2a5f50f7540fc5f42f493ef760a1e168d4ed9ff (diff)
optimize ValueNames storage
-rw-r--r--lib/Target/JSBackend/JSBackend.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Target/JSBackend/JSBackend.cpp b/lib/Target/JSBackend/JSBackend.cpp
index fb7aa0f4d4..c443c3bf9e 100644
--- a/lib/Target/JSBackend/JSBackend.cpp
+++ b/lib/Target/JSBackend/JSBackend.cpp
@@ -90,7 +90,6 @@ namespace {
const Module *TheModule;
unsigned UniqueNum;
ValueMap ValueNames;
- NameSet UsedNames;
VarMap UsedVars;
HeapData GlobalData8;
HeapData GlobalData32;
@@ -435,7 +434,7 @@ std::string JSWriter::getJSName(const Value* val) {
}
sanitize(name);
} else {
- name = "unique$" + utostr(UniqueNum++);
+ name = "u$" + utostr(UniqueNum++);
}
return ValueNames[val] = name;
}
@@ -1495,6 +1494,9 @@ void JSWriter::printModuleBody() {
for (Module::const_iterator I = TheModule->begin(), E = TheModule->end();
I != E; ++I) {
if (!I->isDeclaration()) {
+
+ ValueNames.clear();
+
// Ensure all arguments and locals are named (we assume used values need names, which might be false if the optimizer did not run)
unsigned Next = 1;
for (Function::const_arg_iterator AI = I->arg_begin(), AE = I->arg_end();