- 26 Nov, 2018 1 commit
-
-
Tobias Tebbi authored
This reverts commit 41ad531f. Reason for revert: https://crbug.com/907498 Original change's description: > [turbofan] in-block scheduling: schedule non-effect-chain nodes late > > By giving higher priority to processing non-effect-chain nodes, this > changes the scheduling inside of basic blocks to place nodes before the > latest possible effect chain node. > > Change-Id: I8b130904a1bb2360b995eb9de4f471a911a4e388 > Reviewed-on: https://chromium-review.googlesource.com/c/1337743 > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57656} TBR=mstarzinger@chromium.org,tebbi@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I76e57a25c157beed364455b0f1b55380305ef6c0 Reviewed-on: https://chromium-review.googlesource.com/c/1350989Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#57834}
-
- 20 Nov, 2018 1 commit
-
-
Tobias Tebbi authored
By giving higher priority to processing non-effect-chain nodes, this changes the scheduling inside of basic blocks to place nodes before the latest possible effect chain node. Change-Id: I8b130904a1bb2360b995eb9de4f471a911a4e388 Reviewed-on: https://chromium-review.googlesource.com/c/1337743 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57656}
-
- 04 Sep, 2017 1 commit
-
-
Jaroslav Sevcik authored
We encode the reachability/liveness in the placement. After we prepare use counts, the kUnknown placement means that the noe is unreachable. Bug: v8:5267 Change-Id: Iad27159508f0aefb812b6394a257055f789fbe13 Reviewed-on: https://chromium-review.googlesource.com/646247 Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47795}
-
- 27 Mar, 2017 2 commits
-
-
Ross McIlroy authored
When node splitting is enabled new nodes could be created during scheduling. The Scheduler::node_data_ and Schedule::nodeid_to_block_ zone vectors reserve enough space for the node count before splitting, however will have to reallocate space when node splitting occurs. The vectors double in space by default, meaning the peak zone usage is 3x the required amount for these vectors as soon as a single node is split. Avoid this in the common case by reserving 10% extra space for split nodes. The value 10% was choosen since it covers 98.7% of the optimized functions in Octane. BUG=chromium:700364 Change-Id: Ibabd8d04cffd1eb08cc3b8a12b76892208ef3288 Reviewed-on: https://chromium-review.googlesource.com/458425 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#44153}
-
Ross McIlroy authored
The scheduled_nodes_ vector is used to maintain a per-block list of non-fixed nodes. For most blocks this list remains empty, so lazily initialize it instead of pre-allocating to save memory. Also pre-reserve an extra 10% of blocks to avoid reallocting space in the vector when fusing floating control creates new basic blocks. BUG=chromium:700364 Change-Id: I9876e6a42bc90c9bff5838620365c18609ed1ee9 Reviewed-on: https://chromium-review.googlesource.com/458919Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#44152}
-
- 21 Mar, 2017 1 commit
-
-
Ross McIlroy authored
Also move phi NodeVector in TryCloneBranch to temporary zone. BUG=chromium:700364 Change-Id: Id19d51dae63ed5a6f5dccbba77a19b3663fd325e Reviewed-on: https://chromium-review.googlesource.com/456285Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#43962}
-
- 17 Oct, 2016 1 commit
-
-
jochen authored
R=machenbach@chromium.org,titzer@chromium.org,bmeurer@chromium.org,jgruber@chromium.org BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win_dbg,v8_mac_dbg;master.tryserver.chromium.android:android_arm64_dbg_recipe Review-Url: https://codereview.chromium.org/2416243002 Cr-Commit-Position: refs/heads/master@{#40350}
-
- 10 Oct, 2016 1 commit
-
-
heimbuef authored
BUG=v8:5409 Committed: https://crrev.com/a124feb0760896c8be61de08004a08c3bc9b4b3f Committed: https://crrev.com/fc840361e357a571c709e0239ae82cc089800b3f Review-Url: https://codereview.chromium.org/2348303002 Cr-Original-Original-Commit-Position: refs/heads/master@{#39633} Cr-Original-Commit-Position: refs/heads/master@{#40048} Cr-Commit-Position: refs/heads/master@{#40138}
-
- 07 Oct, 2016 1 commit
-
-
hablich authored
Revert of Replaced different means of zone pooling/reusing by one zone segment pool (patchset #5 id:160001 of https://codereview.chromium.org/2348303002/ ) Reason for revert: related to roll blocker: https://codereview.chromium.org/2400343002/ Original issue's description: > Replaced different means of zone pooling/reusing by one zone segment pool > > BUG=v8:5409 > > Committed: https://crrev.com/a124feb0760896c8be61de08004a08c3bc9b4b3f > Committed: https://crrev.com/fc840361e357a571c709e0239ae82cc089800b3f > Cr-Original-Commit-Position: refs/heads/master@{#39633} > Cr-Commit-Position: refs/heads/master@{#40048} TBR=mstarzinger@chromium.org,verwaest@chromium.org,heimbuef@google.com NOTRY=true NOPRESUBMIT=true NOTREECHECKS=true BUG=v8:5409 Review-Url: https://codereview.chromium.org/2401163002 Cr-Commit-Position: refs/heads/master@{#40099}
-
- 06 Oct, 2016 1 commit
-
-
heimbuef authored
BUG=v8:5409 Committed: https://crrev.com/a124feb0760896c8be61de08004a08c3bc9b4b3f Review-Url: https://codereview.chromium.org/2348303002 Cr-Original-Commit-Position: refs/heads/master@{#39633} Cr-Commit-Position: refs/heads/master@{#40048}
-
- 23 Sep, 2016 1 commit
-
-
hablich authored
Revert of Replaced different means of zone pooling/reusing by one zone segment pool (patchset #3 id:120001 of https://codereview.chromium.org/2348303002/ ) Reason for revert: Blocks Roll https://codereview.chromium.org/2366733002/ Original issue's description: > Replaced different means of zone pooling/reusing by one zone segment pool > > BUG=v8:5409 > > Committed: https://crrev.com/a124feb0760896c8be61de08004a08c3bc9b4b3f > Cr-Commit-Position: refs/heads/master@{#39633} TBR=mstarzinger@chromium.org,verwaest@chromium.org,heimbuef@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5409 Review-Url: https://codereview.chromium.org/2360403003 Cr-Commit-Position: refs/heads/master@{#39651}
-
- 22 Sep, 2016 1 commit
-
-
heimbuef authored
BUG=v8:5409 Review-Url: https://codereview.chromium.org/2348303002 Cr-Commit-Position: refs/heads/master@{#39633}
-
- 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}
-
- 09 Feb, 2015 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org TEST=presubmit Review URL: https://codereview.chromium.org/905293002 Cr-Commit-Position: refs/heads/master@{#26525}
-
- 03 Feb, 2015 1 commit
-
-
Benedikt Meurer authored
If a (pure) node has two or more uses, but there exists a path from the common dominator of these uses to end, which does not contain a use, then we split the node such that no unnecessary computation takes place. Note however, that this only applies if the node cannot be hoisted out of a loop. BUG=v8:3864 LOG=n R=jarin@chromium.org Review URL: https://codereview.chromium.org/899433005 Cr-Commit-Position: refs/heads/master@{#26404}
-
- 23 Jan, 2015 1 commit
-
-
bmeurer authored
Also add some unittests for the dominator stuff. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/865393004 Cr-Commit-Position: refs/heads/master@{#26241}
-
- 22 Jan, 2015 1 commit
-
-
bmeurer authored
- Move unit tests to schedule-unittests.cc. - Remove pre-C++11 cruft. - Fix some include weirdness. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/864293002 Cr-Commit-Position: refs/heads/master@{#26220}
-
- 02 Dec, 2014 2 commits
-
-
mstarzinger authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/753063004 Cr-Commit-Position: refs/heads/master@{#25622}
-
mstarzinger authored
R=jarin@chromium.org TEST=cctest/test-scheduler/NestedFloatingDiamondWithChain Review URL: https://codereview.chromium.org/738613005 Cr-Commit-Position: refs/heads/master@{#25621}
-
- 27 Nov, 2014 1 commit
-
-
mstarzinger authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/761673004 Cr-Commit-Position: refs/heads/master@{#25543}
-
- 26 Nov, 2014 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/755353003 Cr-Commit-Position: refs/heads/master@{#25525}
-
- 11 Nov, 2014 1 commit
-
-
mstarzinger@chromium.org authored
R=dcarney@chromium.org Review URL: https://codereview.chromium.org/711413002 Cr-Commit-Position: refs/heads/master@{#25265} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Nov, 2014 1 commit
-
-
mstarzinger@chromium.org authored
This contains the following changes squashed together: - Switch BasicBlock::loop_end to be a basic block instead of an RPO. - Switch ScheduleLate to use dominator depth instead of RPO. - Switch ScheduleEarly to use dominator depth instead of RPO. - Push out absolute RPO ordering everywhere else in the scheduler. - Keep linked list of blocks in RPO order while scheduling. - Switch from RPO number to depth for dominator calculation. R=jarin@chromium.org Review URL: https://codereview.chromium.org/696363002 Cr-Commit-Position: refs/heads/master@{#25138} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Oct, 2014 2 commits
-
-
mstarzinger@chromium.org authored
R=titzer@chromium.org, jarin@chromium.org Review URL: https://codereview.chromium.org/687133003 Cr-Commit-Position: refs/heads/master@{#24991} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/685773002 Cr-Commit-Position: refs/heads/master@{#24968} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24968 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Oct, 2014 2 commits
-
-
mstarzinger@chromium.org authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/673753003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/673513004 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Oct, 2014 3 commits
-
-
mstarzinger@chromium.org authored
TBR=jarin@chromium.org Review URL: https://codereview.chromium.org/654583004 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/669683002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/665893006 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Oct, 2014 3 commits
-
-
mstarzinger@chromium.org authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/649203002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sigurds@chromium.org authored
This reverts commit 0ab306041a6eba99fe5e2ef78251de137321f559. "Fix" make scheduler run out of memory. TBR=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/656473002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sigurds@chromium.org authored
The scheduler rewires control based on the last *control* node that appears in the schedule of a block. This is not sufficient to account for dependencies. This patch adds additional dependencies to floating control nodes. Given a floating control node A, every non-control dependency of every node B that depends on A is introduces as an additional dependency of A. This allows the scheduler to correctly schedule two diamonds A, B, if their only correct schedule is to schedule B into the ifTrue successor in A. TEST=cctest/test-scheduler/NestedFloatingDiamonds R=mstarzinger@chromium.org, titzer@chromium.org Review URL: https://codereview.chromium.org/602083003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Oct, 2014 1 commit
-
-
mstarzinger@chromium.org authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/642803003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Sep, 2014 1 commit
-
-
jarin@chromium.org authored
To manage BasicBlock's predecessors and successors we now use plain std::vector. The change also moves bunch of method definitions from header files to implementation files. In zlib, the change brings 3x improvement in the scheduler's memory consumption. The --turbo-stats flag says we go 169MB -> 55MB in the scheduler, 383MB -> 268MB overall. BUG= R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/606403003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Aug, 2014 3 commits
-
-
titzer@chromium.org authored
TBR=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/505193002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
titzer@chromium.org authored
This CL makes several changes to the scheduling algorithm to handle control flow that is not connected to End. Such control nodes constitute "floating control islands" that must be linearized by the schedule. This is done by considering such nodes to be schedulable, and then editing the control dependencies after a first pass of scheduling. Then a subsequent pass of scheduling will place all nodes correctly into the fully connected graph. R=mstarzinger@chromium.org, rossberg@chromium.org BUG= Review URL: https://codereview.chromium.org/499363002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
titzer@chromium.org authored
to use with Zone. For example, subclasses add constructors that wrap a Zone in a zone_allocator to save clients this verbosity. R=bmeurer@chromium.org, mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/505133003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Aug, 2014 1 commit
-
-
titzer@chromium.org authored
Refactor Scheduler to simplify construction of CFG from sea of nodes. Use PreEdge/Post as part of the graph tarversal, and make finding of successor projections more robust. R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/490483002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Aug, 2014 1 commit
-
-
titzer@chromium.org authored
Move some methods from OperatorProperties into Scheduler that are only related to scheduling. Now these methods take a Node* parameter, as decisions relating floating control need distinguish not just operators but nodes. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/474983003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-