array.pop() should not mark the array as non-packed

RESOLVED FIXED in mozilla35

Status

()

RESOLVED FIXED
4 years ago
4 years ago

People

(Reporter: jandem, Assigned: jschulte)

Tracking

unspecified
mozilla35
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Reporter)

Description

4 years ago
See the testcase below. Ion emits a hole check for the arr[1] load inside the loop, because the arr.pop() call marked the array as non-packed.

This affects deltablue.

function f() {
    var res = 0;
    var arr = [1, 2, 3];
    arr.pop();
    for (var i=0; i<1000000; i++) {
	res += arr[1];
	arr[1] = 1;
    }
}
f();
(Assignee)

Comment 1

4 years ago
Created attachment 8484139 [details] [diff] [review]
v1.patch

Nice, 5.6 % improvement on deltablue.
Attachment #8484139 - Flags: review?(jdemooij)
(Reporter)

Comment 2

4 years ago
Comment on attachment 8484139 [details] [diff] [review]
v1.patch

Review of attachment 8484139 [details] [diff] [review]:
-----------------------------------------------------------------

Thanks for the patch. Forwarding to Brian.
Attachment #8484139 - Flags: review?(jdemooij) → review?(bhackett1024)
Attachment #8484139 - Flags: review?(bhackett1024) → review+
pushed for johannes on try as he doesn't have L1 commit access:
https://tbpl.mozilla.org/?tree=Try&rev=5d9979000d19
Assignee: nobody → j_schulte
Status: NEW → ASSIGNED
(Assignee)

Updated

4 years ago
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/992b2c2eef2c
Status: ASSIGNED → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla35
You need to log in before you can comment on or make changes to this bug.