- 19 Feb, 2016 2 commits
-
-
jarin authored
Revert of [turbofan] Connect ObjectIsNumber to effect and control chains. (patchset #1 id:1 of https://codereview.chromium.org/1709093002/ ) Reason for revert: Tanks benchmarks (e.g., Octane box2d TF). Original issue's description: > [turbofan] Connect ObjectIsNumber to effect and control chains. > > In theory, we could connect the nodes when doing > the schedule-in-the-middle pass, but that would require creating two > versions of the operator (effectful and pure). I believe we do not > lose anything by wiring the node up eagerly. > > Committed: https://crrev.com/2894e80a0a4a51a0d72e72aa48fcd01968f7949f > Cr-Commit-Position: refs/heads/master@{#34141} TBR=bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1718483002 Cr-Commit-Position: refs/heads/master@{#34147}
-
jarin authored
In theory, we could connect the nodes when doing the schedule-in-the-middle pass, but that would require creating two versions of the operator (effectful and pure). I believe we do not lose anything by wiring the node up eagerly. Review URL: https://codereview.chromium.org/1709093002 Cr-Commit-Position: refs/heads/master@{#34141}
-
- 02 Feb, 2016 2 commits
-
-
bmeurer authored
Avoid the hacking in JSIntrinsicLowering and provide a proper simplified operator ObjectIsReceiver instead that is used to implement %_IsJSReceiver which is used by our JavaScript builtins and the JSInliner. R=jarin@chromium.org BUG=v8:4544 LOG=n Review URL: https://codereview.chromium.org/1657863004 Cr-Commit-Position: refs/heads/master@{#33675}
-
jarin authored
This CL removes the Config templatization from the types. It is not necessary anymore, after the HeapTypes have been removed. The CL also changes the type hierarchy - the specific type kinds are not inner classes of the Type class and they do not inherit from Type. This is partly because it seems impossible to make this work without templates. Instead, a new TypeBase class is introduced and all the structural (i.e., non-bitset) types inherit from it. The bitset type still requires the bit-munging hack and some nasty reinterpret-casts to pretend bitsets are of type Type*. Additionally, there is now the same hack for TypeBase - all pointers to the sub-types of TypeBase are reinterpret-casted to Type*. This is to keep the type constructors in inline method definitions (although it is unclear how much that actually buys us). In future, we would like to move to a model where we encapsulate Type* into a class (or possibly use Type where we used to use Type*). This would loosen the coupling between bitset size and pointer size, and eventually we would be able to have more bits. TBR=bradnelson@chromium.org Review URL: https://codereview.chromium.org/1655833002 Cr-Commit-Position: refs/heads/master@{#33656}
-
- 10 Dec, 2015 1 commit
-
-
jarin authored
MachineType is now a class with two enum fields: - MachineRepresentation - MachineSemantic Both enums are usable on their own, and this change switches some places from using MachineType to use just MachineRepresentation. Most notably: - register allocator now uses just the representation. - Phi and Select nodes only refer to representations. Review URL: https://codereview.chromium.org/1513543003 Cr-Commit-Position: refs/heads/master@{#32738}
-
- 27 Oct, 2015 1 commit
-
-
bmeurer authored
Currently we still (mis)used some machine operators in typed lowering (namely Word32Or, Word32Xor and Word32And). But these operators are "polymorphic" in the signedness of their inputs and output, hence the representation selection (and thereby simplified lowering) was unable to figure out whether a bitwise operation that was seen would produce an unsigned or a signed result. If such nodes also have frame state uses, the only safe choice was float64, which was not only a lot less ideal, but also the main cause of the for-in related deoptimizer loops. Adding dedicated NumberBitwiseOr, NumberBitwiseAnd and NumberBitwiseXor simplified operators not only gives us precise (and correct) typing for the bitwise operations, but also allows us to actually verify the graph properly after typed lowering. Drive-by-fix: Remove the double-to-smi magic from the Deoptimizer, which is responsible for various deopt-loops in TurboFan, and is no longer needed with the addition of the NumberBitwise operators. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1422213002 Cr-Commit-Position: refs/heads/master@{#31594}
-
- 29 Sep, 2015 1 commit
-
-
jarin authored
BUG=v8:4446 LOG=n Review URL: https://codereview.chromium.org/1369313004 Cr-Commit-Position: refs/heads/master@{#31006}
-
- 04 Sep, 2015 1 commit
-
-
bmeurer authored
Similar to DELETE, the IN builtin is just a thin wrapper for %HasElement and %HasProperty anyway, and cannot be optimized, plus it had a weird special fast case (which also involved at least one LOAD_IC plus some intrinsic magic). R=yangguo@chromium.org,jarin@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_win_nosnap_shared_rel Committed: https://crrev.com/72d60a1e80e81e2e68ca402665e2acbc46c5e471 Cr-Commit-Position: refs/heads/master@{#30154} Review URL: https://codereview.chromium.org/1295433002 Cr-Commit-Position: refs/heads/master@{#30582}
-
- 02 Jun, 2015 1 commit
-
-
bmeurer authored
Unfortunately StringAdd is not pure in V8 because we might throw an exception if the resulting string length is outside the valid bounds, so there's no point in having a simplified StringAdd operator. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1164743002 Cr-Commit-Position: refs/heads/master@{#28747}
-
- 19 Mar, 2015 1 commit
-
-
Benedikt Meurer authored
This reduces the overhead of typed lowering, because we lower JSToBoolean/JSUnaryNot directly if possible, instead of first lowering to AnyToBoolean, and then letting the SimplifiedOperatorReducer do the further lowering. Also remove some obsolete tests from the cctest suite that have since been removed by proper unittests. And improve unitttest coverage for the typed lowering cases. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/999173003 Cr-Commit-Position: refs/heads/master@{#27295}
-
- 14 Jan, 2015 1 commit
-
-
bmeurer authored
TEST=cctest,mjsunit,unittests BUG=v8:3812 LOG=y Review URL: https://codereview.chromium.org/850013003 Cr-Commit-Position: refs/heads/master@{#26051}
-
- 13 Jan, 2015 1 commit
-
-
bmeurer authored
TEST=unittests Review URL: https://codereview.chromium.org/845333002 Cr-Commit-Position: refs/heads/master@{#26038}
-
- 08 Jan, 2015 1 commit
-
-
bmeurer authored
TEST=cctest/test-representation-change,unittests,mjsunit/compiler/regress-bit-number-constant R=jarin@chromium.org Review URL: https://codereview.chromium.org/840953003 Cr-Commit-Position: refs/heads/master@{#25987}
-
- 05 Jan, 2015 1 commit
-
-
Benedikt Meurer authored
Introduce a new AnyToBoolean simplified operator to handle the later lowering of boolean conversions. Previously we tried to hack that with the generic JSToBoolean, having its context set to zero, but that lead to various problems/bugs and did not handle all cases. TEST=cctest,unittests R=jarin@chromium.org Review URL: https://codereview.chromium.org/800833003 Cr-Commit-Position: refs/heads/master@{#25958}
-
- 23 Dec, 2014 1 commit
-
-
bmeurer authored
TEST=cctest,unittests R=jochen@chromium.org Review URL: https://codereview.chromium.org/821913002 Cr-Commit-Position: refs/heads/master@{#25935}
-
- 02 Dec, 2014 2 commits
-
-
Benedikt Meurer authored
TEST=unittests R=dcarney@chromium.org Review URL: https://codereview.chromium.org/772723003 Cr-Commit-Position: refs/heads/master@{#25605}
-
Benedikt Meurer authored
TEST=mjsunit,cctest,unittests R=jarin@chromium.org Review URL: https://codereview.chromium.org/763963002 Cr-Commit-Position: refs/heads/master@{#25591}
-
- 29 Oct, 2014 1 commit
-
-
titzer@chromium.org authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/686213002 Cr-Commit-Position: refs/heads/master@{#24995} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Oct, 2014 1 commit
-
-
bmeurer@chromium.org authored
TEST=unittests R=dcarney@chromium.org Review URL: https://codereview.chromium.org/685723002 Cr-Commit-Position: refs/heads/master@{#24935} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Oct, 2014 3 commits
-
-
bmeurer@chromium.org authored
Also remove the now obsolete ControlEffect operator. TEST=cctest,mjsunit,unittests R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/620803003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
As per discussion on the V8 team, this is the place we want them to live, not following the Chrome Style Guide for this. BUG=v8:3489 LOG=y R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/615393002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
This is currently only used for StoreElement. LoadElement will be updated to make use of that in a follow-up CL (depends on additional control input for loads first). TEST=cctest,mjsunit R=jarin@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/617853002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Sep, 2014 1 commit
-
-
bmeurer@chromium.org authored
Review URL: https://codereview.chromium.org/618643002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Sep, 2014 1 commit
-
-
bmeurer@chromium.org authored
This is preliminary work, required to properly support bounds checking for typed array loads/stores. TEST=compiler-unittests,cctest R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/602563002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Sep, 2014 1 commit
-
-
bmeurer@chromium.org authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/560103003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Sep, 2014 1 commit
-
-
bmeurer@chromium.org authored
TEST=compiler-unittests,cctest R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/554403003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-