From e3d201158d9136d6ffb655f70904dae5f9079317 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Fri, 8 Jun 2018 15:45:02 -0700 Subject: Improve local-cse (#1594) This makes it much more effective, by rewriting it to depend on flatten. In flattened IR, it is very simple to check if an expression is equivalent to one already available for use in a local, and use that one instead, basically we just track values in locals. Helps with #1521 --- src/tools/wasm-reduce.cpp | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) (limited to 'src/tools/wasm-reduce.cpp') diff --git a/src/tools/wasm-reduce.cpp b/src/tools/wasm-reduce.cpp index 0dfb97907..6b19e6216 100644 --- a/src/tools/wasm-reduce.cpp +++ b/src/tools/wasm-reduce.cpp @@ -236,13 +236,15 @@ struct Reducer : public WalkerPass