- 06 Nov, 2020 1 commit
-
-
Nico Hartmann authored
Bug: v8:11074 Change-Id: I6d58d523254915a6b0d6542d8f80ddc6cee71dee Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2520907Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#71003}
-
- 28 Oct, 2019 1 commit
-
-
Ross McIlroy authored
When rewiring a block to throw, we need to remove the current block from the list of predecessors for all of our successors, as well as clearing our current successors. BUG=v8:9684 Change-Id: I0da063b2ef707f07ea27a5f72cabd2ff9a91cc42 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1881154Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#64579}
-
- 23 Oct, 2019 1 commit
-
-
Ross McIlroy authored
Adds the ability for the GraphAssembler to operate on, and maintain, a scheduled graph. This will be used by TurboProp to maintain the initial schedule created before effect-control-linearization, by updating this schedule during effect-control, select and memory lowering stages rather than doing a later reschedule. In order to do this, an internal BlockUpdater is added to GraphAssembler, which is enabled by passing the schedule to the GraphAssembler. The GraphAssembler is modified to call into the block updater when nodes are added and updates the schedule with new basic blocks when new control flow is updated. BUG=v8:9684 Change-Id: I6d428ad21d869c472bb20f43cc8caf44722f090a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1841355 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#64519}
-
- 30 Jul, 2019 1 commit
-
-
Tobias Tebbi authored
This allows to return bool values from Torque macros and branch on them without performance penalty, reconstructing good control flow. Drive-by cleanup: Delete EnsureDeferredCodeSingleEntryPoint(), since it's no longer needed. Constructing a graph and then re-inferring deferred blocks based on branch hints achieves this effect automatically. Bug: v8:7793 Change-Id: Idb6802372b407549e4760f290933d5b8f1e9d952 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1681132Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#62979}
-
- 24 May, 2019 1 commit
-
-
Yang Guo authored
TBR=mvstanton@chromium.org,neis@chromium.org,ahaas@chromium.org Bug: v8:9247 Change-Id: I5433c863a54f3412d73df0d38aba3fdbcfac7ebe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627973 Commit-Queue: Yang Guo <yangguo@chromium.org> Auto-Submit: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61830}
-
- 29 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
Even though both are allowed in the style guide, it recommends to use 'using', as its syntax is more consistent with the rest of C++. This CL turns all typedefs in compiler code to 'using' declarations. R=mstarzinger@chromium.org Bug: v8:8834 Change-Id: I3baf3ecbfe2c853cb17bb479ebbf140382193b5c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545896 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60527}
-
- 04 Oct, 2018 1 commit
-
-
Tobias Tebbi authored
This incorporates feedback from https://chromium-review.googlesource.com/c/v8/v8/+/1245766/12#message-16ceead795d0ca68d3c564b8900c152e8719ecd6 that got lost due to the code being moved to https://crrev.com/c/1254121. Change-Id: I7b74dcd5e8ffe62770b32a7c000885e96db01657 Reviewed-on: https://chromium-review.googlesource.com/c/1256968Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#56384}
-
- 01 Oct, 2018 1 commit
-
-
Tobias Tebbi authored
This removes the burden from Torque not to emit unnecessary phis. This is factored out from the Torque IR CL (https://crrev.com/c/1245766). Change-Id: I302714250e9ea6367f37613c09caa522d56c151c Reviewed-on: https://chromium-review.googlesource.com/1254121Reviewed-by: Daniel Clifford <danno@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#56312}
-
- 20 Mar, 2018 1 commit
-
-
Daniel Clifford authored
In general, TurboFan doesn't encounter phi nodes with only a single data input in the backend. However, CSA-based builtins (especially auto-generated ones, e.g. from Torque), may contain single-input phi nodes, although outside the auto-generated case this doesn't happen much in practice. Single input phi nodes (i.e. phis in blocks with one predecessor) don't have any side effects and are essentially useless and harmless, but to avoid problems in the backend of TurboFan (whose SSA deconstruction disallows control flow splits that continue to blocks with phis), this CL tweaks the existing CSA-only control flow and graph sanitization in the CSA path to ensure no no-op phis. Change-Id: I109f4dc6cde5ad1794585a09609a230b1848e0d5 Reviewed-on: https://chromium-review.googlesource.com/963711Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Daniel Clifford <danno@chromium.org> Cr-Commit-Position: refs/heads/master@{#52056}
-
- 18 May, 2017 1 commit
-
-
Mircea Trofin authored
We use Schedule::EnsureDeferredCodeSingleEntryPoint as a helper for hand-crafted builtin code, to ensure deferred code isn't entered from a mix of deferred and non-deferred code (invariant required for hot/cold allocation, or "splintering"). When we create a "merger" block, it may be the case that the original block had a few phi operands. Those need to be moved as well. This bug was uncovered by both v8:6390, and, earlier, by v8:5998. We fixed the earlier one by authoring a the builtin to avoid the need for EnsureDeferredCodeSingleEntryPoint. I proposed earlier an alternative where we'd replace the Ensure... method with a Verify, and throw early when the builtin is assembled, however, we may want to maintain the slightly higher level DSL for authoring builtins, and perform such graph adjustments for the lower level constraints afterwards, hence this current CL. Bug: v8:5998 v8:6390 Change-Id: Ia3143f7a66904fe480d8edb5b52bf915b8d185dc Reviewed-on: https://chromium-review.googlesource.com/505264 Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45387}
-
- 15 May, 2017 1 commit
-
-
Camillo Bruni authored
- Add BasicBlock::Print method for easier inspection in gdb - Print detailed error message in InstructionSelector::VisitControl instead of just a check failure Change-Id: Ice9d70567114f014b244c1b4e41e450900030994 Reviewed-on: https://chromium-review.googlesource.com/504388 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#45295}
-
- 06 Apr, 2017 1 commit
-
-
Camillo Bruni authored
Change-Id: I525e29f278c76dbd02cb727d9c70c2d67a47e4c9 Reviewed-on: https://chromium-review.googlesource.com/449676 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#44431}
-
- 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}
-
- 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}
-
- 23 Apr, 2016 1 commit
-
-
mtrofin authored
If a deferred block has multiple predecessors, they have to be all deferred. Otherwise, we can run into a situation where if a range that spills only in deferred blocks inserts its spill in the block, and other ranges need moves inserted by ResolveControlFlow in the predecessors, the register of the range spilled in the deferred block may be clobbered. To avoid that, when a deferred block has multiple predecessors, and some are not deferred, we add a non-deferred block to collect all such edges. This CL addresses the validator assertion failure the referenced issue, as well as the greedy allocator failure - which was caused by the situation described above. BUG=v8:4940 LOG=n Review URL: https://codereview.chromium.org/1912093005 Cr-Commit-Position: refs/heads/master@{#35742}
-
- 23 Mar, 2016 1 commit
-
-
danno authored
This CL adds an extra pass before calculating the special RPO order in the custom RawMachineAssembler pipeline that walks through the schedule and inserts extra blocks to guarantee that the control flow graph is in split edge form. It also propagates deferred block marks forward to these new blocks if appropriate. Review URL: https://codereview.chromium.org/1811333002 Cr-Commit-Position: refs/heads/master@{#35014}
-
- 11 Jan, 2016 1 commit
-
-
titzer authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1578723002 Cr-Commit-Position: refs/heads/master@{#33202}
-
- 05 May, 2015 1 commit
-
-
bmeurer authored
Tail calls are matched on the graph, with a dedicated tail call optimization that is actually testable. The instruction selection can still fall back to a regular if the platform constraints don't allow to emit a tail call (i.e. the return locations of caller and callee differ or the callee takes non-register parameters, which is a restriction that will be removed in the future). Also explicitly limit tail call optimization to stubs for now and drop the global flag. BUG=v8:4076 LOG=n Review URL: https://codereview.chromium.org/1114163005 Cr-Commit-Position: refs/heads/master@{#28219}
-
- 20 Apr, 2015 1 commit
-
-
Ross McIlroy authored
R=jochen@chromium.org Review URL: https://codereview.chromium.org/1088993003 Cr-Commit-Position: refs/heads/master@{#27937}
-
- 04 Mar, 2015 1 commit
-
-
jarin authored
BUG= Review URL: https://codereview.chromium.org/961973002 Cr-Commit-Position: refs/heads/master@{#26993}
-
- 25 Feb, 2015 1 commit
-
-
dcarney authored
BUG= Review URL: https://codereview.chromium.org/951553005 Cr-Commit-Position: refs/heads/master@{#26859}
-
- 20 Feb, 2015 1 commit
-
-
mstarzinger authored
R=titzer@chromium.org,bmeurer@chromium.org Review URL: https://codereview.chromium.org/928213003 Cr-Commit-Position: refs/heads/master@{#26766}
-
- 17 Feb, 2015 1 commit
-
-
bmeurer authored
This adds a new ControlFlowOptimizer that - for now - recognizes chains of Branches generated by the SwitchBuilder for a subset of javascript switches into Switch nodes. Those Switch nodes are then lowered to either table or lookup switches. Also rename Case to IfValue (and introduce IfDefault) for consistency. BUG=v8:3872 LOG=n Review URL: https://codereview.chromium.org/931623002 Cr-Commit-Position: refs/heads/master@{#26691}
-
- 09 Feb, 2015 1 commit
-
-
bmeurer authored
Adds Switch and Case operators to TurboFan and handles them appropriately in instruction selection and code generation. BUG=v8:3872 LOG=n Review URL: https://codereview.chromium.org/892513003 Cr-Commit-Position: refs/heads/master@{#26515}
-
- 23 Jan, 2015 2 commits
-
-
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}
-
bmeurer authored
R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/869723003 Cr-Commit-Position: refs/heads/master@{#26240}
-
- 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}
-
- 17 Dec, 2014 1 commit
-
-
dcarney authored
R=titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/805263003 Cr-Commit-Position: refs/heads/master@{#25867}
-
- 26 Nov, 2014 3 commits
-
-
mstarzinger authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/762723004 Cr-Commit-Position: refs/heads/master@{#25531}
-
mstarzinger authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/764533003 Cr-Commit-Position: refs/heads/master@{#25523}
-
titzer authored
R=dcarney@chromium.org BUG= Review URL: https://codereview.chromium.org/754843002 Cr-Commit-Position: refs/heads/master@{#25521}
-
- 06 Nov, 2014 1 commit
-
-
mstarzinger@chromium.org authored
R=titzer@chromium.org TEST=test-run-inlining/InlineTwiceDependentDiamond Review URL: https://codereview.chromium.org/704293002 Cr-Commit-Position: refs/heads/master@{#25205} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25205 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
-
- 27 Oct, 2014 1 commit
-
-
dcarney@chromium.org authored
R=mstarzinger@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/662513005 Cr-Commit-Position: refs/heads/master@{#24894} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Oct, 2014 1 commit
-
-
mstarzinger@chromium.org authored
R=jarin@chromium.org TEST=cctest/test-schedule/TestScheduleInsertBranch Review URL: https://codereview.chromium.org/675983002 Cr-Commit-Position: refs/heads/master@{#24876} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Oct, 2014 1 commit
-
-
bmeurer@chromium.org authored
Branch can now have an optional hint, when the condition is likely true or false, and if such a hint is present the other basic block will be marked as deferred and placed at the end of the function. We currently use this feature for tagging int32/uint32 in change lowering, and for load/store bounds checks in simplified lowering. TEST=cctest,unittests R=dcarney@chromium.org Review URL: https://codereview.chromium.org/642883003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Oct, 2014 2 commits
-
-
dcarney@chromium.org authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/669613002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
R=bmeurer@chromium.org, jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/664683002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Oct, 2014 2 commits
-
-
dcarney@chromium.org authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/646393002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jarin@chromium.org authored
[turbofan] Output schedule, instructions and register allocator in C1 visualizer format when --turbo-trace is specified. BUG= R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/637313002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-