LGTM modulo comments. Let's see how this version performs. We can always roll
back.

https://codereview.chromium.org/1250733005/diff/210001/src/macros.py
File src/macros.py (right):

https://codereview.chromium.org/1250733005/diff/210001/src/macros.py#newcode136
src/macros.py:136: macro IS_SIMD_VALUE(arg)         = (IS_FLOAT32X4(arg)
|| IS_INT32X4(arg) || IS_BOOL32X4(arg) || IS_INT16X8(arg) ||
IS_BOOL16X8(arg) || IS_INT8X16(arg) || IS_BOOL8X16(arg));
On 2015/07/30 13:46:58, bbudge wrote:
On 2015/07/29 14:37:55, rossberg wrote:
> Hm, this seems rather expensive. It is used on some potentially
> performance-relevant paths, so there should probably be a
%_IsSimdValue
> intrinsic to make it efficient. I'm fine with doing that in a
follow-up CL,
but
> better be prepared that landing the CL as is might affect some
benchmarks.

I don't like those perf bugs, so I'll use your suggestion now. Done.

Ah, note the difference between assembly intrinsics (%_XY) and C
intrinsics (%XY). The former are recognised as distinguished AST nodes
for which code generators generate inline assembly directly. The latter
create runtime calls, which are expensive. I actually had the former in
mind, but that involves some work. I doubt the latter will perform much
better than the multi-disjunction. But I guess we'll find out. :)

https://codereview.chromium.org/1250733005/diff/210001/src/runtime.js
File src/runtime.js (right):

https://codereview.chromium.org/1250733005/diff/210001/src/runtime.js#newcode106
src/runtime.js:106: if (IS_SYMBOL(y) || IS_SIMD_VALUE(y)) return 1;  //
not equal
On 2015/07/30 13:46:58, bbudge wrote:
I moved these primitive checks which always return "not equal" to the
end of
their blocks, since they shouldn't be encountered in real or benchmark
code.
WDYT?

Fine with me.

https://codereview.chromium.org/1250733005/diff/230001/src/macros.py
File src/macros.py (right):

https://codereview.chromium.org/1250733005/diff/230001/src/macros.py#newcode101
src/macros.py:101: macro IS_SIMD_VALUE(arg)        =
(%_IsSimdValue(arg));
I'm surprised this actually works! See above, you should have written
%IsSimdValue here.

https://codereview.chromium.org/1250733005/diff/230001/src/runtime/runtime-simd.cc
File src/runtime/runtime-simd.cc (right):

https://codereview.chromium.org/1250733005/diff/230001/src/runtime/runtime-simd.cc#newcode167
src/runtime/runtime-simd.cc:167: return Smi::FromInt(result ? EQUAL :
NOT_EQUAL);
It is a bit strange to return an int here and Booleans for the other
functions.

https://codereview.chromium.org/1250733005/

--
--
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