summaryrefslogtreecommitdiff
path: root/test/binaryen.js/functions.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2017-12-30 08:38:31 -0800
committerGitHub <noreply@github.com>2017-12-30 08:38:31 -0800
commitb5ee16f318019f89d8a897437fb906d470cfa8d9 (patch)
tree8be0a0cb6585ced8279e1d83f719ef0684a870e2 /test/binaryen.js/functions.js
parent10bf008c73948d4592e567cdbce330dff724b1c2 (diff)
downloadbinaryen-b5ee16f318019f89d8a897437fb906d470cfa8d9.tar.gz
binaryen-b5ee16f318019f89d8a897437fb906d470cfa8d9.tar.bz2
binaryen-b5ee16f318019f89d8a897437fb906d470cfa8d9.zip
SpillPointers pass (#1339)
This is an experiment to help with Boehm-style GC. It will spill things that could be pointers to the C stack, so that they can be seen by conservative garbage collection. The spills add code size and runtime overhead, but actually less than I thought: 10% slower (smaller than the difference between VMs), 15% gzip size larger. We can do even better with more optimizations for this, like a dead store elimination pass. This PR does the following: * Add the new pass. * Create an abi/ dir, with info about the pointer size and stack manipulation utilities. * Separates out the liveness analysis from CoalesceLocals, so that other passes can use it (like SpillPointers). * Refactor out the SortedVector class from the liveness analysis to a separate file (just seems nicer that way).
Diffstat (limited to 'test/binaryen.js/functions.js')
0 files changed, 0 insertions, 0 deletions