Closed Bug 777383 Opened 9 years ago Closed 9 years ago

TI: Don't add undefined type to property reads before test instructions

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: jandem, Assigned: jandem)

References

Details

(Whiteboard: [js:t])

Attachments

(1 file)

TI currently adds the undefined type to property access ops (getprop, getelem, getgname etc) occurring before certain test ops (ifeq, typeof etc). This is an old optimization for property existence tests (hg annotate points to the first TI import).

Nowadays, this doesn't help us on SS/V8/Kraken and hurts us in some common cases. After removing it, the micro-benchmark below drops from 60 ms to 9 ms with JM (smaller win with Ion because it handles more cases inline).

var x = 0;
function f(o) {
    for (var i=0; i<10000000; i++) {
        if (x) x = 1;
    }
}
var t = new Date;
f();
print(new Date - t);
Attached patch PatchSplinter Review
Attachment #645812 - Flags: review?(bhackett1024)
Attachment #645812 - Flags: review?(bhackett1024) → review+
Backed out for a SS bits-in-byte regression on AWFY 64-bit (which I can't reproduce btw):

https://hg.mozilla.org/integration/mozilla-inbound/rev/92f34cddc5a6
Target Milestone: mozilla17 → ---
Whiteboard: [js:t]
Pushed to IonMonkey:

https://hg.mozilla.org/projects/ionmonkey/rev/27041e19db87
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.