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