Closed Bug 1441587 Opened 2 years ago Closed 2 years ago
Some call optimizations
Bug 1437483 introduced a few Octane regressions. Some of these we can mitigate a bit.
We have an optimization in Ion to skip the callee's argument type checks if we know the caller's types match. We can change makeCall/makeCallHelper to take a Maybe<Vector> of targets (instead of a JSFunction* target) and then we can also use this optimization when we have multiple known targets. This patch also has a minor/related optimization to skip the JSFunction* Class check in CallGeneric if we know the callee is always a function.
Attachment #8954422 - Flags: review?(bhackett1024)
This CALLELEM optimization was added 5 years ago (bug 870821). According to that bug, it was a 13% improvement on Octane-gameboy. However, nowadays *removing* this optimization is a pretty big win on Gameboy. I also don't see regressions on other benchmarks, so I think it's worth doing this.
Attachment #8954423 - Flags: review?(bhackett1024)
Attachment #8954422 - Flags: review?(bhackett1024) → review+
Attachment #8954423 - Flags: review?(bhackett1024) → review+
Pushed by firstname.lastname@example.org: https://hg.mozilla.org/integration/mozilla-inbound/rev/ffc903ba2f04 part 1 - Track polymorphic call targets better in IonBuilder. r=bhackett https://hg.mozilla.org/integration/mozilla-inbound/rev/99f75fa495ae part 2 - Remove AddObjectsForPropertyRead optimization. r=bhackett
You need to log in before you can comment on or make changes to this bug.