Closed Bug 1408058 Opened 2 years ago Closed 2 years ago

Investigate six-speed-super-es5 regression


(Core :: JavaScript Engine, defect, P3)




Tracking Status
firefox57 --- wontfix
firefox58 --- fixed


(Reporter: evilpie, Assigned: jandem)


(Blocks 1 open bug)


(Keywords: perf)


(3 files)

We had a pretty massive regression on six-speed-super-es5.
I think this got even worse, the results are not extremely bimodal.
Jan can you please assign this to someone appropriate?
Flags: needinfo?(jdemooij)
Priority: -- → P1
evilpie and I talked about this - I doubt the regression is real but we should optimize the property access better in Ion; I'll fix soon.
Priority: P1 → P3
I have Ion/ScalarReplacement/CacheIR patches that let us inline the property access and then scalar replacement can no-op this benchmark.
Assignee: nobody → jdemooij
We currently set preliminaryObjectAction_ if |obj == holder|. This patch changes it to always set it - this ensures we get a single Baseline stub and ReceiverGuard in IonBuilder when we look up a property on the prototype of a preliminary and later unboxed object.
Flags: needinfo?(jdemooij)
Attachment #8921878 - Flags: review?(evilpies)
This is just based on the code for GuardShape.
Attachment #8921881 - Flags: review?(nicolas.b.pierron)
Attachment #8921881 - Flags: review?(nicolas.b.pierron) → review+
This patch lets us inline slot reads on the proto chain based on Baseline ICs. We support multiple receivers, as long as there's a single holder.
Attachment #8921906 - Flags: review?(evilpies)
Attachment #8921878 - Flags: review?(evilpies) → review+
Comment on attachment 8921906 [details] [diff] [review]
Part 3 - Inline proto slot reads in Ion

Review of attachment 8921906 [details] [diff] [review]:

Looks great. I am optimistic that this will help on real world content as well.
Attachment #8921906 - Flags: review?(evilpies) → review+
Pushed by
part 1 - Track preliminary object IC stubs better. r=evilpie
part 2 - Teach scalar replacement about GuardGroup and GuardUnboxedExpando. r=nbp
part 3 - Inline slot reads on the prototype in Ion based on Baseline feedback. r=evilpie
You need to log in before you can comment on or make changes to this bug.