- 07 Dec, 2018 3 commits
-
-
Jakob Gruber authored
This is a reland of f849396c Original change's description: > [nojit] Remove code stubs > > All stubs have been migrated to builtins. This CL removes most related > code. > > Bug: v8:7777, v8:5784 > Change-Id: I4470cfef34788e6c8e0fd5fd09e40e250d088dad > Reviewed-on: https://chromium-review.googlesource.com/c/1365284 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58093} Tbr: mstarzinger@chromium.org,yangguo@chromium.org,jkummerow@chromium.org,bmeurer@chromium.org Bug: v8:7777, v8:5784 Change-Id: I005ee2a820d49a75a90481d262a310e4ccfd1391 Reviewed-on: https://chromium-review.googlesource.com/c/1367746Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58101}
-
Jakob Gruber authored
This reverts commit f849396c. Reason for revert: arm64: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/24229 Original change's description: > [nojit] Remove code stubs > > All stubs have been migrated to builtins. This CL removes most related > code. > > Bug: v8:7777, v8:5784 > Change-Id: I4470cfef34788e6c8e0fd5fd09e40e250d088dad > Reviewed-on: https://chromium-review.googlesource.com/c/1365284 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58093} TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,jgruber@chromium.org,bmeurer@chromium.org Change-Id: I52c3abd3f4e5872fe26ed7e527a58b118e02b387 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7777, v8:5784 Reviewed-on: https://chromium-review.googlesource.com/c/1367804Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58095}
-
Jakob Gruber authored
All stubs have been migrated to builtins. This CL removes most related code. Bug: v8:7777, v8:5784 Change-Id: I4470cfef34788e6c8e0fd5fd09e40e250d088dad Reviewed-on: https://chromium-review.googlesource.com/c/1365284 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#58093}
-
- 04 Dec, 2018 1 commit
-
-
Mike Stanton authored
Building on https://chromium-review.googlesource.com/c/v8/v8/+/1349243, which asserted on calls to GetChars() that weren't in a DisallowHeapAllocation scope, this CL takes a reference to the scope in order to provide static protection in all builds. Bug: v8:8238 Change-Id: I481a1dbbd3ae57eb35c5f828c5e242691635be27 Reviewed-on: https://chromium-review.googlesource.com/c/1354038Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#58022}
-
- 27 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I4da6404aa968adca1fbb49029fc304622101d6c3 Reviewed-on: https://chromium-review.googlesource.com/c/1349112 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57853}
-
- 22 Nov, 2018 1 commit
-
-
Clemens Hammacher authored
Remove PrintableInstructionSequence and friends, just overload operator<< directly for the respective types. R=herhut@chromium.org Bug: v8:8238 Change-Id: I67713978ab06f7ec5309e52b4090256480f362b1 Reviewed-on: https://chromium-review.googlesource.com/c/1346113Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Stephan Herhut <herhut@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57722}
-
- 21 Nov, 2018 1 commit
-
-
Clemens Hammacher authored
Register names are static, so we do not need to access them via RegisterConfiguration. This saves a lot of RegisterConfiguration object creations. R=mstarzinger@chromium.org Bug: v8:8238 Change-Id: I295ad4d4b13fe948c70490687b7e3e9b48e70af9 Reviewed-on: https://chromium-review.googlesource.com/c/1342517Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57668}
-
- 12 Nov, 2018 1 commit
-
-
Ben L. Titzer authored
This CL splits the backend of TurboFan off into its own directory, without changing namespaces. This makes ownership management a bit more fine-grained with a logical separation. R=mstarzinger@chromium.org,jarin@chromium.org,adamk@chromium.org Change-Id: I2ac40d6ca2c4f04b8474b630aae0286ecf79ef42 Reviewed-on: https://chromium-review.googlesource.com/c/1308333 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57437}
-
- 12 Oct, 2018 1 commit
-
-
Stephan Herhut authored
This also adds support in the c1 visualizer output generator to resolve splintered live ranges before they have been merged back in. Bug: v8:8238 Change-Id: I61e5f6da2e8b77ca9b42fae9004c77163d11960f Reviewed-on: https://chromium-review.googlesource.com/c/1270817Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Stephan Herhut <herhut@chromium.org> Cr-Commit-Position: refs/heads/master@{#56595}
-
- 08 Oct, 2018 1 commit
-
-
Georgia Kouveli authored
Display the InstructionSequence before and after register allocation. Change-Id: If5169ae1af4f1fda95b3d150f9318ad11679caee Reviewed-on: https://chromium-review.googlesource.com/c/1258005 Commit-Queue: Martyn Capewell <martyn.capewell@arm.com> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#56451}
-
- 04 Oct, 2018 1 commit
-
-
Stephan Herhut authored
This had bit-rotten a little and did no longer work for compiling webassembly code. Also, correct the output of live ranges so that it can be parsed again. Bug: v8:8238 Change-Id: I09c2d8bd604f3be12ead8b968f0b70287fad65f1 Reviewed-on: https://chromium-review.googlesource.com/c/1256864 Commit-Queue: Stephan Herhut <herhut@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#56373}
-
- 11 Sep, 2018 1 commit
-
-
Clemens Hammacher authored
The macro has been deprecated since 2016, and it keeps confusing me, so let's just remove it completely from the code base. R=leszeks@chromium.org TBR=mstarzinger@chromium.org, verwaest@chromium.org, jgruber@chromium.org Bug: v8:8015 Change-Id: Ibe1122fd9d2624bc94873d9c51dc8499c54a04fd Reviewed-on: https://chromium-review.googlesource.com/1209322Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#55779}
-
- 04 Sep, 2018 1 commit
-
-
Stephan Herhut authored
Bug: v8:8015 Change-Id: I6540104f58acd819d5a57edae49f8b909aa1a065 Reviewed-on: https://chromium-review.googlesource.com/1203892Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Stephan Herhut <herhut@chromium.org> Cr-Commit-Position: refs/heads/master@{#55608}
-
- 13 Jun, 2018 1 commit
-
-
Sigurd Schneider authored
Bug: v8:7327 Change-Id: I6f378f0d36444e8413dfe7ad3e097091e3b86df1 Reviewed-on: https://chromium-review.googlesource.com/1098919 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#53712}
-
- 11 Jun, 2018 1 commit
-
-
Leszek Swirski authored
Whenever an Isolate is available on a variable, field, or method parameter, use that instead of GetIsolate(). Also convert simple cases of the one-argument handle constructor to either use an available Isolate, or use GetIsolate() if their first parameter is a variable. Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I52805905a9ca8729615ead78859f43d5e8f605f1 Reviewed-on: https://chromium-review.googlesource.com/1092853 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53629}
-
- 24 May, 2018 1 commit
-
-
Sigurd Schneider authored
Bug: chromium:846000 Change-Id: If74749f11c7e1e112090a18f79ebed1819535d24 Reviewed-on: https://chromium-review.googlesource.com/1071671Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#53338}
-
- 18 May, 2018 1 commit
-
-
Sigurd Schneider authored
This also includes the precise reducer name. Currently the information is available in the node tooltip in turbolizer. The new shortcut 's' in the graph view selects the nodes the currently selected nodes were created from. Bug: v8:7327 Change-Id: I7ca7327d0cfa112972e3567df6e4a223c8eff3c0 Reviewed-on: https://chromium-review.googlesource.com/1064059 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#53258}
-
- 16 May, 2018 1 commit
-
-
Sigurd Schneider authored
Bug: v8:7327 Change-Id: Ic00291784e982632b15cd83059397b6e9e4c4f79 Reviewed-on: https://chromium-review.googlesource.com/1057487 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53211}
-
- 14 May, 2018 1 commit
-
-
Pierre Langlois authored
The --trace-turbo flag would cause a crash when compiling a WASM_FUNCTION. It was caused by assuming the OptimizedCompilationInfo had a SharedFunctionInfo attached if the code isn't a stub and wasm functions are not considered as such. In order to test this, we've added a new flag to specify were to dump JSON files: --trace-turbo-path. This is used to make sure we do not leave lots of files behind in the top-level directory. It should be useful as standalone feature too. Change-Id: Ia9442638d28100bea45a8683fb233803cc5393f2 Reviewed-on: https://chromium-review.googlesource.com/1030555 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#53153}
-
- 30 Apr, 2018 1 commit
-
-
Jaroslav Sevcik authored
This removes Type::operator-> which was used to split the change that removed undefined misuse of Type* to represent integers. Bug: v8:3770 Change-Id: I9a5bce5ccdc75461a7b939b4070cb58fe6040d99 Reviewed-on: https://chromium-review.googlesource.com/1033736Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#52878}
-
- 28 Apr, 2018 1 commit
-
-
Jaroslav Sevcik authored
This is part of the effort to decrease the amount of undefined behavior. that v8 relies on. The main change here is to represent types with class Type rather than with pointer Type*. To make the CL smaller, I used an operator overload hack to separate the change from `->` to `.`. I am working on a CL that will remove the operator and change all those arrows to dots. Bug: v8:3770 Change-Id: I71a197cb739a1467937bc95c2a757fab0469aa22 Reviewed-on: https://chromium-review.googlesource.com/1032551 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#52872}
-
- 14 Apr, 2018 1 commit
-
-
Jakob Kummerow authored
The "Address" type is V8's general-purpose type for manipulating memory addresses. Per the C++ spec, pointer arithmetic and pointer comparisons are undefined behavior except within the same array; since we generally don't operate within a C++ array, our general-purpose type shouldn't be a pointer type. Bug: v8:3770 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779 Reviewed-on: https://chromium-review.googlesource.com/988657 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52601}
-
- 04 Apr, 2018 1 commit
-
-
Ross McIlroy authored
With the Ignition + Turbofan pipeline there is very little overlap between the data needed for unoptimized compilation and optimized compilation. As a result, it is cleaner to split up the CompilationInfo into UnoptimizedCompilationInfo and OptimizedCompilationInfo. Doing so also necessitate splitting up CompilationJob into UnoptimizedCompilationJob and OptimizedCompilationJob - again there is not much overlap so this seems cleaner. Change-Id: I1056ad520937b7f8582e4fc3ca8f4910742de30a Reviewed-on: https://chromium-review.googlesource.com/995895 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#52369}
-
- 29 Sep, 2017 1 commit
-
-
Ross McIlroy authored
Removes script() from CompilationInfo since it might not be created when compiling from a background thread. BUG=v8:5203 Change-Id: Ic36fd04cf4792336707b2d3715d47c59b6a97faf Reviewed-on: https://chromium-review.googlesource.com/690299Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#48220}
-
- 25 Sep, 2017 1 commit
-
-
Clemens Hammacher authored
Use the (D)CHECK_{EQ,NE,GT,...} macros instead of (D)CHECK with an embedded comparison. This gives better error messages and also does the right comparison for signed/unsigned mismatches. This will allow us to reenable the readability/check cpplint check. R=jarin@chromium.org Bug: v8:6837 Change-Id: I712580c2a4326e06ee3d6d0eb4ff8c7d24f5fdb9 Reviewed-on: https://chromium-review.googlesource.com/671227 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#48135}
-
- 13 Sep, 2017 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I3df5d50f81909188ee0cb31d0f479aadeeabe20f Reviewed-on: https://chromium-review.googlesource.com/662780Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47991}
-
- 07 Sep, 2017 1 commit
-
-
Michael Starzinger authored
R=marja@chromium.org Change-Id: I7e1b471c425a28d77100ce3cda34511393b31365 Reviewed-on: https://chromium-review.googlesource.com/654901Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47892}
-
- 05 Sep, 2017 1 commit
-
-
Jaroslav Sevcik authored
Bug: v8:5267 Change-Id: If2a36a53016f683b9eddb6cba76e3328cd69f98b Reviewed-on: https://chromium-review.googlesource.com/649847Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#47809}
-
- 30 Aug, 2017 1 commit
-
-
Sergei D authored
To enable executing code in a context of a particular time or date (e.g. when codepath depends on whether it's say evening or New Year) there is a need for a way to provide it bypassing actual system time. Bug: chromium:751993 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Iee35d97b74345f63fff814a65a6f134d7c970341 Reviewed-on: https://chromium-review.googlesource.com/598666 Commit-Queue: Sergei Datsenko <dats@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47700}
-
- 29 Aug, 2017 1 commit
-
-
Clemens Hammacher authored
{info->optimization_id()} DCHECKS that {info->IsOptimizing()} is true. Hence, it fails for graphs generated from wasm code. The bug was introduced in https://chromium-review.googlesource.com/c/v8/v8/+/592028. R=mstarzinger@chromium.org CC=leszeks@chromium.org Change-Id: Ic192017fd7801797eb9ec7adc67a4bf94d219a7a Reviewed-on: https://chromium-review.googlesource.com/640951Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#47680}
-
- 03 Aug, 2017 2 commits
-
-
Ross McIlroy authored
Don't hold a pointer to parse_info in compilation_info, and instead explicitly add the fields needed in compiation_info. The intention is to make ParseInfo only actually needed for parsing, and eventually make it possible to compile with only a CompileInfo. BUG=v8:5203 Change-Id: Iecd39245e44c218874401c3991eeaf3ceef2816f Reviewed-on: https://chromium-review.googlesource.com/595738Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47119}
-
Michael Starzinger authored
This removes the obsolete {Crankshaft} factory method as it returns the same configuration as the {Turbofan} factory by now. We now consistently use {RegisterConfiguration::Default} everywhere. R=jkummerow@chromium.org BUG=v8:6408 Change-Id: I6be25774aa6714ef4dc1ef6856bb6dbc95593a29 Reviewed-on: https://chromium-review.googlesource.com/597858Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47109}
-
- 31 Jul, 2017 1 commit
-
-
Leszek Swirski authored
Remove opt_count from SFI, which only had two real uses: 1. Detecting OSR in tests -- replaced with a stack walk in %GetOptimizationStatus 2. Naming optimization log files -- replaced with the optimization id This allows us to remove a field from the SFI, moving the bailout reason into the counters field. As a drive-by, add optimization marker information (e.g. marked for optimization) to the optimization status. Change-Id: Id77deb5dd5439dfba058a7e1e1748de26b717d0d Reviewed-on: https://chromium-review.googlesource.com/592028Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#47009}
-
- 23 Feb, 2017 1 commit
-
-
Marja Hölttä authored
BUG=v8:5294 Change-Id: If45f25aae8de526027b7851cb4efe0ccf4a7c4b1 Reviewed-on: https://chromium-review.googlesource.com/444226 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43388}
-
- 20 Jan, 2017 1 commit
-
-
tebbi authored
Create different json files for diffferent optimization attempts of the same function. This allows to analyze the graphs of early optimization attempts that lead to deopts or to produce a proper json file in the case of a deopt loop. R=danno@chromium.org Review-Url: https://codereview.chromium.org/2649513003 Cr-Commit-Position: refs/heads/master@{#42567}
-
- 19 Dec, 2016 1 commit
-
-
vegorov authored
We are printing `inlining(...), pos:offset` where we should print `pos:inlining(...), offset`. BUG= Review-Url: https://codereview.chromium.org/2586823002 Cr-Commit-Position: refs/heads/master@{#41786}
-
- 16 Dec, 2016 1 commit
-
-
vegorov authored
This allows to share source dumping infrastructure between CS and TF and opens a possibility for external tools like IRHydra to perform deoptimization to source mapping for TF generated code based on --trace-deopt --print-opt-code --code-comments output. This CL also restores an old TraceInlinedFunction behavior which was lost during source positions refactoring - originally TraceInlinedFunction dumped source code only once per-SFI to avoid large traces whenever some helper function is inlined multiple times. This CL also adds --print-opt-source flag that would in the future replace obsolete --hydrogen-track-positions. BUG= Review-Url: https://codereview.chromium.org/2575703003 Cr-Commit-Position: refs/heads/master@{#41758}
-
- 14 Nov, 2016 1 commit
-
-
tebbi authored
This CL enables precise source positions for all V8 compilers. It merges compiler::SourcePosition and internal::SourcePosition to a single class used throughout the codebase. The new internal::SourcePosition instances store an id identifying an inlined function in addition to a script offset. SourcePosition::InliningId() refers to a the new table DeoptimizationInputData::InliningPositions(), which provides the following data for every inlining id: - The inlined SharedFunctionInfo as an offset into DeoptimizationInfo::LiteralArray - The SourcePosition of the inlining. Recursively, this yields the full inlining stack. Before the Code object is created, the same information can be found in CompilationInfo::inlined_functions(). If SourcePosition::InliningId() is SourcePosition::kNotInlined, it refers to the outer (non-inlined) function. So every SourcePosition has full information about its inlining stack, as long as the corresponding Code object is known. The internal represenation of a source position is a positive 64bit integer. All compilers create now appropriate source positions for inlined functions. In the case of Turbofan, this required using AstGraphBuilderWithPositions for inlined functions too. So this class is now moved to a header file. At the moment, the additional information in source positions is only used in --trace-deopt and --code-comments. The profiler needs to be updated, at the moment it gets the correct script offsets from the deopt info, but the wrong script id from the reconstructed deopt stack, which can lead to wrong outputs. This should be resolved by making the profiler use the new inlining information for deopts. I activated the inlined deoptimization tests in test-cpu-profiler.cc for Turbofan, changing them to a case where the deopt stack and the inlining position agree. It is currently still broken for other cases. The following additional changes were necessary: - The source position table (internal::SourcePositionTableBuilder etc.) supports now 64bit source positions. Encoding source positions in a single 64bit int together with the difference encoding in the source position table results in very little overhead for the inlining id, since only 12% of the source positions in Octane have a changed inlining id. - The class HPositionInfo was effectively dead code and is now removed. - SourcePosition has new printing and information facilities, including computing a full inlining stack. - I had to rename compiler/source-position.{h,cc} to compiler/compiler-source-position-table.{h,cc} to avoid clashes with the new src/source-position.cc file. - I wrote the new wrapper PodArray for ByteArray. It is a template working with any POD-type. This is used in DeoptimizationInputData::InliningPositions(). - I removed HInlinedFunctionInfo and HGraph::inlined_function_infos, because they were only used for the now obsolete Crankshaft inlining ids. - Crankshaft managed a list of inlined functions in Lithium: LChunk::inlined_functions. This is an analog structure to CompilationInfo::inlined_functions. So I removed LChunk::inlined_functions and made Crankshaft use CompilationInfo::inlined_functions instead, because this was necessary to register the offsets into the literal array in a uniform way. This is a safe change because LChunk::inlined_functions has no other uses and the functions in CompilationInfo::inlined_functions have a strictly longer lifespan, being created earlier (in Hydrogen already). BUG=v8:5432 Review-Url: https://codereview.chromium.org/2451853002 Cr-Commit-Position: refs/heads/master@{#40975}
-
- 17 Oct, 2016 2 commits
-
-
mstarzinger authored
This makes the character escaping in the graph visualizer less generic but correct against the JSON spec. The spec has the following definition for valid characters within a double quoted string: char :: any-Unicode-character-except-"-or-\-or-control-character \" \\ \/ \b \f \n \r \t \u four-hex-digits R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2421313002 Cr-Commit-Position: refs/heads/master@{#40364}
-
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}
-