Closed Bug 596865 Opened 15 years ago Closed 15 years ago

Consider doing propcache lookups on PIC misses

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: bzbarsky, Unassigned)

Details

Right now a PIC miss will do a js_GetProperty, which will do the full resolve, etc. Would it make sense to use the propcache at that point to try to see whether we hit there? Or are we pretty certain that if we missed the PIC we'll miss the propcache too?
It depends on the callsite, and why we're disabling. The property cache isn't compatible with the way we IC some opcodes (PROPINC, NAMEINC etc). Also, sometimes we assume things are monomorphic. Like |.length| on an array or string will disable immediately after generating the stub. Most of the time though we should be falling back to stubs::GetProp which will use the property cache. It seems likely that if the PIC doesn't do well, the property cache won't either (it's monomorphic), but if you're seeing examples where this isn't true, we should fix it.
Hmm. I think the calls I've seen have gone through GetProp. I'll keep an eye on it.
(In reply to comment #1) > Most of the time though we should be falling back to stubs::GetProp which will > use the property cache. It seems likely that if the PIC doesn't do well, the > property cache won't either (it's monomorphic), The property cache is not monomorphic. It is a direct-mapped cache from (kpc, kshape) -> ..., so multiple kshapes for the same kpc hash to different entries. /be
OK, all my recent profiles do show us try to hit the propcache on stubs::GetProp. I'm sure that didn't use to happen before.... Resolving wfm; will reopen if needed (unlikely).
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.