Status: New
Owner: ----
New issue 3081 by [email protected]: Incorrect CheckMaps generated for
inlined ctor with props initialized to undefined
http://code.google.com/p/v8/issues/detail?id=3081
See repro below. v8 generates this inexplicable hir in getInfo:
...
0 0 v24 EnterInlined T2, id=4 <|@
0 0 t27 CheckMaps t13 [0x4e70f949] type:object <|@
0 0 t33 CheckMaps t13 [0x4e70fa11] type:object <|@
0 0 v38 LeaveInlined <|@
...
Which obviously will always fail (because the same object can't have two
different maps at once).
This results in repeated deopts and eventually disabled optimizations.
Reproduced in mac chrome canary and d8 at head.
///// repro
function getInfo() {
var t2 = new T2();
t2.p0 = 1;
t2.p1 = 2;
return t2;
}
function T2() {
this.p0 = undefined;
this.p1 = undefined;
}
var accum = 0;
for (var i = 0; i < 10000; i++) {
accum += getInfo().p0;
}
print(accum);
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.