mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-03 02:25:34 +00:00
e661c6d404
The wasm baseline compiler slows down significantly when compiling code that has extensive need of stack maps, for example the Dart-Barista benchmark. This is because StackMapGenerator::createStackMap spends a lot of time iterating over a vector of booleans, one element at a time, to identify reftyped stack slots. This patch gives `class MachineStackTracker` its own iterator class `Iter` to hide the details. This provides fast(er) iteration by scanning backwards through the vector of booleans until the scan-index becomes 8-aligned. After that, it jumps backwards in steps of 8 elements to the extent possible. For a --no-threads --wasm-compiler=baseline compilation only of Barista 3, this reduces compilation time from 0.110 to 0.082 user seconds (Intel Core i5 1135G7). Differential Revision: https://phabricator.services.mozilla.com/D167288 |
||
---|---|---|
.. | ||
examples | ||
loader | ||
public | ||
src | ||
xpconnect | ||
app.mozbuild | ||
ffi.configure | ||
moz.build | ||
moz.configure | ||
sub.configure |