- 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
-
- 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
-
- 29 Sep, 2014 1 commit
-
-
dcarney@chromium.org authored
R=titzer@chromium.org, mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/593563005 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Sep, 2014 1 commit
-
-
jarin@chromium.org authored
BUG= R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/602643002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Sep, 2014 1 commit
-
-
bmeurer@chromium.org authored
Less useless creativity is best creativity! R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/526223002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23579 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
-
- 26 Aug, 2014 2 commits
-
-
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
-
- 18 Aug, 2014 1 commit
-
-
titzer@chromium.org authored
R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/484653002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Aug, 2014 1 commit
-
-
bmeurer@chromium.org authored
This way we don't clash with the ASSERT* macros defined by GoogleTest, and we are one step closer to being able to replace our homegrown base/ with base/ from Chrome. R=jochen@chromium.org, svenpanne@chromium.org Review URL: https://codereview.chromium.org/430503007 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jul, 2014 2 commits
-
-
danno@chromium.org authored
R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/420033003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
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
-