- 07 Sep, 2016 4 commits
-
-
jbroman authored
This yields a ~5% serialization time improvement on typical JSON-esque data. The approach taken matches json-stringifier fairly closely. BUG=chromium:148757 Review-Url: https://codereview.chromium.org/2311063004 Cr-Commit-Position: refs/heads/master@{#39254}
-
georgia.kouveli authored
We were previously incorrectly changing: sub r0, 0, r1 cmp r2, r0 b.cond <addr> to: cmn r2, r1 b.cond <addr> for all conditions. This is incorrect for conditions involving the C (carry) and V (overflow) flags, and in particular in the case where r1 = INT_MIN. The optimization is still safe to perform for Equal and NotEqual since they do not depend on the C and V flags. BUG= Review-Url: https://codereview.chromium.org/2318043002 Cr-Commit-Position: refs/heads/master@{#39246}
-
bmeurer authored
Migrate the isNaN, isFinite, Number.isFinite, Number.isInteger, Number.isSafeInteger and Number.isNaN predicates to TurboFan builtins and make them optimizable (for certain input types) in JavaScript callees being optimized by TurboFan. That means both the baseline and the optimized version is now always at maximum, consistent performance. Especially TurboFan suffered from poor baseline (and optimized) performance because it cannot play the same weird tricks that Crankshaft plays for %_IsSmi. This also adds a bunch of new tests to properly cover the use of the Harmony predicates in optimized code. R=franzih@chromium.org BUG=v8:5049,v8:5267 Review-Url: https://codereview.chromium.org/2313073002 Cr-Commit-Position: refs/heads/master@{#39242}
-
ulan authored
Now callers of Heap::CollectGarbage* functions need to specify the reason as an enum value instead of a string. Subsequent CL will add stats counter for GC reason. BUG= Review-Url: https://codereview.chromium.org/2310143002 Cr-Commit-Position: refs/heads/master@{#39239}
-
- 06 Sep, 2016 5 commits
-
-
rmcilroy authored
BUG=v8:5203 Review-Url: https://codereview.chromium.org/2278153003 Cr-Commit-Position: refs/heads/master@{#39207}
-
ahaas authored
BUG=chromium:644182 R=titzer@chromium.org TEST=module-decoder-unittest.cc:ExportNameWithInvalidStringLength Review-Url: https://codereview.chromium.org/2310023002 Cr-Commit-Position: refs/heads/master@{#39199}
-
bmeurer authored
Previously we always lowered JSToBoolean(x:Number) to the subgraph NumberLessThan(0.0, NumberAbs(x)), which deals with both 0, -0 and NaNs appropriately. However this doesn't always generate the best, especially when we can later derive from feedback that x is always an Integral32 value, where the ideal code would be just a single comparison to 0 w/o the absolute value computation. R=mvstanton@chromium.org BUG=v8:5267,v8:5270 Review-Url: https://codereview.chromium.org/2309953002 Cr-Commit-Position: refs/heads/master@{#39194}
-
jochen authored
This will allow for chaining ScopeInfos together to form the same chains as contexts chains currently do. BUG=v8:5215 R=mstarzinger@chromium.org,marja@chromium.org,bmeurer@chromium.org,rmcilroy@chromium.org Review-Url: https://codereview.chromium.org/2314483002 Cr-Commit-Position: refs/heads/master@{#39192}
-
jbroman authored
This restores the contract that all API methods that return Maybe<T> or MaybeLocal<T> always throw an exception when they return nothing. Since v8::ValueDeserializer::ReadHeader can now throw exceptions, it needs a Local<Context> parameter so that it can set up execution state (entering the context, etc.). The old method has been marked for deprecation, but since this API is experimental I intend to remove it as soon as I've removed the use from Blink. value-serializer-unittest has been updated to expect an exception in all decode failure cases. BUG=chromium:148757,chromium:641964 Review-Url: https://codereview.chromium.org/2308053002 Cr-Commit-Position: refs/heads/master@{#39188}
-
- 05 Sep, 2016 5 commits
-
-
georgia.kouveli authored
Generate a flag-setting instruction for a binary operation when the result is tested for equality/inequality to zero. BUG= Review-Url: https://codereview.chromium.org/2315453002 Cr-Commit-Position: refs/heads/master@{#39183}
-
mvstanton authored
BUG= Review-Url: https://codereview.chromium.org/2309823002 Cr-Commit-Position: refs/heads/master@{#39181}
-
jochen authored
Since the extension field is already used for the catch name, store a ContextExtension there instead. In the future, this will allow for chaining ScopeInfos together, so we no longer need a context chain for lazy parsing / compilation. BUG=v8:5215 R=bmeurer@chromium.org,neis@chromium.org,marja@chromium.org Review-Url: https://codereview.chromium.org/2302013002 Cr-Commit-Position: refs/heads/master@{#39164}
-
marja authored
Rebuilding (after touching certain files) is crazy slow because includes are out of control. BUG=v8:5294 Review-Url: https://codereview.chromium.org/2312683002 Cr-Commit-Position: refs/heads/master@{#39161}
-
bmeurer authored
Fold a Select that negates a boolean value, i.e. returning true in the false case and vice versa, into Branch users, similar to what we already do for Branch nodes with BooleanNot inputs. BUG=v8:5267 Review-Url: https://codereview.chromium.org/2308303003 Cr-Commit-Position: refs/heads/master@{#39149}
-
- 02 Sep, 2016 3 commits
-
-
ahaas authored
According to the WebAssembly specification the alignment of load and store instructions has to be less or equal to natural alignment. R=titzer@chromium.org Review-Url: https://codereview.chromium.org/2285643002 Cr-Commit-Position: refs/heads/master@{#39131}
-
neis authored
Also remove an unused declaration. R=bmeurer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2302163003 Cr-Commit-Position: refs/heads/master@{#39129}
-
mythria authored
Collect type feedback in the bytecode handler for 'new' bytecode. The earlier cl (https://codereview.chromium.org/2153433002/) was reverted because that implementation did not collect allocation site feedback. This regressed delta blue by an order of magnitude. This implementation includes collection of allocation site feedback. Reland of https://codereview.chromium.org/2190293003/ with a bug fix. BUG=v8:4280, v8:4780 LOG=N Review-Url: https://codereview.chromium.org/2225923003 Cr-Commit-Position: refs/heads/master@{#39120}
-
- 01 Sep, 2016 4 commits
-
-
ahaas authored
BUG=chromium:642867 R=titzer@chromium.org TEST=loop-assignment-analysis-unittest.cc:regress_642867 Review-Url: https://codereview.chromium.org/2290233008 Cr-Commit-Position: refs/heads/master@{#39089}
-
bmeurer authored
For two FinishRegion nodes, the alias analysis returned "may alias" even without properly looking through them. Drive-by-fix: Add meaningful output for --trace-turbo-load-elimination. R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2301903002 Cr-Commit-Position: refs/heads/master@{#39075}
-
ahaas authored
BUG=chromium:642987 R=titzer@chromium.org TEST=module-decoder-unittest.cc:GlobalWithInvalidNameLength Review-Url: https://codereview.chromium.org/2301873002 Cr-Commit-Position: refs/heads/master@{#39071}
-
bmeurer authored
Now that the hole NaN is no longer represented as Float64Constant early on, we should never see such a constant node in any JS-level graph, but we will only see them after representation selection. Change Typer and SimplifiedLowering appropriately (and fix the invalid tests). R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2299883003 Cr-Commit-Position: refs/heads/master@{#39063}
-
- 31 Aug, 2016 2 commits
-
-
marja authored
This way, many files which only need CompilationInfo but not compiler.h and its dependencies can include just compilation-info.h. BUG= Review-Url: https://codereview.chromium.org/2284313003 Cr-Commit-Position: refs/heads/master@{#39038}
-
bmeurer authored
If the type of a tracked field or element value is less precise than the advertised type of the field or element load, then we replace the load operation with a TypeGuard that guards the advertised type. R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2295643002 Cr-Commit-Position: refs/heads/master@{#39032}
-
- 30 Aug, 2016 2 commits
-
-
jbroman authored
BUG=chromium:148757 Review-Url: https://codereview.chromium.org/2290753002 Cr-Commit-Position: refs/heads/master@{#39017}
-
epertoso authored
BUG=v8:5273 Review-Url: https://codereview.chromium.org/2286273002 Cr-Commit-Position: refs/heads/master@{#39006}
-
- 29 Aug, 2016 3 commits
-
-
jbroman authored
The format of this is a little strange, and has to do with the previous implementation maintaining a "stack" of objects as it works. As a result, the format writes the array buffer before giving any hint that the reason for doing so is to obtain a view wrapping it. Handling this without creating an explicit on-heap stack requires checking whether the next tag is 'V' after obtaining an array buffer. BUG=chromium:148757 Review-Url: https://codereview.chromium.org/2287653002 Cr-Commit-Position: refs/heads/master@{#38984}
-
bmeurer authored
Drop the typing rules for the machine operators and replace them with UNREACHABLE. These typing rules were never correct and there's also no need to have those rules at all. Drive-by-fix: Remove the extremely annoying test-simplified-lowering.cc file, which is not very useful, but consumes a large amount of time to keep it compiling and passing. Instead we should introduce appropriate tests for the SimplifiedLowering that also test something meaningful w/o just cementing the implementation. R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2292463002 Cr-Commit-Position: refs/heads/master@{#38970}
-
bmeurer authored
These JavaScript operators were special hacks to ensure that we always operate on Smis for the magic for-in index variable, but this never really worked in the OSR case, because the OsrValue for the index variable didn't have the proper information (that we have for the JSForInPrepare in the non-OSR case). Now that we have loop induction variable analysis and binary operation hints, we can just use JSLessThan and JSAdd instead with appropriate Smi hints, which handle the OSR case by inserting Smi checks (that are always true). Thanks to OSR deconstruction and loop peeling these Smi checks will be hoisted so they don't hurt the OSR case too much. Drive-by-change: Rename the ForInDone bytecode to ForInContinue, since we have to lower it to JSLessThan to get the loop induction variable goodness. R=epertoso@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2289613002 Cr-Commit-Position: refs/heads/master@{#38968}
-
- 26 Aug, 2016 4 commits
-
-
jbroman authored
The embedder is expected to arrange for the array buffer contents to be transferred into a v8::ArrayBuffer in the receiving context (generally by assuming ownership of the externalized backing store). BUG=chromium:148757 Review-Url: https://codereview.chromium.org/2275033003 Cr-Commit-Position: refs/heads/master@{#38948}
-
ivica.bogosavljevic authored
on architectures that do not support missaligned memory access BUG=unittests/AstDecoderTest.Float64Const, unittests/AstDecoderTest.Float32Const Review-Url: https://codereview.chromium.org/2275323002 Cr-Commit-Position: refs/heads/master@{#38941}
-
ahaas authored
This CL fixes the first bug I found with the new fuzzing. The problem is that the number of locals is unbounded. This CL bounds the number of locals of one type with 8000000, an arbitrary number. R=titzer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2271803004 Cr-Commit-Position: refs/heads/master@{#38936}
-
bmeurer authored
Introduce a new TypedOptimization reducer that contains the type based optimization reduction steps, which are not (directly) related to lowering JavaScript operators based on types (which is what JSTypedLowering is supposed to do). This also addresses a chicken-and-egg problem that we see in the Octane/Mandreel benchmark where type based constant folding isn't applied to the numeric comparison operators introduced by the JSTypedLowering itself, and thus gives up to 10% speedup for the benchmark. BUG=v8:5267 Review-Url: https://codereview.chromium.org/2280673003 Cr-Commit-Position: refs/heads/master@{#38928}
-
- 25 Aug, 2016 8 commits
-
-
jbroman authored
Suitably scary warnings attached, as this will yet evolve (notably to handle host objects, which are not currently handled). Unit tests adjusted to use the public version of ValueSerializer, eliminating any need they have to access v8::internal. With this, Blink can begin using this code experimentally behind a flag as it develops. BUG=chromium:148757 Review-Url: https://codereview.chromium.org/2274693002 Cr-Commit-Position: refs/heads/master@{#38915}
-
jbroman authored
Transferral is not included in this CL, nor is SharedArrayBuffer. BUG=chromium:148757 Review-Url: https://codereview.chromium.org/2264403004 Cr-Commit-Position: refs/heads/master@{#38913}
-
mlippautz authored
Record details, such as cumulative duration, number of steps, and longest steps in IncrementalMarkingDetails which get populated at a single callsite (AddScopeSample). Remove member fields that thus become obsolete (unfortunately not all of them). Additional remove some dead code and refactor printing. Printing in a single statement allows for using logcat on Android. This should also address the regression in chromium:640524. BUG=chromium:639818,chromium:640524 R=jochen@chromium.org Review-Url: https://codereview.chromium.org/2269093002 Cr-Commit-Position: refs/heads/master@{#38912}
-
jyan authored
R=jkummerow@chromium.org, jbroman@chromium.org BUG= Review-Url: https://codereview.chromium.org/2274173003 Cr-Commit-Position: refs/heads/master@{#38910}
-
rmcilroy authored
BUG= Review-Url: https://codereview.chromium.org/2276343003 Cr-Commit-Position: refs/heads/master@{#38909}
-
rmcilroy authored
Review-Url: https://codereview.chromium.org/2281463002 Cr-Commit-Position: refs/heads/master@{#38900}
-
rmcilroy authored
Adds compile operations to the CompilerDispatcherJob interface. As such, introduces Compiler::PrepareUnoptimizedCompilationJob and updates the unoptimized compilation path to use CompilationJobs. Also unifies FinalizeCompilationJob to deal with both optimized and unoptimized compilation jobs. A dummy FullCodegenCompilationJob is also introduced, where all the work is done in the ExecuteJob phase, which cannot be run on a background thread. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2251713002 Cr-Commit-Position: refs/heads/master@{#38897}
-
baptiste.afsa authored
Some instruction selection tests rely on the instructions to be emitted in a specific order. R=jarin@chromium.org, bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2276003002 Cr-Commit-Position: refs/heads/master@{#38886}
-