Description[turbofan] Improve typing rule for modulus.
Infer a more precise type even in case where NaN and/or -0 is a possible
outcome of the operation, and use this more precise type to improve code
generation for the modulus itself by trying harder to stick to Word32
operations instead of going to Float64, and also optimize the pattern
where we compare the output of x % y to some non-zero integer constant
K, in which case we can truncate the output of x % y to Word32 if the
type of x % y is Signed32/Unsigned32 \/ NaN \/ MinusZero, as NaN and
MinusZero will both be truncated to zero, which cannot match the non
zero constant K.
R=jarin@chromium.org
Committed: https://crrev.com/17a7f5839684872b72d4fe9e6d2cfb5876e85af7
Cr-Commit-Position: refs/heads/master@{#38267}
Patch Set 1 #
Total comments: 1
Patch Set 2 : Some cleanup plus use type feedback properly. #
Messages
Total messages: 13 (7 generated)
|