neis@chromium.org
a7eb593147
Reland "Refine expression typing, esp. by propagating range information."
...
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
2014-10-14 16:27:26 +00:00
neis@chromium.org
7045592947
Get rid of code duplication by computing int Lub using range Lub.
...
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/616563002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 10:34:54 +00:00
bmeurer@chromium.org
3eebdc3264
Replace OStream with std::ostream.
...
Review URL: https://codereview.chromium.org/618643002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-30 10:29:32 +00:00
neis@chromium.org
6fd04d829e
Redesign of the internal type system.
...
Besides addressing a fundamental flaw, this significantly simplifies
several aspects of the system. The downside is a loss of precision
and a loss of algebraic properties.
Range types are now fully implemented.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/558193003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-24 07:33:51 +00:00
rossberg@chromium.org
5d520f9ed1
Re-reland "Use unsigned type bitsets to limit undefined behaviour"
...
Change: make bitset uint32_t, to avoid weird sign extension bugs on Win64.
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/577563002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 12:58:43 +00:00
rossberg@chromium.org
2dbd871eb1
Re-revert "Use unsigned type bitsets to limit undefined behaviour"
...
...and the various debug CLs.
R=machenbach@chromium.org
BUG=
Review URL: https://codereview.chromium.org/564413004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23955 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-15 15:49:24 +00:00
rossberg@chromium.org
221b284570
Explicitly mask enum values to work around probable VS/Win64 compiler bug
...
TBR=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/564413003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-15 13:04:44 +00:00
rossberg@chromium.org
716b7ef798
Make type bitsets explicitly unsigned
...
TBR=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/556733003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-15 12:06:14 +00:00
rossberg@chromium.org
06e826493a
Moar prints
...
TBR=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/567363002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-15 11:19:20 +00:00
rossberg@chromium.org
21e0e00ae7
Reland "Use unsigned type bitsets to limit undefined behaviour"
...
Temporary debug attempt; adds output to failing test in test-types.cc, otherwise unchanged.
Windows f
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/567333002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-15 09:40:23 +00:00
ulan@chromium.org
c44a69d985
Revert r23916, r23917 for breaking 64-bit tests.
...
"Use unsigned type bitsets to limit undefined behaviour".
TBR=rossberg@chromium.org
Review URL: https://codereview.chromium.org/563283003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 16:13:05 +00:00
rossberg@chromium.org
98dc857e2f
Use unsigned type bitsets to limit undefined behaviour
...
R=bmeurer@chromium.org , svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/555153003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-12 13:03:53 +00:00
mstarzinger@chromium.org
4bee89e03c
Fix typed lowering of ToBoolean on NaN input.
...
R=rossberg@chromium.org
TEST=webkit/convert-nan-to-bool
Review URL: https://codereview.chromium.org/565493003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 12:38:16 +00:00
neis@chromium.org
c972e8e213
Extend some operations to range types.
...
This is a reland of 22945, which failed to build on Windows due to
(some versions of?) Visual Studio lacking copysign().
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/448093002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-07 15:30:16 +00:00
neis@chromium.org
7692ec62dc
Revert "Extend some operations to range types."
...
This reverts commit 22945. Turns out Visual Studio doesn't have copysign().
TBR=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/450473002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 17:43:55 +00:00
neis@chromium.org
86759140f0
Extend some operations to range types.
...
This is a reland of 22934, which failed to build on Windows due to a missing include, and on ARM due to a name clash with some predefined constants.
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/444023002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 17:23:47 +00:00
neis@chromium.org
19d07b2a9b
Revert "Extend some operations to range types."
...
This reverts 22934.
TBR=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/443123002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 14:09:21 +00:00
neis@chromium.org
a6ad240b91
Extend some operations to range types.
...
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/437393005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 13:51:38 +00:00
mstarzinger@chromium.org
df7057b3ce
Add convenience method to print types for debugging.
...
R=titzer@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/435403002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 09:26:49 +00:00
neis@chromium.org
f771870229
Remove obsolete declaration that broke Windows build.
...
TBR=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/440393002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 08:49:56 +00:00
bmeurer@chromium.org
11fb976bf4
Revert "Unbreak build with clang."
...
This reverts commit r22878 and fixes the actual bug instead.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/446573002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 14:19:22 +00:00
rossberg@chromium.org
cae6842a74
Undo some unintended changes from the Turbofan merge
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/435423002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 13:19:32 +00:00
bmeurer@chromium.org
d07a2eb806
Rename ASSERT* to DCHECK*.
...
This way we don't clash with the ASSERT* macros
defined by GoogleTest, and we are one step closer
to being able to replace our homegrown base/ with
base/ from Chrome.
R=jochen@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/430503007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 11:34:54 +00:00
danno@chromium.org
a1383e2250
Land the Fan (disabled)
...
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
2014-07-30 13:54:45 +00:00
neis@chromium.org
61e1994f83
Minor clarifications and simplifications as well as additional checks.
...
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/417553003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 17:17:48 +00:00
neis@chromium.org
e999cf2857
Revert "Minor clarifications and simplifications as well as additional checks."
...
This reverts commit d32eacbdea3fc0c119da06abe95b07a83c67aa48.
TBR=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/410083005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 15:39:08 +00:00
neis@chromium.org
6c67275fa0
Minor clarifications and simplifications as well as additional checks.
...
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/409743004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 15:30:34 +00:00
neis@chromium.org
f529000f7f
Fix Handle-related bug in RangeType constructor.
...
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/415603002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22564 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-23 14:11:30 +00:00
neis@chromium.org
6176dee6ea
Add constructor for range types.
...
R=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/409543004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-22 17:33:22 +00:00
svenpanne@chromium.org
d7934d1fbe
Start using OStreams.
...
Note that until everything is OStream-based, there are a few places
where we have to do some impedance matching. A few accessors had to be
const-corrected on the way.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/334763003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-03 07:18:30 +00:00
jochen@chromium.org
56a486c322
Use full include paths everywhere
...
- this avoids using relative include paths which are forbidden by the style guide
- makes the code more readable since it's clear which header is meant
- allows for starting to use checkdeps
BUG=none
R=jkummerow@chromium.org , danno@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/304153016
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 08:12:43 +00:00
rossberg@chromium.org
68a1a59556
Remove cpp hack to avoid link failures on Windows
...
TBR=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/298133005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 14:26:32 +00:00
rossberg@chromium.org
7ac892c8bd
Establish distributivity for type union & intersection
...
This requires introducing proper bounds on all leaf types, so that intersection between bitsets and these types can be accurately represented. Extending a union also becomes more involved.
(On the upside, the modified union/intersect algorithm would now allow support for proper variance for function types.)
Not sure if it is worth landing this. Distributivity isn't really a crucial property for our use cases. It seems fine if intersection is slightly lossy.
R=bmeurer@chromium.org , jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/251753005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 13:52:31 +00:00
rossberg@chromium.org
dbf7d8528c
Various extensions to types
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/296213005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-26 13:10:52 +00:00
bmeurer@chromium.org
779e87b87a
Track up to 5 stable maps as field type.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/240813002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 08:22:22 +00:00
rossberg@chromium.org
28912cae37
Implement structural function and array types
...
Just wanted to add two constructors to a datatype, how ugly can it get?
R=bmeurer@chromium.org , jarin@chromium.org
BUG=
Committed: https://code.google.com/p/v8/source/detail?r=20809
Committed: https://code.google.com/p/v8/source/detail?r=20815
Committed: https://code.google.com/p/v8/source/detail?r=20818
Review URL: https://codereview.chromium.org/228263005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 16:36:27 +00:00
rossberg@chromium.org
926ec656de
Implement structural function and array types
...
Just wanted to add two constructors to a datatype, how ugly can it get?
R=bmeurer@chromium.org , jarin@chromium.org
BUG=
Committed: https://code.google.com/p/v8/source/detail?r=20809
Committed: https://code.google.com/p/v8/source/detail?r=20815
Review URL: https://codereview.chromium.org/228263005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 16:16:37 +00:00
rossberg@chromium.org
e3e81d85bb
Revert "Implement structural function and array types"
...
TBR=jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/237963016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 15:59:39 +00:00
rossberg@chromium.org
6782d9cea3
Implement structural function and array types
...
Just wanted to add two constructors to a datatype, how ugly can it get?
R=bmeurer@chromium.org , jarin@chromium.org
BUG=
Committed: https://code.google.com/p/v8/source/detail?r=20809
Review URL: https://codereview.chromium.org/228263005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 15:42:22 +00:00
rossberg@chromium.org
a947aeb315
Revert "Implement structural function and array types"
...
TBR=jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/240143003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 13:57:25 +00:00
rossberg@chromium.org
7de4c1c63f
Implement structural function and array types
...
Just wanted to add two constructors to a datatype, how ugly can it get?
R=bmeurer@chromium.org , jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/228263005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20809 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-16 13:44:26 +00:00
rossberg@chromium.org
7b7f787e3b
Re-reland "More tests for Union & Intersect"
...
R=jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/237143002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 15:35:36 +00:00
rossberg@chromium.org
b73257b7a3
Revert "Reland "More tests for Union & Intersect""
...
Need to reproduce wrong result only occurring with ASAN.
TBR=jarin@chromium.org
BUG=
Review URL: https://codereview.chromium.org/236873002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 09:46:56 +00:00
rossberg@chromium.org
a3d743b470
Reland "More tests for Union & Intersect"
...
Fixes size approximation in Intersect. Also lowers the number of fuzzed types in test, to address time-outs.
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/226523004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-14 08:46:39 +00:00
dcarney@chromium.org
ee9f7f8942
Revert "More tests for Union & Intersect"
...
This reverts r20684.
TBR=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/235133002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 12:33:20 +00:00
rossberg@chromium.org
80d8460a20
More tests for Union & Intersect
...
Some fixes of corner cases on the way
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/230923005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 11:53:35 +00:00
bmeurer@chromium.org
9a544e1887
Inline TypeImpl::NowContains().
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/234743003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-11 09:24:35 +00:00
rossberg@chromium.org
cf4eddd3f8
Yet more type system tests
...
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/232843002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 11:49:18 +00:00
bmeurer@chromium.org
a0ac88db82
Fix various bugs in the type systems, and improve test coverage.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/230463003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 11:12:15 +00:00
rossberg@chromium.org
19f924a2ae
Reland "Refactoring to allow adding new structured types"
...
Same as before, except that it's now using a void array instead of a struct, to shut up Clang warnings.
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/224733023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-08 10:50:56 +00:00