Confirmed users
367
edits
No edit summary |
|||
Line 15: | Line 15: | ||
* Add enough try/catch to asm.js to allow compilation of C++ exceptions using the zero-cost implementation strategy | * Add enough try/catch to asm.js to allow compilation of C++ exceptions using the zero-cost implementation strategy | ||
* Start general JS parsing before the entire JS script has completed downloadeding so that asm.js compilation can overlap | * Start general JS parsing before the entire JS script has completed downloadeding so that asm.js compilation can overlap | ||
* Standardize and implement value objects ({{bug|749786}}) then add int64/uint64 | * Standardize and implement value objects ({{bug|749786}}) then add int64/uint64 to asm.js | ||
* asm.js parser : {{bug|854061}} | |||
* Support GC allocated Java-like objects to allow asm.js generation from JVM/CLR bytecode. Use [http://wiki.ecmascript.org/doku.php?id=harmony:typed_objects Typed Objects] to describe class structure. Use real vtables. | |||
* fall back to baseline jit for very large functions (maybe not necessary with Emscripten [http://mozakai.blogspot.com/2013/08/outlining-workaround-for-jits-and-big.html outlining]): {{bug|875174}} | |||
* FunctionFuture : {{bug|854627}} | |||
== Potential optimizations == | == Potential backend optimizations == | ||
* native vs. asm.js differential profiling : {{bug|861440}}, {{bug|863924}} | * native vs. asm.js differential profiling : {{bug|861440}}, {{bug|863924}} | ||
* Revisit primary Ion algorithms (phi placement, gvn, regalloc) to avoid the quadratic blowup we see on huge functions (be more like LLVM) | |||
* improve heap access performance : {{bug|865516}}, {{bug|865523}}, {{bug|869606}}, {{bug|870743}}, {{bug|897425}} | * improve heap access performance : {{bug|865516}}, {{bug|865523}}, {{bug|869606}}, {{bug|870743}}, {{bug|897425}} | ||
* improve x86/ARM asm.js-to-asm.js ABI : {{bug|861785}} | * improve x86/ARM asm.js-to-asm.js ABI : {{bug|861785}} | ||
Line 32: | Line 37: | ||
* Align loop headers on natural boundaries : {{bug|867001}} | * Align loop headers on natural boundaries : {{bug|867001}} | ||
* Further optimize multiplication by a constant to use lea tricks for small constants (e.g. x*3 == x<<1+x) | * Further optimize multiplication by a constant to use lea tricks for small constants (e.g. x*3 == x<<1+x) | ||
== Current asm.js spec bugs == | == Current asm.js spec bugs == |