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
bmeurer@chromium.org
990b57ba1d
Treat uninitialized as internal type.
...
TEST=cctest/test-types
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/232913002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 11:51:03 +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
4620ae5cf1
Fix symmetry of Maybe() predicate. Fix bug in NowContains() predicate.
...
Add tests for TypeImpl::Of(), TypeImpl::NowOf() and
TypeImpl::NowContains(). Improves the implementation of
TypeImpl::NowIs() to match that of TypeImpl::NowContains().
Mark test-types with NO_VARIANTS to speedup testing, since
the variants do not affect the type system at all.
Also improve test coverage for types.
TEST=cctest/test-types
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/230673002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-10 08:04:50 +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
dcarney@chromium.org
1d138ecdd5
Revert "Refactoring to allow adding new structured types"
...
This reverts commit r20538 for breaking gcmole.
TBR=rossberg@chromium.org
BUG=
Review URL: https://codereview.chromium.org/228223002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-08 07:48:47 +00:00
rossberg@chromium.org
32f295314c
Refactoring to allow adding new structured types
...
Also, simplfy representation of zone types, using a simple struct.
R=bmeurer@chromium.org
BUG=
LOG=N
Review URL: https://codereview.chromium.org/225923002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-07 11:00:41 +00:00
bmeurer@chromium.org
448486ed48
Use distinct maps for oddballs with special handling in the type system.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/227473002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-07 09:41:13 +00:00
bmeurer@chromium.org
0d1c01cb92
Properly pass dim to recursive calls in TypePrint().
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/224723007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-04 09:00:30 +00:00
bmeurer@chromium.org
0968128371
TypePrint() does not depend on Object::Print().
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/225353004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-04 07:21:59 +00:00
bmeurer@chromium.org
e054f08006
Add unhandlified versions of Of() and NowOf().
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/221813002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-02 07:01:43 +00:00
rossberg@chromium.org
5d5adbc452
Provide Type::Contains methods.
...
Also, rename all *Currently methods to Now*.
R=bmeurer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/219523003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-01 13:11:12 +00:00
yangguo@chromium.org
10abff3498
Remove internalized cons string types.
...
Currently, internalizing a cons string could result in either an
in-place converted internalized cons string or a newly created
internalized sequential string, depending on allocation success.
The former could end up being embedded into an IC, which is not
supported.
R=mstarzinger@chromium.org
BUG=357103
LOG=N
Review URL: https://codereview.chromium.org/218993011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-01 11:30:31 +00:00
bmeurer@chromium.org
7c38cdb2bc
Make it possible to use HeapType inside objects-inl.h.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/220193007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-01 11:07:09 +00:00
rossberg@chromium.org
282a7ca14e
Fix Type::Intersect to skip uninhabited bitsets
...
R=verwaest@chromium.org , bmeurer@chromium.org
BUG=chromium:357330
LOG=Y
Review URL: https://codereview.chromium.org/219333003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-31 15:53:21 +00:00
rossberg@chromium.org
9b28aed3f6
Introduce representation types
...
Also:
- improve type pretty-printing,
- update doc comments,
- some renamings for consistency.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/176843006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 11:50:18 +00:00
rossberg@chromium.org
9abfab09fa
Types: cache lub bitset to avoid heap access
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/186743002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 10:28:38 +00:00
verwaest@chromium.org
8a3d715250
Revert "Use Representation::Integer32() for smi types on 32-bit-tagged systems."
...
Due to performance regression.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/189843006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 09:29:07 +00:00
verwaest@chromium.org
7bf33c53eb
Use Representation::Integer32() for smi types on 32-bit-tagged systems.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/187353005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 09:49:10 +00:00
bmeurer@chromium.org
3841070294
Handle the uninitialized oddball in Type::LubBitset().
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/166203002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-14 12:34:28 +00:00
rossberg@chromium.org
2311b678ae
Type representation converter
...
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/145083007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-24 11:47:47 +00:00
rossberg@chromium.org
0d906a8bdb
Zonify types in compiler frontend
...
Clean up some zone/isolate handling in AST and its visitors on the way.
(Based on https://codereview.chromium.org/103743004/ )
R=jkummerow@chromium.org , titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/102563004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 16:22:52 +00:00
rossberg@chromium.org
928d71f83b
Retry landing "Implement zone-allocated types"
...
Works around apparent scoping bug in VS, the only change to before being a method rename in the test suite:
--- a/test/cctest/test-types.cc
+++ b/test/cctest/test-types.cc
@@ -153,7 +153,7 @@ struct ZoneRep {
return reinterpret_cast<ZoneList<ZoneType*>*>(AsTagged(t));
}
- static Zone* Region(Zone* zone, Isolate* isolate) { return zone; }
+ static Zone* ToRegion(Zone* zone, Isolate* isolate) { return zone; }
};
@@ -168,7 +168,7 @@ struct HeapRep {
static Object* AsConstant(Handle<Type> t) { return Box::cast(*t)->value(); }
static FixedArray* AsUnion(Handle<Type> t) { return FixedArray::cast(*t); }
- static Isolate* Region(Zone* zone, Isolate* isolate) { return isolate; }
+ static Isolate* ToRegion(Zone* zone, Isolate* isolate) { return isolate; }
};
@@ -183,7 +183,7 @@ struct Tests : Rep {
isolate(CcTest::i_isolate()),
scope(isolate),
zone(isolate),
- T(Rep::Region(&zone, isolate), isolate) {
+ T(Rep::ToRegion(&zone, isolate), isolate) {
}
static void CheckEqual(TypeHandle type1, TypeHandle type2) {
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/143693003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 14:14:12 +00:00
rossberg@chromium.org
99359d389c
Revert "Implement zone-allocated types"
...
This reverts commit 4308974b16d1ee67d9f64d797c5ea64ffaab51df.
TBR=machenbach@chromium.org
BUG=
Review URL: https://codereview.chromium.org/133353005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-10 15:33:37 +00:00
rossberg@chromium.org
d849dfa5d4
Implement zone-allocated types
...
More template magic FTW.
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/103743004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-10 14:43:48 +00:00
rossberg@chromium.org
cb28b7f837
Retry "Templatise type representation" after making clang happy
...
The only thing different now is line types.h:208/236, which had a static_cast<Type*> before.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/133683002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-10 12:19:01 +00:00
machenbach@chromium.org
8ffcd2a281
[Sheriff] Revert "Templatise type representation" and "Fix Mac warnings".
...
This reverts commit r18521 and r18522 for breaking mac and win builders.
BUG=
TBR=rossberg@chromium.org
Review URL: https://codereview.chromium.org/132493002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-09 19:52:15 +00:00
rossberg@chromium.org
1c33a2d840
Templatise type representation
...
This is to support both heap- and zone-allocated types in the future (the latter not yet implemented).
Also, handlify the type API some more.
R=titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/107933005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-09 17:12:48 +00:00
rossberg@chromium.org
e78783a35c
Introduce Type::IsCurrently
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/83003003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 13:16:40 +00:00
rossberg@chromium.org
6aec0d39ae
Minor clean-up of Type::Print
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/75423002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 12:38:49 +00:00
rossberg@chromium.org
edb648277a
Provide Type::Of and Type::CurrentOf operators
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/73193004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-15 15:14:09 +00:00
rossberg@chromium.org
814fe1f5cb
Reenable 17167: "Ensure lower <= upper bound"
...
Fixed handlification bug (see 2nd patch).
Will handlify Type::Union and Type::Intersect in separate CL.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/27164003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-14 12:14:42 +00:00
danno@chromium.org
f55fc759dc
Revert 17167: "Ensure lower <= upper bound"
...
Due to crashes in nosnap ia32
TBR=rossberg@chromium.org
Review URL: https://codereview.chromium.org/27046002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-11 16:41:34 +00:00
rossberg@chromium.org
68cc8da20c
Ensure lower <= upper bound
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/26959004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-11 15:17:58 +00:00
rossberg@chromium.org
792dd705af
More precise type lub for numbers
...
R=jkummerow@chromium.org
BUG=v8:2910
Review URL: https://codereview.chromium.org/25722002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-10 12:30:06 +00:00
verwaest@chromium.org
5de783d47e
Adding Smi support to Add, Sub, Mul, and Bitwise
...
R=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/20070005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 11:53:38 +00:00
verwaest@chromium.org
b94d2cd610
Add fixed array to Type::LubBitset
...
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19960002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 15:27:38 +00:00
mstarzinger@chromium.org
ce81b0d3a8
ES6: Implement WeakSet
...
WeakSets work similar to ordinary Sets but the value (which must be an
object) is held weakly.
This is available under --harmony-collections
BUG=v8:2785
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/19678023
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 08:32:24 +00:00
olivf@chromium.org
01b4c2831e
Use static_cast instead of reinterpret_cast
...
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18899003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 16:00:08 +00:00
olivf@chromium.org
9a61947869
Fix missing spaces
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18991004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 12:01:29 +00:00
olivf@chromium.org
c5f20ef8dc
Type::GetName(...) for inspecting Types in the debugger
...
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18587007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 11:20:00 +00:00
yangguo@chromium.org
02674ee414
Keep two empty lines between declarations for cpp files
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18509003
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:52:11 +00:00
olivf@chromium.org
240c7aced9
Convert UnaryOpStub to a HydrogenCodeStub
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/18712002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:26:22 +00:00
olivf@chromium.org
950a372834
Revert "Convert UnaryOpStub to a HydrogenCodeStub"
...
The problem is the HCallConstantFunction which is not context sensitive, so we leak the builtin. We first need a Hydrogen version of __ IvokeBuiltin.
BUG=
R=danno@chromium.org , machenbach@chromium.org
Review URL: https://codereview.chromium.org/18650003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 19:57:25 +00:00
olivf@chromium.org
0d2fed8f26
Convert UnaryOpStub to a HydrogenCodeStub
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/17229005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 14:56:53 +00:00
danno@chromium.org
5b1ccfb952
Type handling for special cases and optimization
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/18078002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-27 15:31:49 +00:00
rossberg@chromium.org
e60acec321
Introduce Unsigned32 and RegExp types
...
Also, renamed Integer31 back to Smi, and Integer32 to Signed32.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17589013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 09:51:57 +00:00
dslomov@chromium.org
91eb5f8d25
DataView implementation.
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/17153011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 13:02:38 +00:00
rossberg@chromium.org
0977c60984
Use AST's type field and merge types for unary, binary & compare ICs
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17468003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-21 11:10:06 +00:00