- 27 Feb, 2016 1 commit
-
-
bmeurer authored
Since both null and undefined are also marked as undetectable now, we can just test that bit instead of having the CompareNilIC try to collect feedback to speed up the general case (without the undetectable bit being used). Drive-by-fix: Update the type system to match the new handling of undetectable in the runtime. R=danno@chromium.org Committed: https://crrev.com/666aec0348c8793e61c8633dee7ad29a514239ba Cr-Commit-Position: refs/heads/master@{#34237} Review URL: https://codereview.chromium.org/1722193002 Cr-Commit-Position: refs/heads/master@{#34344}
-
- 26 Feb, 2016 1 commit
-
-
adamk authored
Revert of [compiler] Drop the CompareNilIC. (patchset #4 id:60001 of https://codereview.chromium.org/1722193002/ ) Reason for revert: Speculative revert in attempt to fix #2 crasher on canary. Original issue's description: > [compiler] Drop the CompareNilIC. > > Since both null and undefined are also marked as undetectable now, we > can just test that bit instead of having the CompareNilIC try to collect > feedback to speed up the general case (without the undetectable bit > being used). > > Drive-by-fix: Update the type system to match the new handling of > undetectable in the runtime. > > R=danno@chromium.org > > Committed: https://crrev.com/666aec0348c8793e61c8633dee7ad29a514239ba > Cr-Commit-Position: refs/heads/master@{#34237} TBR=danno@chromium.org,verwaest@chromium.org,bmeurer@chromium.org LOG=y BUG=chromium:589897 NOTRY=true Review URL: https://codereview.chromium.org/1743433002 Cr-Commit-Position: refs/heads/master@{#34308}
-
- 24 Feb, 2016 1 commit
-
-
bmeurer authored
Since both null and undefined are also marked as undetectable now, we can just test that bit instead of having the CompareNilIC try to collect feedback to speed up the general case (without the undetectable bit being used). Drive-by-fix: Update the type system to match the new handling of undetectable in the runtime. R=danno@chromium.org Review URL: https://codereview.chromium.org/1722193002 Cr-Commit-Position: refs/heads/master@{#34237}
-
- 17 Feb, 2016 1 commit
-
-
bbudge authored
Adds kSimd128 to MachineRepresentation. Adds a Simd128Register concept that's platform independent. Adds UntaggedSimd128 to types.h. LOG=N BUG=v8:4124 Review URL: https://codereview.chromium.org/1693963004 Cr-Commit-Position: refs/heads/master@{#34089}
-
- 16 Feb, 2016 1 commit
-
-
jarin authored
Review URL: https://codereview.chromium.org/1700923002 Cr-Commit-Position: refs/heads/master@{#34026}
-
- 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}
-
- 27 Jan, 2016 1 commit
-
-
jarin authored
Field types can contain at most one map, so we can just use IsClass(). Review URL: https://codereview.chromium.org/1633213003 Cr-Commit-Position: refs/heads/master@{#33533}
-
- 26 Jan, 2016 1 commit
-
-
jarin authored
This replace HeapType with a dedicated class that implements just what we need for field type tracking. In the next CL, I plan to remove FieldType::Iterator because FieldType can iterate over at most one map. The ultimate plan is to get rid of templates in types.(h|cc) and remove type-inl.h. TBR=rossberg@chromium.org Review URL: https://codereview.chromium.org/1636013002 Cr-Commit-Position: refs/heads/master@{#33521}
-
- 25 Jan, 2016 1 commit
-
-
bmeurer authored
Cleanup %ForInPrepare runtime entry, and unify common logic with %ForInEnumerate (renamed from %GetPropertyNamesFast). Also introduce a TupleType to properly type JSForInPrepare and its projections w/o special hacks in the Typer. And fix %ForInNext and JSForInNext to be consistent with fullcodegen again (after the proxy refactorings last quarter). R=jarin@chromium.org BUG=v8:3650 LOG=n Review URL: https://codereview.chromium.org/1631583002 Cr-Commit-Position: refs/heads/master@{#33487}
-
- 10 Nov, 2015 1 commit
-
-
bmeurer authored
Avoid write barriers when storing values in the root set, and use cheaper write barriers for storing maps or tagged pointers. Also improve the generated code for write barriers, utilizing the out of line code mechanism that is available to TurboFan backends, which moves the unlikely case out of the hot path. R=jarin@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1414183006 Cr-Commit-Position: refs/heads/master@{#31914}
-
- 05 Nov, 2015 1 commit
-
-
bmeurer authored
This inserts a new bit set type Function, which is used to represent JSFunctions, and uses that type in typed lowering to optimize calls to use the CallFunction builtin directly. Also allows for better typing of the typeof operator, which can infern "function" for JSFunctions properly. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1410343016 Cr-Commit-Position: refs/heads/master@{#31827}
-
- 04 Nov, 2015 1 commit
-
-
bmeurer authored
We don't need to distinguish between signed and unsigned integral representations in the big boy type system. It actually even hurts in some cases. The representation is only about the way the values are mapped to bits in memory/registers, but the interpretation of the bits is specified by the semantic dimension. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1416953006 Cr-Commit-Position: refs/heads/master@{#31771}
-
- 30 Sep, 2015 1 commit
-
-
mstarzinger authored
This enables linter checking for "readability/namespace" violations during presubmit and instead marks the few known exceptions that we allow explicitly. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1371083003 Cr-Commit-Position: refs/heads/master@{#31019}
-
- 17 Sep, 2015 1 commit
-
-
neis authored
R=jarin BUG= Review URL: https://codereview.chromium.org/1343933002 Cr-Commit-Position: refs/heads/master@{#30790}
-
- 15 Sep, 2015 1 commit
-
-
neis authored
R=jarin BUG= Review URL: https://codereview.chromium.org/1340023003 Cr-Commit-Position: refs/heads/master@{#30728}
-
- 14 Sep, 2015 1 commit
-
-
neis authored
Also clarify some comments. R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/1328193003 Cr-Commit-Position: refs/heads/master@{#30708}
-
- 03 Sep, 2015 1 commit
-
-
neis authored
BUG= Review URL: https://codereview.chromium.org/1312893010 Cr-Commit-Position: refs/heads/master@{#30559}
-
- 31 Aug, 2015 1 commit
-
-
bradnelson authored
Unbounded is defined in terms of None any Any, which don't require an explicit zone. Switching Unbounded to be the same. BUG= None TEST= trybots R= titzer@chromium.org LOG=N Review URL: https://codereview.chromium.org/1322003002 Cr-Commit-Position: refs/heads/master@{#30482}
-
- 21 Aug, 2015 1 commit
-
-
rossberg authored
- Introduce a proper bit for SIMD primitive values. - Introduce constructors for individual SIMD types. These are currently just classes, which seems good enough for now, given that we always have exactly one global map per SIMD type. The only problem with using class types for SIMD is that a SIMD constant won't be a subtype of its specific type, only of the general SIMD type. But until we actually introduce SIMD constants into the compiler that shouldn't matter. R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/1303863002 Cr-Commit-Position: refs/heads/master@{#30294}
-
- 13 Aug, 2015 1 commit
-
-
mstarzinger authored
This CL us a pure refactoring that makes an empty compilation unit including just "foo.h" but not "foo-inl.h" compile without warnings or errors. This is needed to further reduce the header dependency tangle. R=rossberg@chromium.org Review URL: https://codereview.chromium.org/1290743005 Cr-Commit-Position: refs/heads/master@{#30158}
-
- 23 Jun, 2015 1 commit
-
-
mstarzinger authored
This is a precursor to using specialized LoadIC and StoreIC stubs for global variable access. It also removes the need to keep track of the global object in the type system, hence freeing up one bit. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1205473004 Cr-Commit-Position: refs/heads/master@{#29231}
-
- 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}
-
- 15 Jun, 2015 1 commit
-
-
bmeurer authored
The TryLowerDirectJSCall method tried to lower to a direct JavaScript function call depending on the type of the receiver, but only if the target is a cosntant JSFunction. Since this depends on types and is not required for correctness, it shouldn't be part of generic lowering anyway. So this functionality was moved to typed lowering instead, and we use proper types for the target instead. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1182193005 Cr-Commit-Position: refs/heads/master@{#29028}
-
- 15 Apr, 2015 1 commit
-
-
scottmg authored
enum defaults to signed on win, and kTagged has 1<<31 causing warning. Full errors: d:\src\cr3\src\v8\src\types.cc(1259): error C2220: warning treated as error - no 'object' file generated d:\src\cr3\src\v8\src\types.cc(1241): note: while compiling class template member function 'void v8::internal::TypeImpl<v8::internal::ZoneTypeConfig>::BitsetType::Print(std::ostream &,v8::internal::TypeImpl<v8::internal::ZoneTypeConfig>::bitset)' d:\src\cr3\src\v8\src\types.cc(1283): note: see reference to function template instantiation 'void v8::internal::TypeImpl<v8::internal::ZoneTypeConfig>::BitsetType::Print(std::ostream &,v8::internal::TypeImpl<v8::internal::ZoneTypeConfig>::bitset)' being compiled d:\src\cr3\src\v8\src\types.cc(1355): note: see reference to class template instantiation 'v8::internal::TypeImpl<v8::internal::ZoneTypeConfig>::BitsetType' being compiled d:\src\cr3\src\v8\src\types.cc(1259): warning C4838: conversion from 'int' to 'const v8::internal::TypeImpl<v8::internal::ZoneTypeConfig>::bitset' requires a narrowing conversion d:\src\cr3\src\v8\src\types.cc(1259): note: to simplify migration, consider the temporary use of /Wv:18 flag with the version of the compiler with which you used to build without warnings d:\src\cr3\src\v8\src\types.cc(323): warning C4838: conversion from '' to 'v8::internal::TypeImpl<v8::internal::ZoneTypeConfig>::bitset' requires a narrowing conversion d:\src\cr3\src\v8\src\types.cc(323): note: to simplify migration, consider the temporary use of /Wv:18 flag with the version of the compiler with which you used to build without warnings d:\src\cr3\src\v8\src\types.cc(315): note: while compiling class template static data member 'const v8::internal::TypeImpl<v8::internal::ZoneTypeConfig>::BitsetType::Boundary v8::internal::TypeImpl<v8::internal::ZoneTypeConfig>::BitsetType::BoundariesArray[]' d:\src\cr3\src\v8\src\types.cc(1259): warning C4838: conversion from 'int' to 'const v8::internal::TypeImpl<v8::internal::HeapTypeConfig>::bitset' requires a narrowing conversion d:\src\cr3\src\v8\src\types.cc(1259): note: to simplify migration, consider the temporary use of /Wv:18 flag with the version of the compiler with which you used to build without warnings d:\src\cr3\src\v8\src\types.cc(1241): note: while compiling class template member function 'void v8::internal::TypeImpl<v8::internal::HeapTypeConfig>::BitsetType::Print(std::ostream &,v8::internal::TypeImpl<v8::internal::HeapTypeConfig>::bitset)' d:\src\cr3\src\v8\src\types.cc(1283): note: see reference to function template instantiation 'void v8::internal::TypeImpl<v8::internal::HeapTypeConfig>::BitsetType::Print(std::ostream &,v8::internal::TypeImpl<v8::internal::HeapTypeConfig>::bitset)' being compiled d:\src\cr3\src\v8\src\types.cc(1359): note: see reference to class template instantiation 'v8::internal::TypeImpl<v8::internal::HeapTypeConfig>::BitsetType' being compiled d:\src\cr3\src\v8\src\types.cc(323): warning C4838: conversion from '' to 'v8::internal::TypeImpl<v8::internal::HeapTypeConfig>::bitset' requires a narrowing conversion d:\src\cr3\src\v8\src\types.cc(323): note: to simplify migration, consider the temporary use of /Wv:18 flag with the version of the compiler with which you used to build without warnings d:\src\cr3\src\v8\src\types.cc(315): note: while compiling class template static data member 'const v8::internal::TypeImpl<v8::internal::HeapTypeConfig>::BitsetType::Boundary v8::internal::TypeImpl<v8::internal::HeapTypeConfig>::BitsetType::BoundariesArray[]' LOG=N R=jochen@chromium.org BUG=440500 Review URL: https://codereview.chromium.org/1055933004 Cr-Commit-Position: refs/heads/master@{#27854}
-
- 10 Apr, 2015 1 commit
-
-
titzer authored
R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/1074133002 Cr-Commit-Position: refs/heads/master@{#27749}
-
- 02 Mar, 2015 1 commit
-
-
Jaroslav Sevcik authored
BUG= R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/972543003 Cr-Commit-Position: refs/heads/master@{#26944}
-
- 12 Feb, 2015 1 commit
-
-
jarin authored
R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/904863002 Cr-Commit-Position: refs/heads/master@{#26621}
-
- 28 Jan, 2015 2 commits
-
-
jarin authored
BUG= R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/882063002 Cr-Commit-Position: refs/heads/master@{#26307}
-
jarin authored
This reverts commit 76193749. BUG= Review URL: https://codereview.chromium.org/877643002 Cr-Commit-Position: refs/heads/master@{#26301}
-
- 22 Jan, 2015 1 commit
-
-
bmeurer authored
Revert of Steps towards unification of number bitset and range types. (patchset #4 id:60001 of https://codereview.chromium.org/837723006/) Reason for revert: Breaks test-types/Maybe, i.e. out/Release/cctest --random-seed=-707413401 test-types/Maybe started failing afterwards Original issue's description: > Steps towards unification of number bitset and range types. > > - New invariant on union types: if the union has a range then the number > bits in the bitset must be cleared. > > - Various tweaks in intersection and union to satisfy the invariant. > > - Exposed and used representation bits in range types (and the Limits > helper class). > > - Implemented Glb for ranges so that the Is predicate handles > ranges correctly. > > - Change typer weakening so that it does not rely on GetRange. > However, the code still seems to be a bit fragile. > > - Removed the Smi types from the type system core, instead introduced > Signed31, Unsigned30 and created constructors for Small(Un)Signed > that point to the right type for the architecture. > > - Punched a hole in the config to be able to get to the isolate so > that it is possible to allocate heap numbers for newly created > ranges. > > Patch by jarin@chromium.prg, original review here: > https://codereview.chromium.org/795713003/ > > TBR=jarin@chromium.org > BUG= > > Committed: https://crrev.com/2764fd8d1a266a9136c987c2483492113b0c8d80 > Cr-Commit-Position: refs/heads/master@{#26197} TBR=jkummerow@chromium.org,rossberg@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/868583002 Cr-Commit-Position: refs/heads/master@{#26207}
-
- 21 Jan, 2015 1 commit
-
-
rossberg authored
- New invariant on union types: if the union has a range then the number bits in the bitset must be cleared. - Various tweaks in intersection and union to satisfy the invariant. - Exposed and used representation bits in range types (and the Limits helper class). - Implemented Glb for ranges so that the Is predicate handles ranges correctly. - Change typer weakening so that it does not rely on GetRange. However, the code still seems to be a bit fragile. - Removed the Smi types from the type system core, instead introduced Signed31, Unsigned30 and created constructors for Small(Un)Signed that point to the right type for the architecture. - Punched a hole in the config to be able to get to the isolate so that it is possible to allocate heap numbers for newly created ranges. Patch by jarin@chromium.prg, original review here: https://codereview.chromium.org/795713003/ TBR=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/837723006 Cr-Commit-Position: refs/heads/master@{#26197}
-
- 12 Dec, 2014 1 commit
-
-
Benedikt Meurer authored
- Decouple JSBuiltinReducer from JSTypedLowering. - Unify JSTypedLowering::ReduceJSToXXX() lowering. - Cleanup several includes and forward declarations. - Unify helper methods. TEST=cctest R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/797903003 Cr-Commit-Position: refs/heads/master@{#25790}
-
- 11 Dec, 2014 2 commits
-
-
jarin authored
This reverts commit 8a6cbf0a. R=rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/788313002 Cr-Commit-Position: refs/heads/master@{#25786}
-
rossberg authored
To make space in the type bitset, remove Function, RegExp, and Buffer types for now, since they aren't really relied upon anyway. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/795993002 Cr-Commit-Position: refs/heads/master@{#25776}
-
- 10 Dec, 2014 3 commits
-
-
jarin authored
Revert of Avoid number range holes in bitset types. (patchset #5 id:80001 of https://codereview.chromium.org/759013003/) Reason for revert: For breaking the waterfall (run-json-stringify test). Original issue's description: > Avoid number range holes in bitset types. > > BUG= TBR=rossberg@chromium.org NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/794663002 Cr-Commit-Position: refs/heads/master@{#25756}
-
jarin authored
BUG= Review URL: https://codereview.chromium.org/759013003 Cr-Commit-Position: refs/heads/master@{#25754}
-
Benedikt Meurer authored
TEST=cctest R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/790123002 Cr-Commit-Position: refs/heads/master@{#25743}
-
- 20 Nov, 2014 1 commit
-
-
Andreas Rossberg authored
R=jarin@chromium.org BUG=433332 LOG=N Review URL: https://codereview.chromium.org/739563002 Cr-Commit-Position: refs/heads/master@{#25436}
-
- 13 Nov, 2014 2 commits
-
-
Jaroslav Sevcik authored
This relands commit 4c1f4b79. R=rossberg@chromium.org Review URL: https://codereview.chromium.org/723023002 Cr-Commit-Position: refs/heads/master@{#25317}
-
Jaroslav Sevcik authored
This reverts commit 4c1f4b79. TBR=rossberg@chromium.org Review URL: https://codereview.chromium.org/722943003 Cr-Commit-Position: refs/heads/master@{#25312}
-