summaryrefslogtreecommitdiff
path: root/src/passes/SimplifyLocals.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-04-18 13:15:50 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-04-18 13:15:50 -0700
commit0438aa2383724cf0b29554ecb396c9ef26dab92d (patch)
treea62583d561c21b26af7a3fe242cfa03019435adc /src/passes/SimplifyLocals.cpp
parentae7bc10828f64f06647cd45449d3c67acb1effb3 (diff)
downloadbinaryen-0438aa2383724cf0b29554ecb396c9ef26dab92d.tar.gz
binaryen-0438aa2383724cf0b29554ecb396c9ef26dab92d.tar.bz2
binaryen-0438aa2383724cf0b29554ecb396c9ef26dab92d.zip
use a vector for get_local counts in SimplifyLocals (#356)
Diffstat (limited to 'src/passes/SimplifyLocals.cpp')
-rw-r--r--src/passes/SimplifyLocals.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/passes/SimplifyLocals.cpp b/src/passes/SimplifyLocals.cpp
index ddb3bccae..bb5fdd3a5 100644
--- a/src/passes/SimplifyLocals.cpp
+++ b/src/passes/SimplifyLocals.cpp
@@ -50,7 +50,7 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals>>
bool sunk;
// local => # of get_locals for it
- std::map<Index, int> numGetLocals;
+ std::vector<int> numGetLocals;
// for each set_local, its origin pointer
std::map<SetLocal*, Expression**> setLocalOrigins;
@@ -166,6 +166,7 @@ struct SimplifyLocals : public WalkerPass<LinearExecutionWalker<SimplifyLocals>>
// c(x, y)
// the load cannot cross the store, but y can be sunk, after which so can x
do {
+ numGetLocals.resize(getFunction()->getNumLocals());
sunk = false;
// main operation
WalkerPass<LinearExecutionWalker<SimplifyLocals>>::walk(root);