[meta] Make Emscripten-generated code as fast as possible

NEW
Unassigned

Status

()

defect
7 years ago
5 years ago

People

(Reporter: dmandelin, Unassigned)

Tracking

(Depends on 3 bugs)

Trunk
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [js:t])

(Reporter)

Description

7 years ago
This is a metabug for maximizing Emscripten performance. There are two dimensions: 

 - throughput: compile it to something that's as close as we can (staying safe) to what a C compiler would have done on the original code
 - startup: minimize startup latency, which includes both time before we run any code at all, and time until we're running smoothly (we can be compiling and running at the same time)

Updated

7 years ago
Blocks: gecko-games

Updated

7 years ago
Depends on: 757378
Whiteboard: [js:t] → [js:t][games:p1]
(Reporter)

Updated

7 years ago
Depends on: 771106
(Reporter)

Updated

7 years ago
Depends on: 775994
Depends on: 774253
Alon, Luke, given that we're moving to Asm.js for emscripten perf, do the bugs here actually still apply?
I don't think we are moving to asm.js whole hog. First, asm.js is a research project, and second, it will possibly never support all the compiled code we can generate (e.g., we have various JS tricks for things like longjmp, C++ exceptions, and it is not clear yet how asm would handle them). Also, optimizing for emscripten-type code will help other compilers that are not asm.

So I think the bugs here definitely do still apply. I would agree they are slightly less of a priority though.
It still makes sense to optimize the patterns in a general non-asm.js scenario.  That is, from a non-asm.js perspective, Emscripten mostly just generates a bunch of independently highly-optimizable patterns.
Whoa, Alon already beat me.
I would like to point out, re: comment 2, that we may eventually add support to asm.js for exception handling (that is, via a restricted patterned use of try/catch).
Fixed by asm.js, so not a games priority any more; JS guys should probably go through the dependent bugs and see if they're still relevant.
Whiteboard: [js:t][games:p1] → [js:t]
Assignee: general → nobody
You need to log in before you can comment on or make changes to this bug.