- 04 Jan, 2017 1 commit
-
-
bmeurer authored
Also rule out -0 for NumberDivide if possible, and rule out NaN and -0 for NumberFloor if possible. R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2609373002 Cr-Commit-Position: refs/heads/master@{#42059}
-
- 08 Dec, 2016 1 commit
-
-
bmeurer authored
First step towards making arguments and rest parameters optimizable by splitting the allocations for the actual object and the elements. The object allocations can already be escape analyzed this way, the elements would need special support in the deoptimizer and the escape analysis, but that can be done as a second separate step. R=jarin@chromium.org BUG=v8:5726 Review-Url: https://codereview.chromium.org/2557283002 Cr-Commit-Position: refs/heads/master@{#41573}
-
- 24 Nov, 2016 1 commit
-
-
bmeurer authored
Recognize Date.now() calls in the Typer and assign the proper integer type to them. See Node issue https://github.com/nodejs/node/issues/9729 for more information. R=yangguo@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2528853003 Cr-Commit-Position: refs/heads/master@{#41242}
-
- 10 Nov, 2016 1 commit
-
-
bmeurer authored
This cleans up a few Type related TODOs, i.e. removing the now useless kSmi and kHeapNumber members from TypeCache. R=yangguo@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2488183002 Cr-Commit-Position: refs/heads/master@{#40874}
-
- 09 Nov, 2016 1 commit
-
-
bmeurer authored
This adds a new NumberToUint8Clamped simplified operator that does the round ties to even + clamping necessary to store to Uint8ClampedArrays. BUG=v8:4470,v8:5267,v8:5615 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2489563004 Cr-Commit-Position: refs/heads/master@{#40861}
-
- 17 Oct, 2016 1 commit
-
-
heimbuef authored
This adds more useful information to the v8-heap-stats tool. BUG=v8:5489 Review-Url: https://codereview.chromium.org/2394213003 Cr-Commit-Position: refs/heads/master@{#40361}
-
- 20 Sep, 2016 1 commit
-
-
heimbuef authored
This is some initial cleanup to keep /src clean. The AccountingAllocator is actually exclusively used by zones and this common subfolder makes that more clear. BUG=v8:5409 Review-Url: https://codereview.chromium.org/2344143003 Cr-Commit-Position: refs/heads/master@{#39558}
-
- 05 Sep, 2016 2 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}
-
- 01 Sep, 2016 1 commit
-
-
jarin authored
Review-Url: https://codereview.chromium.org/2306583002 Cr-Commit-Position: refs/heads/master@{#39103}
-
- 30 Aug, 2016 2 commits
-
-
mvstanton authored
Increasingly, we avoid using the representation dimension of Type, and set it explicitly ourselves. BUG= Review-Url: https://codereview.chromium.org/2290233002 Cr-Commit-Position: refs/heads/master@{#39026}
-
bmeurer authored
Put the types for the Date builtins into the TypeCache, and add support for Date.prototype.getDay and Date.prototype.getMinutes. R=epertoso@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2296593002 Cr-Commit-Position: refs/heads/master@{#39005}
-
- 29 Aug, 2016 2 commits
-
-
bmeurer authored
Infer exact types for the various Date getter builtins, and also inline the Date.prototype.getTime() builtin, which just returns the Date value and thus doesn't need to check the cache stamp. R=epertoso@chromium.org Review-Url: https://codereview.chromium.org/2285213002 Cr-Commit-Position: refs/heads/master@{#38973}
-
bmeurer authored
For asm.js we now have a dedicated AsmTyper, that uses it's own type system (which is tailored towards asm.js), and so we don't need the special asm.js types anymore in the TypeCache. This also moves the TypeCache into the src/compiler directory, because it doesn't make sense to use outside anyways. TBR=ahaas@chromium.org R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2289573002 Cr-Commit-Position: refs/heads/master@{#38964}
-
- 11 Aug, 2016 1 commit
-
-
bmeurer authored
This adds a very first version of inlined Array.prototype.pop into TurboFan optimized code. We currently limit the inlining to fast object or smi elements, until the unclear situation around hole NaNs is resolved and we have a clear semantics inside the compiler. It's also probably overly defensive in when it's safe to inline the call to Array.prototype.pop, but we can always extend that later once we have sufficient trust in the implementation and see an actual need to extend it. BUG=v8:2229,v8:3952,v8:5267 R=epertoso@chromium.org Review-Url: https://codereview.chromium.org/2239703002 Cr-Commit-Position: refs/heads/master@{#38578}
-
- 09 Aug, 2016 1 commit
-
-
bmeurer authored
Sanitize the typing rules for the various supported Math builtins, and add appropriate typing rules for various Number, String, Object and global builtins as well. R=franzih@chromium.org Review-Url: https://codereview.chromium.org/2222053002 Cr-Commit-Position: refs/heads/master@{#38472}
-
- 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}
-
- 01 Aug, 2016 1 commit
-
-
bmeurer authored
This adds initial support to inline a couple of the ArrayBuffer view accessors like %TypeArray%.prototype.length and. DataView.prototype.byteLength. R=epertoso@chromium.org Review-Url: https://codereview.chromium.org/2199753002 Cr-Commit-Position: refs/heads/master@{#38200}
-
- 11 Jul, 2016 1 commit
-
-
bmeurer authored
We can just do the Int32Abs lowering always for Signed32 inputs. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2134143002 Cr-Commit-Position: refs/heads/master@{#37638}
-
- 05 Jul, 2016 1 commit
-
-
bmeurer authored
The Number.parseInt (and therefore the parseInt function on the global object) are often used instead of Math.floor or just plain int32 truncation, and we can easily recognize those cases and provide a fast path in TurboFan. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2125583002 Cr-Commit-Position: refs/heads/master@{#37518}
-
- 01 Jul, 2016 1 commit
-
-
bmeurer authored
Import fdlibm versions of acos, acosh, asin and asinh, which are more precise and produce the same result across platforms (we were using libm versions for asin and acos so far, where both speed and precision depended on the operating system so far). Introduce appropriate TurboFan operators for these functions and use them both for inlining and for the generic builtin. Also migrate the Math.imul and Math.fround builtins to TurboFan builtins to ensure that their behavior is always exactly the same as the inlined TurboFan version (i.e. C++ truncation semantics for double to float don't necessarily meet the JavaScript semantics). For completeness, also migrate Math.sign, which can even get some nice love in TurboFan. Drive-by-fix: Some alpha-sorting on the Math related functions, and cleanup the list of Math intrinsics that we have to export via the native context currently. BUG=v8:3266,v8:3496,v8:3509,v8:3952,v8:5169,v8:5170,v8:5171,v8:5172 TBR=rossberg@chromium.org R=franzih@chromium.org Review-Url: https://codereview.chromium.org/2116753002 Cr-Commit-Position: refs/heads/master@{#37476}
-
- 28 Jun, 2016 1 commit
-
-
bmeurer authored
Add NumberAbs operator to implement an inline version of Math.abs, that can be optimized and eliminated. We don't use any speculation here, but for now stick to the information we can infer (this way we avoid the inherent deopt loops that Crankshaft has around Math.abs). CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel R=jarin@chromium.org BUG=v8:5086 Review-Url: https://codereview.chromium.org/2096403002 Cr-Commit-Position: refs/heads/master@{#37306}
-
- 20 Jun, 2016 1 commit
-
-
jarin authored
We now spread the word32 truncation even if the inputs can be minus zero as long as the result is not minus zero. Review-Url: https://codereview.chromium.org/2078423002 Cr-Commit-Position: refs/heads/master@{#37102}
-
- 19 Jun, 2016 1 commit
-
-
jarin authored
Review-Url: https://codereview.chromium.org/2080093002 Cr-Commit-Position: refs/heads/master@{#37080}
-
- 01 Apr, 2016 1 commit
-
-
jochen authored
We expect that the majority of malloc'd memory held by V8 is allocated in Zone objects. Introduce an Allocator class that is used by Zones to manage memory, and allows for querying the current usage. BUG=none R=titzer@chromium.org,bmeurer@chromium.org,jarin@chromium.org LOG=n TBR=rossberg@chromium.org Review URL: https://codereview.chromium.org/1847543002 Cr-Commit-Position: refs/heads/master@{#35196}
-
- 08 Feb, 2016 1 commit
-
-
bmeurer authored
This moves the JSCreate related functionality from JSTypedLowering into a dedicated JSCreateLowering reducer. This is in preparation of landing the support for optimized literals in TurboFan, which would blow up JSTypedLowering quite seriously otherwise. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1678833002 Cr-Commit-Position: refs/heads/master@{#33813}
-
- 30 Nov, 2015 1 commit
-
-
bradnelson authored
Shifts of integer values are in some contexts collapsed by the parser into single literal AST nodes, rather than a direct representation of the parse tree. Confirming this behavior in tests. Integer TypedArrays are assumed to load and store "intish" values rather than more fine-grained type information. Reducing the precision of the typing information to match the spec and simplify the wasm generator. The asm spec requires load and store values of various "float?", "floatish", "double?" and "intish" types to ensure undefined values are not visible and that float32 rounding occurs at the right time. More closely matching this. Adding additional testing around unsigned / signed comparisons, loads and stores. Adding addition debug mode printing when asserting about types fail. BUG= https://code.google.com/p/v8/issues/detail?id=4203 TEST=test-asm-validator, wasm side tests R=titzer@chromium.org,aseemgarg@chromium.org LOG=N Review URL: https://codereview.chromium.org/1471073003 Cr-Commit-Position: refs/heads/master@{#32419}
-
- 26 Nov, 2015 1 commit
-
-
bmeurer authored
For a * b with only truncated word32 uses (or result known to be in signed32 range), we can use Int32Mul if we know for sure that the intermediate result is inside the safe integer range, and a and b are in signed32 range. Drive-by-fix: Also use TypeCache in SimplifiedLowering. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1478953002 Cr-Commit-Position: refs/heads/master@{#32330}
-
- 24 Nov, 2015 1 commit
-
-
bmeurer authored
Add support for using inline allocations for arrays in lowering of JSCreateArray when target equals new.target. Currently we are only concerend with the straight-forward Array() and Array(length) cases, but at some point TurboFan should also be able to support the more complex initializing cases. R=mvstanton@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1465203002 Cr-Commit-Position: refs/heads/master@{#32191}
-
- 17 Nov, 2015 1 commit
-
-
bradnelson authored
The current typing-asm mishandles the relationship between unsigned numbers and int. Restructuring and using type shortcuts that approximate asm types. BUG= https://code.google.com/p/v8/issues/detail?id=4203 TEST=test-asm-validator R=titzer@chromium.org,aseemgarg@chromium.org LOG=N Review URL: https://codereview.chromium.org/1447133002 Cr-Commit-Position: refs/heads/master@{#32057}
-
- 05 Nov, 2015 1 commit
-
-
bmeurer authored
TurboFan didn't fully support the relevant ES6 type conversion intrinsics like %_ToNumber, %_ToLength, %_ToName, %_ToString and %_ToInteger until now, we always went to the runtime instead. These intrinsics are now well supported in TurboFan, and we are even able to generate quite decent code in some cases. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1428243003 Cr-Commit-Position: refs/heads/master@{#31820}
-
- 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}
-
- 03 Nov, 2015 1 commit
-
-
bradnelson authored
Only cast to integer with xor (closer to the spec which allows only ~~). Check type matching on the bitwise operations. Prevent mixing of types with the arthimetic operations. BUG= https://code.google.com/p/v8/issues/detail?id=4203 TEST=test-asm-validator R=titzer@chromium.org,aseemgarg@chromium.org LOG=N Review URL: https://codereview.chromium.org/1405383007 Cr-Commit-Position: refs/heads/master@{#31764}
-
- 29 Oct, 2015 1 commit
-
-
bmeurer authored
Add support for stores that transition to writable data fields, based on the BeginRegion/FinishRegion mechanism for atomic regions in the scheduler. This is early work and still a bit rough around the edges, and similar to regular stores, we don't support transitioning stores to double fields yet. R=jarin@chromium.org BUG=v8:4470 LOG=n Review URL: https://codereview.chromium.org/1406153010 Cr-Commit-Position: refs/heads/master@{#31645}
-
- 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
Currently we (mostly) infer FunctionType for JSFunction constants, and match the FunctionType in the typing rule for JSCallFunction. This has several drawbacks for JavaScript, especially we don't have Constant types for global functions (i.e. String, Object, Reflect and friends). Plus the FunctionType magic doesn't actually buy us anything. So this changes the typing rule for HeapConstant constant to actually infer Constant types for JSFunction objects and moves the recognition of builtin functions to the typing rule for JSCallFunction. Also adapts the specialized lowering in JSTypedLowering to Constant functions instead of FunctionType, which has the additional advantage that we can do the receiver wrapping/converting based on the (known) SharedFunctionInfo. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1420093005 Cr-Commit-Position: refs/heads/master@{#31553}
-
- 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}
-