- 22 Jun, 2016 1 commit
-
-
jarin authored
Review-Url: https://codereview.chromium.org/2084943002 Cr-Commit-Position: refs/heads/master@{#37166}
-
- 02 Feb, 2016 1 commit
-
-
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}
-
- 24 Nov, 2015 1 commit
-
-
bmeurer authored
We use comparisons with the_hole to implement temporal dead zones, so we should also optimize those, as they currently turn into CompareIC calls. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1473593002 Cr-Commit-Position: refs/heads/master@{#32198}
-
- 28 Oct, 2015 1 commit
-
-
bmeurer authored
Rename ZoneTypeCache to TypeCache and use a single shared (immutable) instance consistently to cache the most commonly used types. Also serves as a chokepoint for defining those types, so we don't repeat the definition (and possible bugs) in various places. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1409763004 Cr-Commit-Position: refs/heads/master@{#31631}
-
- 26 Oct, 2015 1 commit
-
-
bmeurer authored
Introduce new typing rules for LoadField[Map], which try to take into account stable map information if the object either has type Constant or type Class. If the map of the object is stable but can transition we have to introduce a code dependency in the Typer to make sure that the information (the Constant type we infer for LoadField[Map]) is valid (and stays valid). This also settles the policy for depending on map stability: The definition can introduce any number of maps, without having to pay attention to stability (i.e. you can always use Type::Class to introduce a map that is propagated along the value edges), and the use site is responsible for checking that the type information is valid before using it. I.e. if you use stable map information, you'll have to add a stability dependency (or make sure the map cannot transition). Drive-by-improvement: Add ReferenceEqualTyper which takes input types into account for improved constant folding. Drive-by-fix: Apply policy mentioned above to JSNativeContextSpecialization. R=jarin@chromium.org, rossberg@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1410953006 Cr-Commit-Position: refs/heads/master@{#31567}
-
- 26 Aug, 2015 1 commit
-
-
bradnelson authored
The zone type cache would be handy inside the asm.js typer. Pulling it out into a seperate inlinable header to allow sharing. BUG=https://code.google.com/p/v8/issues/detail?id=4203 TEST=None R=andreas@chromium.org,titzer@chromium.org LOG=N Review URL: https://codereview.chromium.org/1307093006 Cr-Commit-Position: refs/heads/master@{#30398}
-
- 30 Jun, 2015 1 commit
-
-
bmeurer authored
This optimization never triggers currently, and is inherently native context dependent for no real reason (for example it will not properly detect those constructors in the case of cross native context inlining), plus it is slow and awkward. In case we really need this functionality at some point, we should find a way to make it work with the builtin function id mechanism that is already in place to match other builtins. R=jarin@chromium.org,rossberg@chromium.org Review URL: https://codereview.chromium.org/1221683006 Cr-Commit-Position: refs/heads/master@{#29365}
-
- 24 Jun, 2015 2 commits
-
-
bmeurer authored
This way we need the common types only once per process and we don't need to recreate them for every compilation. It uses the same pattern that we already apply to caching operators. This simplifies the type cache a lot. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/1209513002 Cr-Commit-Position: refs/heads/master@{#29251}
-
danno authored
- Thread Type::FunctionType through stubs and the TF pipeline. - Augment Typer to decorate parameter nodes with types from a Type::FunctionType associated with interface descriptors. - Factor interface descriptors into platform-specific and platform-independent components so that all descriptors share a common Type::FunctionType for all platforms. Review URL: https://codereview.chromium.org/1197703002 Cr-Commit-Position: refs/heads/master@{#29248}
-
- 22 Jun, 2015 1 commit
-
-
bmeurer authored
This change does the following: a.) Remove unused fields from the Typer. b.) Move some interesting unions to types.h. c.) Reduce Typer constructor overhead. d.) Avoid heap allocation in the Typer. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1199903002 Cr-Commit-Position: refs/heads/master@{#29178}
-
- 17 Jun, 2015 1 commit
-
-
bmeurer authored
Currently the Typer is installed on the Graph, no matter if we actually use the types or not (read: even in the generic pipeline). Also the Typer tries hard to eagerly type nodes during graph building, which takes time, just to remove those types later again, and retype everything from scratch. Plus this is inconsistent, since it only applies to the outermost graph, not the inlined graphs (which are eagerly typed once the nodes are copied). So in summary, what's currently implemented is neither useful nor well defined, so for now we stick to the full typing approach until a proper design for eager typing is available that will actually benefit us. R=rossberg@chromium.org,mstarzinger@chromium.org,jarin@chromium.org Review URL: https://codereview.chromium.org/1192553002 Cr-Commit-Position: refs/heads/master@{#29086}
-
- 19 Mar, 2015 1 commit
-
-
Benedikt Meurer authored
The weaken limits are constants, there's no point in having a separate copy of those constants per typer that is initialized per Typer instance. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1008923004 Cr-Commit-Position: refs/heads/master@{#27297}
-
- 09 Feb, 2015 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org TEST=presubmit Review URL: https://codereview.chromium.org/905293002 Cr-Commit-Position: refs/heads/master@{#26525}
-
- 28 Jan, 2015 1 commit
-
-
jarin authored
BUG= R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/882063002 Cr-Commit-Position: refs/heads/master@{#26307}
-
- 23 Jan, 2015 1 commit
-
-
danno authored
Along the way: - Thread isolate parameter explicitly through code that used to rely on getting it from the zone. - Canonicalize the parameter position of isolate and zone for affected code - Change Hydrogen New<> instruction templates to automatically pass isolate R=mstarzinger@chromium.org LOG=N Review URL: https://codereview.chromium.org/868883002 Cr-Commit-Position: refs/heads/master@{#26252}
-
- 22 Dec, 2014 1 commit
-
-
Benedikt Meurer authored
According to ES6 draft, revision 29 (2014-12-06), section 7.1.2, ToBoolean yields true for true, detectable receivers (the ES6 Object type), symbols and numbers except -0, +0 and NaN. R=hpayer@chromium.org Review URL: https://codereview.chromium.org/807663006 Cr-Commit-Position: refs/heads/master@{#25915}
-
- 11 Dec, 2014 1 commit
-
-
Benedikt Meurer authored
R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/794113002 Cr-Commit-Position: refs/heads/master@{#25765}
-
- 08 Dec, 2014 1 commit
-
-
Benedikt Meurer authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/786703002 Cr-Commit-Position: refs/heads/master@{#25698}
-
- 03 Dec, 2014 3 commits
-
-
titzer authored
This reverts commit 918ef9d7. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/780623002 Cr-Commit-Position: refs/heads/master@{#25646}
-
Ben L. Titzer authored
This reverts commit a48ad24a. BUG= Review URL: https://codereview.chromium.org/763773004 Cr-Commit-Position: refs/heads/master@{#25643}
-
titzer authored
R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/769303002 Cr-Commit-Position: refs/heads/master@{#25633}
-
- 02 Dec, 2014 2 commits
-
-
titzer authored
R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/771683002 Cr-Commit-Position: refs/heads/master@{#25602}
-
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}
-
- 19 Nov, 2014 1 commit
-
-
Benedikt Meurer authored
According to ES5 9.5 and 9.6, NaN, -inf, +inf, -0 and 0 all truncate to zero for both ToInt32 and ToUint32, so we can be a lot smarter in the typer, loosing less information upon truncation (i.e. x | 0 and x >>> 0). R=jarin@chromium.org Review URL: https://codereview.chromium.org/739743003 Cr-Commit-Position: refs/heads/master@{#25412}
-
- 03 Nov, 2014 1 commit
-
-
mstarzinger@chromium.org authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/701473002 Cr-Commit-Position: refs/heads/master@{#25064} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Oct, 2014 1 commit
-
-
dcarney@chromium.org authored
R=mstarzinger@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/662513005 Cr-Commit-Position: refs/heads/master@{#24894} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Oct, 2014 1 commit
-
-
jarin@chromium.org authored
This is based on Georg's work on typing arithmetic operations (https://codereview.chromium.org/658743002/). Instead of weakening to bitset types, we weaken to the closest 2^n limit if we see that we are re-typing a node with a range type (which means that the node can be part of a cycle, so we might need to speed up the fixpoint there). BUG= R=rossberg@chromium.org Review URL: https://codereview.chromium.org/636283009 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Oct, 2014 4 commits
-
-
neis@chromium.org authored
R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/657793002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24640 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
rossberg@chromium.org authored
- Extend verifier to check types of JS and Simplified nodes. - Untyped nodes now contain NULL as types, enforcing hard failure. - Typer immediately installs itself as a decorator; remove explicit decorator installation. - Decorator eagerly types all nodes that have typed inputs (subsumes typing of constant cache, removing its typing side-channel and various spurious dependencies on the typer). - Cut down typer interface to prevent inconsistently typed graphs. - Remove verification from start, since it caused too much trouble with semi-wellformed nodes. - Fix a couple of bugs on the way that got uncovered. To do: verifying machine operators. Also, various conditions in the verifier are currently commented out, because they don't yet hold. BUG= R=jarin@chromium.org,titzer@chromium.org Review URL: https://codereview.chromium.org/658543002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
neis@chromium.org authored
This relands commit 24552. TBR=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/650513003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24615 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
This reverts commit r24609 for breaking the cctest/test-js-typed-lowering/Int32BitwiseBinops test. TBR=rossberg@chromium.org,neis@chromium.org Review URL: https://codereview.chromium.org/656003002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Oct, 2014 1 commit
-
-
neis@chromium.org authored
This relands commit 24552. R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/653693002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Oct, 2014 2 commits
-
-
neis@chromium.org authored
This reverts commit 24552. TBR=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/648163002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
neis@chromium.org authored
R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/618803003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Sep, 2014 1 commit
-
-
neis@chromium.org authored
R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/602693002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jul, 2014 1 commit
-
-
danno@chromium.org authored
R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/426233002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-