https://codereview.chromium.org/736043002/diff/1/src/hydrogen.cc
File src/hydrogen.cc (right):

https://codereview.chromium.org/736043002/diff/1/src/hydrogen.cc#newcode9282
src/hydrogen.cc:9282: if (CanBeFunctionApplyArguments(expr, false)) {
I'm not too happy with this condition. It lacks a check for not having
type feedback. As it is, *any* call of the form
"some_function(something, arguments)" will emit the deopt, as long as
"some_function" isn't an HConstant. That's safe in terms of
functionality, but could hurt performance when it's part of a big,
expensive-to-optimize function where we'd try 10 times before giving up,
rather than disabling optimization immediately.

I don't see a good alternative right now ("expr->IsUninitialized()"
doesn't appear to be useful here); maybe we can find something tomorrow.

https://codereview.chromium.org/736043002/diff/1/src/hydrogen.cc#newcode9284
src/hydrogen.cc:9284: Deoptimizer::EAGER);
If we find an appropriate check for "no type feedback yet", this should
be Deoptimizer::SOFT; otherwise it deserves a comment why it's EAGER.

https://codereview.chromium.org/736043002/diff/1/src/hydrogen.h
File src/hydrogen.h (right):

https://codereview.chromium.org/736043002/diff/1/src/hydrogen.h#newcode2265
src/hydrogen.h:2265: HValue* Lookup(Variable* var) {
Why do you need this variant? The "!value->IsArgumentsObject()" check in
IsEligibleForEnvironmentLivenessAnalysis() should do the trick, no?

https://codereview.chromium.org/736043002/diff/1/test/mjsunit/regress/regress-3709.js
File test/mjsunit/regress/regress-3709.js (right):

https://codereview.chromium.org/736043002/diff/1/test/mjsunit/regress/regress-3709.js#newcode25
test/mjsunit/regress/regress-3709.js:25: if (%GetOptimizationStatus(foo)
!= 4) {
Just use assertOptimized(foo) / assertUnoptimized(foo), it'll do all the
required magic.

https://codereview.chromium.org/736043002/

--
--
v8-dev mailing list
v8-dev@googlegroups.com
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 v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to