IonMonkey: ion/bug674694.js hangs with greedy allocator

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
6 years ago
6 years ago

People

(Reporter: jandem, Assigned: jandem)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Assignee)

Description

6 years ago
Seems to be a regression from my block reordering patch (bug 699415). I'll investigate.
(Assignee)

Comment 1

6 years ago
Reduced:

function f0(p0) {
    do {
    } while (p0);

    while (p0) {
        do {
        } while (p0);
    }
}
f0(0);
(Assignee)

Comment 2

6 years ago
Created attachment 577523 [details] [diff] [review]
Fix

The block ordering change broke FindNaturalLoops, it has to see inner backedges before outer backedges.
Attachment #577523 - Flags: review?(sstangl)
Attachment #577523 - Flags: review?(sstangl) → review+
(Assignee)

Comment 3

6 years ago
Thanks for the quick review.

http://hg.mozilla.org/projects/ionmonkey/rev/10b888d2474a
Status: ASSIGNED → RESOLVED
Last Resolved: 6 years ago
Resolution: --- → FIXED
Created attachment 577807 [details] [diff] [review]
FindNaturalLoops() must ignore the OSR block.

The issue is not entirely fixed: the assert introduced by the above patch trips basic/innerLoopIntOuterDouble.js with --ion --ion-regalloc=greedy.

Unfortunately, the assert must know about the osrBlock's ID.
Attachment #577807 - Flags: review?(dvander)

Updated

6 years ago
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Attachment #577807 - Flags: review?(dvander) → review+
http://hg.mozilla.org/projects/ionmonkey/rev/485dcdd9dabd
Status: REOPENED → RESOLVED
Last Resolved: 6 years ago6 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.