Closed Bug 1246575 Opened 4 years ago Closed 4 years ago

Inline RegExp.prototype getters.

Categories

(Core :: JavaScript Engine: JIT, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla47
Tracking Status
firefox47 --- fixed

People

(Reporter: arai, Assigned: arai)

References

Details

Attachments

(1 file)

Following RegExp.prototype getters just returns a value stored in slot.
  * RegExp.prototype.global
  * RegExp.prototype.ignoreCase
  * RegExp.prototype.multiline
  * RegExp.prototype.sticky
  * RegExp.prototype.unicode

Inlining then in IonBuilder::inlineNativeGetter should improve performance in bug 887016 and exec/test too.
octane/regexp score with WIP patch:
  before:  3848
  patched: 4019

https://treeherder.mozilla.org/#/jobs?repo=try&revision=ac033a5db341
When IonBuilder::inlineNativeGetter is called with RegExp.prototype getters (except source), it inlines it with MLoadFixedSlot with MIRType_Boolean.
Attachment #8716938 - Flags: review?(hv1989)
Comment on attachment 8716938 [details] [diff] [review]
Inline RegExp.prototype.{global,ignoreCase,multiline,sticky,unicode} getters.

Review of attachment 8716938 [details] [diff] [review]:
-----------------------------------------------------------------

Cool! Great work.

::: js/src/vm/RegExpObject.cpp
@@ +123,5 @@
>      return createShared(cx, g);
>  }
>  
> +/* static */ bool
> +RegExpObject::isOriginalGetter(JSNative native, unsigned* slot)

Shouldn't we use "isOriginalFlagGetter" as name?
Attachment #8716938 - Flags: review?(hv1989) → review+
https://hg.mozilla.org/integration/mozilla-inbound/rev/b7f93e7b0caad9cc07b1c8d3e0bcbad59c0d35f3
Bug 1246575 - Inline RegExp.prototype.{global,ignoreCase,multiline,sticky,unicode} getters. r=h4writer
https://hg.mozilla.org/mozilla-central/rev/b7f93e7b0caa
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla47
You need to log in before you can comment on or make changes to this bug.