diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2020-04-13 14:02:58 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-13 14:02:58 -0700 |
commit | c16bfeebb5879e9512f2bbf7d611b3b1e0be7dee (patch) | |
tree | b31308a321e869d2bf64ddbffc0a59e91df80d62 /test/binaryen.js/pass-arguments.js.txt | |
parent | c45ae16497ea76ad24982813cace1927565b0d45 (diff) | |
download | binaryen-c16bfeebb5879e9512f2bbf7d611b3b1e0be7dee.tar.gz binaryen-c16bfeebb5879e9512f2bbf7d611b3b1e0be7dee.tar.bz2 binaryen-c16bfeebb5879e9512f2bbf7d611b3b1e0be7dee.zip |
Use direct pointers as Type IDs (#2745)
Instead of using indices into the global interned type table. This
means that a lock is *never* needed to access an expanded Type. The
Type lock is now only acquired when a complex Type is created. On a
real-world wasm2js workload this improves wall clock time by 23% on my
machine with 72 cores and makes traffic on the Type lock entirely
insignificant.
**Before**
72 cores
real 0m6.914s
user 184.014s
sys 0m3.995s
1 core
real 0m25.903s
user 0m25.658s
sys 0m0.253s
**After**
72 cores
real 5.349s
user 70.309s
sys 9.691s
1 core
real 25.859s
user 25.615s
sys 0.253s
Diffstat (limited to 'test/binaryen.js/pass-arguments.js.txt')
-rw-r--r-- | test/binaryen.js/pass-arguments.js.txt | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/test/binaryen.js/pass-arguments.js.txt b/test/binaryen.js/pass-arguments.js.txt index f877b2248..df98df08c 100644 --- a/test/binaryen.js/pass-arguments.js.txt +++ b/test/binaryen.js/pass-arguments.js.txt @@ -3,6 +3,7 @@ #include <map> #include "binaryen-c.h" int main() { + std::map<size_t, BinaryenType> types; std::map<size_t, BinaryenExpressionRef> expressions; std::map<size_t, BinaryenFunctionRef> functions; std::map<size_t, BinaryenGlobalRef> globals; |