Last Comment Bug 773548 - Codegen metadata on DOM methods for JIT optimization
: Codegen metadata on DOM methods for JIT optimization
Status: RESOLVED FIXED
:
Product: Core
Classification: Components
Component: DOM (show other bugs)
: unspecified
: x86_64 Linux
: -- normal (vote)
: mozilla17
Assigned To: Eric Faust [:efaust]
:
Mentors:
Depends on: 773546
Blocks: 747290 773549
  Show dependency treegraph
 
Reported: 2012-07-12 23:58 PDT by Eric Faust [:efaust]
Modified: 2012-08-08 09:28 PDT (History)
4 users (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Do specialized codegen for DOM methods. (8.34 KB, patch)
2012-07-19 17:38 PDT, Eric Faust [:efaust]
peterv: review+
Details | Diff | Splinter Review
Codegen changes in light of changed JSFunSpec (2.08 KB, patch)
2012-07-19 17:39 PDT, Eric Faust [:efaust]
peterv: review+
Details | Diff | Splinter Review

Description Eric Faust [:efaust] 2012-07-12 23:58:39 PDT
As was done in bug 747287, codegen changes will need to be done to attach metadata to all method accessors.
Comment 1 Eric Faust [:efaust] 2012-07-19 17:38:05 PDT
Created attachment 644088 [details] [diff] [review]
Do specialized codegen for DOM methods.
Comment 2 Eric Faust [:efaust] 2012-07-19 17:39:44 PDT
Created attachment 644091 [details] [diff] [review]
Codegen changes in light of changed JSFunSpec

Applies in light of patch in bug 775788.
Comment 3 :Ms2ger (⌚ UTC+1/+2) 2012-07-20 02:32:35 PDT
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 4 Peter Van der Beken [:peterv] - away till Aug 1st 2012-08-02 03:32:02 PDT
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.

Note You need to log in before you can comment on or make changes to this bug.