- 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}
-
- 28 Dec, 2016 1 commit
-
-
danno authored
Before this patch, loops in deferred code would defeat the propagation of the deferred flag, since back edges would usually not come from deferred blocks, thus stoping the forward propagation of the deferred flag at loop headers. This patch ensures that back edges are ignored in the deferred propations, properly placing loops dominated by deferred labels and the code that follows them into deferred code. R=epertoso@chromium.org LOG=N Review-Url: https://codereview.chromium.org/2606923002 Cr-Commit-Position: refs/heads/master@{#41976}
-
- 07 Oct, 2016 1 commit
-
-
danno authored
In the process, also fix a merge hiccup that clobbered https://codereview.chromium.org/2003663002/ back in May. BUG=chromium:608675 LOG=N Review-Url: https://codereview.chromium.org/2397223002 Cr-Commit-Position: refs/heads/master@{#40085}
-
- 24 May, 2016 1 commit
-
-
danno authored
BUG=chromium:608675 LOG=n Review-Url: https://codereview.chromium.org/1987183002 Cr-Commit-Position: refs/heads/master@{#36463}
-
- 23 May, 2016 1 commit
-
-
danno authored
Previously, split-edge blocks inserted into CodeStubAssembler schedules inherited the "deferredness" of their predecessor block. This tended to inline newly inserted blocks that preceeded deferred code inline with non-deferred code. The stack frame elider sometimes inserted stack construction into these blocks, code which was actually was only needed in the deferred case. This CL marks inserted split edge blocks with the deferredness of their successors, e.g. they are defererred if their predecessor is deferrred. This moves stack building code that logically belongs to deferred code into the deferred code area rather than inlining it in non-deferred code. Review-Url: https://codereview.chromium.org/2003663002 Cr-Commit-Position: refs/heads/master@{#36446}
-
- 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}
-
- 18 Apr, 2016 1 commit
-
-
jarin authored
This introduces a compiler pass that schedules the graph and re-wires effect chain according to the schedule. It also connects allocating representation changes to the effect chain, and removes the BeginRegion and EndRegion nodes - they should not be needed anymore because all effectful nodes should be already wired-in. This is an intermediate CL - the next step is to move lowering of the Change*ToTaggedEffect nodes to StateEffectIntroduction so that we do not have to introduce the effectful versions of nodes. Review URL: https://codereview.chromium.org/1849603002 Cr-Commit-Position: refs/heads/master@{#35565}
-
- 23 Mar, 2016 2 commits
-
-
mstarzinger authored
We use the pattern "B23" to refer to RPO numbers and "id:42" when referring to unordered block ids. This unifies printing functions to follow that pattern throughout the system. R=danno@chromium.org Review URL: https://codereview.chromium.org/1824313002 Cr-Commit-Position: refs/heads/master@{#35022}
-
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}
-
- 16 Sep, 2015 1 commit
-
-
jarin authored
Review URL: https://codereview.chromium.org/1348073002 Cr-Commit-Position: refs/heads/master@{#30764}
-
- 12 Jun, 2015 1 commit
-
-
bmeurer authored
Up until now we used int32_t for NodeId, but that was not ideal because negative values are invalid for NodeId and we use it as an array index for example in the NodeMarker class, where C++ compilers on x64 have to generate code that does proper sign extension for the indices, which is completely unnecessary. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/1178403004 Cr-Commit-Position: refs/heads/master@{#28997}
-
- 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}
-
- 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}
-
- 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}
-
- 29 Jan, 2015 1 commit
-
-
bmeurer authored
R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/883613006 Cr-Commit-Position: refs/heads/master@{#26316}
-
- 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}
-
- 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 2 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}
-
- 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
-
- 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 2 commits
-
-
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
-
mstarzinger@chromium.org authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/641553003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24797 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
-
- 15 Oct, 2014 1 commit
-
-
rossberg@chromium.org authored
- Extend verifier to check types of JS and Simplified nodes. - Untyped nodes now contain NULL as types, enforcing hard failure. - Typer immediately installs itself as a decorator; remove explicit decorator installation. - Decorator eagerly types all nodes that have typed inputs (subsumes typing of constant cache, removing its typing side-channel and various spurious dependencies on the typer). - Cut down typer interface to prevent inconsistently typed graphs. - Remove verification from start, since it caused too much trouble with semi-wellformed nodes. - Fix a couple of bugs on the way that got uncovered. To do: verifying machine operators. Also, various conditions in the verifier are currently commented out, because they don't yet hold. BUG= R=jarin@chromium.org,titzer@chromium.org Review URL: https://codereview.chromium.org/658543002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Oct, 2014 1 commit
-
-
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
-
- 30 Sep, 2014 2 commits
-
-
bmeurer@chromium.org authored
Review URL: https://codereview.chromium.org/618643002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-
- 01 Sep, 2014 1 commit
-
-
jarin@chromium.org authored
This adds context deoptimization to Turbofan and Crankshaft (also submitted separately as https://codereview.chromium.org/515723004/). The second patchset removes the deoptimization/continuation block from calls. BUG= R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/522873002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jul, 2014 1 commit
-
-
danno@chromium.org authored
R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/426233002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-