Add some fast paths that are missing outside Windows
authorKoundinya Veluri <kouvel@microsoft.com>
Fri, 9 Oct 2015 18:36:25 +0000 (11:36 -0700)
committerKoundinya Veluri <kouvel@microsoft.com>
Mon, 12 Oct 2015 20:52:12 +0000 (13:52 -0700)
commit2753a8e8f39aad2188d3dc056a4b971323bf4110
tree2ae9db0d7bdd293dc9db533303330ad898a52764
parent1a729f8c93d03e305a1d830c9e65ca05185adcd1
Add some fast paths that are missing outside Windows

- Allocation fast path for arrays of object elements
  - On Linux, a microbenchmark is 25% faster with the portable fast path
  - On Windows with the asm fast path, the microbenchmark was 52% faster than on Linux before, and is now 22% faster with the portable fast path
  - On Windows, the portable fast path is within 4% slower than the asm fast path
- Allocation fast path for objects
  - On Linux, a microbenchmark is 200% faster with the portable fast path
  - On Windows with the asm fast path, the microbenchmark was 325% faster than on Linux before, and is now 43% faster with the portable fast path
  - On Windows, the portable fast path is within 1% slower than the asm fast path
- Skipped the Box fast path since that seems to be inlined into jitted code using the new object fast path. As a result of adding the new object fast path, boxing perf has also improved outside Windows similarly to above.
src/vm/jithelpers.cpp
src/vm/jitinterface.h
src/vm/jitinterfacegen.cpp
src/vm/object.h