Open Bug 1544036 Opened 5 years ago Updated 2 years ago

Baseline ICs show up in the profiler as "Native Code" not "Baseline" code.

Categories

(Core :: JavaScript Engine: JIT, enhancement, P2)

enhancement

Tracking

()

Tracking Status
firefox68 --- fix-optional

People

(Reporter: mgaudet, Unassigned)

References

Details

Attachments

(2 files)

Research Question

Is the Profiler accurately capturing time in inline caches?

Experiment

Add a CacheIR op “sleep”. In the BinaryArithCache inject a sleep op if and only if the left hand side is a magical value.

Write a test case web page that allows us to profile with and without the magical value. Compare the results

Results

Indeed, we do see the time in IC stubs being reported!

https://profiler.firefox.com/public/d9b2dae4594eff88638ea58a4201c3fe75ca0b42/calltree/?globalTrackOrder=8-9-10-0-1-2-3-4-5-6-7&hiddenGlobalTracks=1-2-3-4-5-6&localTrackOrderByPid=82953-1-2-0~82964-0~82983-0~82969-0~82965-0-1~82963-0~82970-0-1~82956-0~&profileName=&thread=8&v=3

However, the time in the IC is being labelled as "Native Code" rather than Baseline.

Notably: It does seem that the JS Tracer (TraceLogger) appears to be able to capture that BaselineIC should be considered Baseline code.

See Also: → 1463559

julianw on the DevTools slack points out that the implementation details should be correct if you filter to only JS Stacks; that does seem to be the case here.

Priority: -- → P2
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: