Closed Bug 1584758 Opened 10 months ago Closed 10 months ago

Use BytecodeLocation and BytecodeIterator in IonBuilder::analyzeNewLoopTypes

Categories

(Core :: JavaScript Engine, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
mozilla71
Tracking Status
firefox71 --- fixed

People

(Reporter: asorholm, Assigned: asorholm)

References

(Blocks 1 open bug)

Details

Attachments

(2 files, 1 obsolete file)

Currently in IonBuilder::analyzeNewLoopTypes, https://searchfox.org/mozilla-central/source/js/src/jit/IonBuilder.cpp#546-797, bytecode is manipulated directly with the use of jsbytecode* and pcToOffset. The goal of this bug is to encapsulate that manipulation with the bytecode interface classes BytecodeLocation and BytecodeIterator.

Priority: -- → P1

Replaced uses of jsbytecode* and pcToOffset in IonBuilder::analyzeNewLoopTypes with bytecode abstraction classes
BytecodeLocation and BytecodeIterator.

Adding BytecodeLocationRange iterator to BytecodeIterator class. Can provide beginning and end bytecode locations to this class, and then iterate over all bytecode locations in that range.

Attachment #9099953 - Attachment description: Summary: Removed extraneous variable `earlier` from for-loop logic in `IonBuilder::analyzeNewLoopTypes`. → Bug 1584758 - Removed extraneous variable `earlier` from for-loop logic in `IonBuilder::analyzeNewLoopTypes`.
Attachment #9099953 - Attachment description: Bug 1584758 - Removed extraneous variable `earlier` from for-loop logic in `IonBuilder::analyzeNewLoopTypes`. → Bug 1584758 - Removed extraneous variable `earlier` from for-loop logic in `IonBuilder::analyzeNewLoopTypes`. r=mgaudet
Attachment #9099953 - Attachment is obsolete: true
Keywords: checkin-needed

Pushed by opoprus@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9737b534c68f
Implementing BytecodeLocationRange iterator. r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/a693df77606e
Use BytecodeLocation and BytecodeIterator in IonBuilder::analyzeNewLoopTypes. r=mgaudet

Keywords: checkin-needed

(In reply to Oana Pop-Rus from comment #5)

Backed out 2 changesets (bug 1584758) for build bustages /builds/worker/workspace/build/src/js/src/vm/BytecodeLocation.h

Push with failure: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=superseded%2Ctestfailed%2Cbusted%2Cexception%2Crunnable&revision=a693df77606edfc80b71d774e2d8f398f11182d1&selectedJob=270765048

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=270765048&repo=autoland&lineNumber=593

Backout: https://hg.mozilla.org/integration/autoland/rev/3850aea9c18d82aac4b388a6996fb37803a1a320

It looks like the build bustages were due to a method I added in this patch and an earlier patch that was merged into m-c. I pulled the tip of m-c down and rebased on top of it to address the conflicting methods.

Here's a try build for Bug 1584758 - Implementing BytecodeLocationRange iterator. r=mgaudet: https://treeherder.mozilla.org/#/jobs?repo=try&revision=c87984ae1a6bf538d7cec20a316f78edc5e9e8f5

Here's a try build for Bug 1584758 - Use BytecodeLocation and BytecodeIterator in IonBuilder::analyzeNewLoopTypes. r=mgaudet: https://treeherder.mozilla.org/#/jobs?repo=try&revision=283ba4e2e0dc5605a15a439936e59995a1611d73

Flags: needinfo?(asorholm)
Keywords: checkin-needed
Keywords: checkin-needed
Pushed by apavel@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f15fe0194c52
Implementing BytecodeLocationRange iterator. r=mgaudet
https://hg.mozilla.org/integration/autoland/rev/0433deec4d73
Use BytecodeLocation and BytecodeIterator in IonBuilder::analyzeNewLoopTypes. r=mgaudet
Status: ASSIGNED → RESOLVED
Closed: 10 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla71
Regressions: 1595776
You need to log in before you can comment on or make changes to this bug.