On 2015/04/20 12:20:40, titzer wrote:
https://codereview.chromium.org/1095063002/diff/1/src/compiler/js-typed-lowering.cc
File src/compiler/js-typed-lowering.cc (right):
https://codereview.chromium.org/1095063002/diff/1/src/compiler/js-typed-lowering.cc#newcode373
src/compiler/js-typed-lowering.cc:373: Reduction
JSTypedLowering::ReduceBitwiseAnd(Node* node) {
I think you want to move this optimization to machine-operator-reducer.
That
will make it more general and also avoid the problem you see below.
Tried this suggestion, moving this to machine-operator-reducer. It works in
part, but there are some issues that suggest this is too later to make use
of
this type information.
For example, for one error there is a bit-and operation being used that
appears
to be testing the low bit of a value that is the result of converting true
or
false to a number, which I presume is checking for a tagged number. The type
information gives the input as having the range 0 to 1, so bit-and-ing this
input with 1 is redundant and is eliminated. But the bit-and is being
applied to
a lower level representation, to a tagged number, which is not the value
that
the type information applies to and this generates bad code. Does this sound
right? Does it suggest another appropriate phase to perform transforms that
depend on type information? Or should the transform be guarding against
being
applied to possibly tagger values?
https://codereview.chromium.org/1095063002/
--
--
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/d/optout.