Last Comment Bug 557358 - JM: getprop PIC for getters
: JM: getprop PIC for getters
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: Trunk
: All All
-- normal with 1 vote (vote)
: mozilla9
Assigned To: Brian Hackett (:bhackett)
: Jason Orendorff [:jorendorff]
Depends on: 557357 686418 688731
Blocks: domperf 614163 684305 557351 613548 683631
  Show dependency treegraph
Reported: 2010-04-05 15:38 PDT by David Mandelin [:dmandelin]
Modified: 2011-11-21 17:05 PST (History)
13 users (show)
See Also:
Crash Signature:
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---

WIP (39.65 KB, patch)
2011-09-04 15:34 PDT, Brian Hackett (:bhackett)
no flags Details | Diff | Splinter Review
patch (72.97 KB, patch)
2011-09-05 15:54 PDT, Brian Hackett (:bhackett)
dvander: review+
Details | Diff | Splinter Review

Description User image David Mandelin [:dmandelin] 2010-04-05 15:38:35 PDT
Extend the PIC to handle properties with getters.
Comment 1 User image Boris Zbarsky [:bz] (still a bit busy) 2011-04-06 21:49:55 PDT
This is being a pretty serious performance drag on the DOM.  Chris, would you be willing to look at this?
Comment 2 User image Brian Hackett (:bhackett) 2011-09-04 15:34:29 PDT
Created attachment 558197 [details] [diff] [review]

WIP.  Handles property ops on GETPROP, not yet GETELEM (should be able to handle the monomorphic case there), and can't yet rejoin from recompilation triggered by the op.

function foo(f) {
  for (var i = 0; i < 5000000; i++)

              Before  After
js -m -j -p:  415     188
js -m -n:     630     188
Comment 3 User image Brian Hackett (:bhackett) 2011-09-05 15:54:46 PDT
Created attachment 558355 [details] [diff] [review]

Handles GETPROP and CALLPROP, not GETELEM.  GETELEM is structured somewhat differently and bug 683631 did not identify hot GETELEM on DOM properties with getter hooks.
Comment 4 User image Brian Hackett (:bhackett) 2011-09-06 22:54:43 PDT
Comment 5 User image Brian Hackett (:bhackett) 2011-09-22 14:13:56 PDT

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