- 28 Sep, 2016 1 commit
-
-
mvstanton authored
Cleanup. BUG= Review-Url: https://codereview.chromium.org/2379573002 Cr-Commit-Position: refs/heads/master@{#39830}
-
- 27 Sep, 2016 1 commit
-
-
mvstanton authored
Adding this back in because it's not part of the stability issue. BUG=chromium:649967 TBR=jarin@chromium.org Review-Url: https://codereview.chromium.org/2365373004 Cr-Commit-Position: refs/heads/master@{#39761}
-
- 26 Sep, 2016 2 commits
-
-
mvstanton authored
Reverted for stability reasons. BUG=chromium:649967 TBR=jarin@chromium.org Review-Url: https://codereview.chromium.org/2370763002 Cr-Commit-Position: refs/heads/master@{#39720}
-
mvstanton authored
Reverted for stability reasons. BUG=chromium:649967 TBR=jarin@chromium.org Review-Url: https://codereview.chromium.org/2366313002 Cr-Commit-Position: refs/heads/master@{#39716}
-
- 23 Sep, 2016 1 commit
-
-
mvstanton authored
BUG= Review-Url: https://codereview.chromium.org/2366433003 Cr-Commit-Position: refs/heads/master@{#39666}
-
- 22 Sep, 2016 1 commit
-
-
mvstanton authored
BUG= Review-Url: https://codereview.chromium.org/2359153002 Cr-Commit-Position: refs/heads/master@{#39641}
-
- 12 Sep, 2016 1 commit
-
-
mstarzinger authored
R=mvstanton@chromium.org Review-Url: https://codereview.chromium.org/2326493002 Cr-Commit-Position: refs/heads/master@{#39334}
-
- 05 Sep, 2016 4 commits
-
-
mvstanton authored
BUG= Review-Url: https://codereview.chromium.org/2309823002 Cr-Commit-Position: refs/heads/master@{#39181}
-
bmeurer authored
We used to have Array types for typed arrays in asm.js at some point, but had to change that quite some time ago already. And Function types were mostly used for the CallInterfaceDescriptor (and the code-stub.js experiment), but are also unusedn nowadays. R=mvstanton@chromium.org BUG=v8:5267,v8:5270 Review-Url: https://codereview.chromium.org/2310923002 Cr-Commit-Position: refs/heads/master@{#39168}
-
bmeurer authored
Those have been effectively unused for quite a while now, and we don't see any use in having them around. Actually it'd be way more consistent and simpler to just use OtherInternal as type for contexts instead. R=mvstanton@chromium.org BUG=v8:5267,v8:5270 Review-Url: https://codereview.chromium.org/2305383002 Cr-Commit-Position: refs/heads/master@{#39166}
-
bmeurer authored
There are no users of class types left inside TurboFan, so we can nuke them and thereby simplify the type system quite a bit. R=mvstanton@chromium.org BUG=v8:5267,v8:5270 Review-Url: https://codereview.chromium.org/2309753002 Cr-Commit-Position: refs/heads/master@{#39152}
-
- 02 Sep, 2016 1 commit
-
-
mvstanton authored
Our Type class has a semantic and representational dimension. Much code in src/ast, Crankshaft and Turbofan is based on it. Going forward in Turbofan we'd like to remove representational information entirely. To that end, new type AstType has been created to preserve existing behavior for the benefit of Crankshaft and the AST. BUG= Review-Url: https://codereview.chromium.org/2302283002 Cr-Commit-Position: refs/heads/master@{#39135}
-
- 31 Aug, 2016 1 commit
-
-
bmeurer authored
We (mis)used Type::Class to track stable field maps in the past. But that always more or less unsupport and wrong for various reasons, mostly because the class types do not really present static information and thus it is possible to violate fundamental assumptions of the type system (i.e. intersecting class types and other types produces "interesting" results). Now it is possible to finally nuke the class types completely and thus simplify (and ideally correctify) the type system further. Note to performance sheriff: We do expect to see some performance regressions from this change. This is because we do not yet have a sane replacement mechanism to track known field maps and utilize them during LoadElimination. This will be accomplished in a follow up CL. BUG=v8:5270,v8:5267 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2293343002 Cr-Commit-Position: refs/heads/master@{#39031}
-
- 17 Aug, 2016 1 commit
-
-
mstarzinger authored
This removes the representation axis from the type of {Load/StoreField} operators representing a property load/store. The representation would be narrowed to {None} which causes problems for all places where we use the type to reason about the value representation. Instead we should fully switch to {MachineRepresentation}. This is just a stop-gap fix. R=jarin@chromium.org BUG=chromium:636716 Review-Url: https://codereview.chromium.org/2255533003 Cr-Commit-Position: refs/heads/master@{#38678}
-
- 10 Aug, 2016 1 commit
-
-
bmeurer authored
Separate ConvertTaggedHoleToUndefined and CheckTaggedHole into two separate operators, where the former is pure and just turns into trivial control flow in the EffectControlLinearizer. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2236443004 Cr-Commit-Position: refs/heads/master@{#38559}
-
- 03 Aug, 2016 2 commits
-
-
bmeurer authored
Move all the typing rules for unary and binary number operations to the OperationTyper and use them for both the regular Typer as well as the retyper that runs as part of SimplifiedLowering. R=epertoso@chromium.org Review-Url: https://codereview.chromium.org/2202883005 Cr-Commit-Position: refs/heads/master@{#38283}
-
bmeurer authored
Infer a more precise type even in case where NaN and/or -0 is a possible outcome of the operation, and use this more precise type to improve code generation for the modulus itself by trying harder to stick to Word32 operations instead of going to Float64, and also optimize the pattern where we compare the output of x % y to some non-zero integer constant K, in which case we can truncate the output of x % y to Word32 if the type of x % y is Signed32/Unsigned32 \/ NaN \/ MinusZero, as NaN and MinusZero will both be truncated to zero, which cannot match the non zero constant K. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2202413002 Cr-Commit-Position: refs/heads/master@{#38267}
-
- 15 Jun, 2016 2 commits
-
-
bmeurer authored
These simplified operators are used to perform the hole checks when loading elements from a holey array. Depending on the CheckHoleMode, they either return the hole as undefined or some NaN, or deoptimize if the value is the hole or the hole NaN. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2066223002 Cr-Commit-Position: refs/heads/master@{#37001}
-
bmeurer authored
Now that we have the PlainPrimitiveToNumber operator(s), we can unify all the places where we expect a number, but can also safely handle any plain-primitive (via ToNumber truncation). Drive-by-fix: Also handle Math.min consistently with Math.max. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2064953004 Cr-Commit-Position: refs/heads/master@{#36984}
-
- 01 Jun, 2016 1 commit
-
-
bmeurer authored
R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2024853002 Cr-Commit-Position: refs/heads/master@{#36627}
-
- 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}
-