DescriptionImprove our type feedback by recogizining never-executed IC calls for binary operations.
In the case of inlined smi code in non-optimzied code we could not
distinguish between the smi-only case and the case that the operation was
never executed.
With this change the first execution of a binary operation always jumps
to the stub which in turn patches the smi-check into the correct
conditional branch, so that we benefit from inlined smi code after the
first invocation.
A nop instruction after the call to the BinaryOpIC indicates that no
smi code was inlined. A "test eax" instruction says that there was smi
code inlined and encodes the delta to the patch site and the condition
code of the branch at the patch site to restore the original jump.
Committed: http://code.google.com/p/v8/source/detail?r=5970
Patch Set 1 #Patch Set 2 : '' #
Total comments: 11
Patch Set 3 : '' #Patch Set 4 : '' #
Total comments: 16
Patch Set 5 : '' #Patch Set 6 : fix lintos #Patch Set 7 : address comments, fixed ARM build. #
Messages
Total messages: 8 (0 generated)
|