- 05 Sep, 2016 1 commit
-
-
mvstanton authored
BUG= Review-Url: https://codereview.chromium.org/2309823002 Cr-Commit-Position: refs/heads/master@{#39181}
-
- 29 Aug, 2016 1 commit
-
-
bmeurer authored
For asm.js we now have a dedicated AsmTyper, that uses it's own type system (which is tailored towards asm.js), and so we don't need the special asm.js types anymore in the TypeCache. This also moves the TypeCache into the src/compiler directory, because it doesn't make sense to use outside anyways. TBR=ahaas@chromium.org R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2289573002 Cr-Commit-Position: refs/heads/master@{#38964}
-
- 08 Aug, 2016 2 commits
-
-
bmeurer authored
Properly figure out NaN and -0 cases even for non-integer inputs. This helps to reduce the number of checks we have to perform in case we try to go back to int32 after a floating point operation. R=epertoso@chromium.org Review-Url: https://codereview.chromium.org/2221863002 Cr-Commit-Position: refs/heads/master@{#38415}
-
bmeurer authored
Properly figure out NaN and -0 cases even for non-integer inputs. This helps to reduce the number of checks we have to perform in case we try to go back to int32 after a floating point operation. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2227533002 Cr-Commit-Position: refs/heads/master@{#38413}
-
- 05 Aug, 2016 1 commit
-
-
jarin authored
If we infer loop variable bounds, we need to insert a type rename node (sigma) to make sure that simplified lowering can choose representations consistently. Review-Url: https://codereview.chromium.org/2222513002 Cr-Commit-Position: refs/heads/master@{#38391}
-
- 03 Aug, 2016 2 commits
-
-
bmeurer authored
Move all the typing rules for unary and binary number operations to the OperationTyper and use them for both the regular Typer as well as the retyper that runs as part of SimplifiedLowering. R=epertoso@chromium.org Review-Url: https://codereview.chromium.org/2202883005 Cr-Commit-Position: refs/heads/master@{#38283}
-
bmeurer authored
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 Review-Url: https://codereview.chromium.org/2202413002 Cr-Commit-Position: refs/heads/master@{#38267}
-
- 12 Jul, 2016 1 commit
-
-
bmeurer authored
Turn the retyping pass of SimplifiedLowering into a proper phase, and make it possible to propagate feedback types through non-speculative operators. This defers the output representation selection to the retyping phase, and checks that we don't mess up. As a first user, we consume input type feedback for NumberAbs as well. Long-term we can add all other operators to the mix. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2139203002 Cr-Commit-Position: refs/heads/master@{#37672}
-
- 21 Jun, 2016 1 commit
-
-
jarin authored
Review-Url: https://codereview.chromium.org/2087693003 Cr-Commit-Position: refs/heads/master@{#37141}
-
- 19 Jun, 2016 1 commit
-
-
jarin authored
This introduces handling number feedback for multiplication, division and modulus. At the moment, the only effect is using deoptimizing number conversion instead of ToNumber call. Review-Url: https://codereview.chromium.org/2074903002 Cr-Commit-Position: refs/heads/master@{#37081}
-
- 02 Jun, 2016 1 commit
-
-
jarin authored
This introduces optimized number operations based on type feedback. Summary of changes: 1. Typed lowering produces SpeculativeNumberAdd/Subtract for JSAdd/Subtract if there is suitable feedback. The speculative nodes are connected to both the effect chain and the control chain and they retain the eager frame state. 2. Simplified lowering now executes in three phases: a. Propagation phase computes truncations by traversing the graph from uses to definitions until checkpoint is reached. It also records type-check decisions for later typing phase, and computes representation. b. The typing phase computes more precise types base on the speculative types (and recomputes representation for affected nodes). c. The lowering phase performs lowering and inserts representation changes and/or checks. 3. Effect-control linearization lowers the checks to machine graphs. Notes: - SimplifiedLowering will be refactored to have handling of each operation one place and with clearer input/output protocol for each sub-phase. I would prefer to do this once we have more operations implemented, and the pattern is clearer. - The check operations (Checked<A>To<B>) should have some flags that would affect the kind of truncations that they can handle. E.g., if we know that a node produces a number, we can omit the oddball check in the CheckedTaggedToFloat64 lowering. - In future, we want the typer to reuse the logic from OperationTyper. BUG=v8:4583 LOG=n Review-Url: https://codereview.chromium.org/1921563002 Cr-Commit-Position: refs/heads/master@{#36674}
-