Closed Bug 773548 Opened 12 years ago Closed 12 years ago

Codegen metadata on DOM methods for JIT optimization

Categories

(Core :: DOM: Core & HTML, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla17

People

(Reporter: efaust, Assigned: efaust)

References

Details

Attachments

(2 files)

As was done in bug 747287, codegen changes will need to be done to attach metadata to all method accessors.
Blocks: 773549
Assignee: nobody → efaust
Status: NEW → ASSIGNED
Attachment #644088 - Flags: review?(peterv)
Applies in light of patch in bug 775788.
Attachment #644091 - Flags: review?(peterv)
Comment on attachment 644088 [details] [diff] [review]
Do specialized codegen for DOM methods.

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

::: dom/bindings/Codegen.py
@@ +3290,5 @@
> +                        self.member.identifier.name)
> +                # Setters are always fallible, since they have to do a typed unwrap.
> +                result += self.defineJitInfo(setterinfo, setter, False)
> +            return result
> +        elif self.member.isMethod():

No else after return

@@ +3298,5 @@
> +                     self.member.identifier.name)
> +            # Method, much like setters, are always fallible
> +            result = self.defineJitInfo(methodinfo, method, False)
> +            return result
> +        else:

Same here
Comment on attachment 644088 [details] [diff] [review]
Do specialized codegen for DOM methods.

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

What Ms2ger said.

::: dom/bindings/Codegen.py
@@ +3279,5 @@
>      def define(self):
> +        if self.member.isAttr():
> +            getterinfo = ("%s_getterinfo" % self.member.identifier.name)
> +            getter = ("(JSJitPropertyOp)specialized_get_%s" %
> +                    self.member.identifier.name)

Line this up correctly.

@@ +3286,5 @@
> +            result = self.defineJitInfo(getterinfo, getter, getterinfal)
> +            if not self.member.readonly:
> +                setterinfo = ("%s_setterinfo" % self.member.identifier.name)
> +                setter = ("(JSJitPropertyOp)specialized_set_%s" %
> +                        self.member.identifier.name)

Same here.

@@ +3294,5 @@
> +        elif self.member.isMethod():
> +            methodinfo = ("%s_methodinfo" % self.member.identifier.name)
> +            #XXXefaust Should be JSJitMethodOp, after centralization, but lazy for now
> +            method = ("(JSJitPropertyOp)specialized_%s" %
> +                     self.member.identifier.name)

Same here.
Attachment #644088 - Flags: review?(peterv) → review+
Attachment #644091 - Flags: review?(peterv) → review+
https://hg.mozilla.org/mozilla-central/rev/d84df7edf0de
https://hg.mozilla.org/mozilla-central/rev/09a3938bed6d
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla17
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: