Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(432)

Side by Side Diff: src/interpreter/mkpeephole.cc

Issue 2485383002: [Interpreter] Remove Ldr[Named/Keyed]Property bytecodes and use Star Lookahead instead. (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <array> 5 #include <array>
6 #include <fstream> 6 #include <fstream>
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 // static 79 // static
80 PeepholeActionAndData PeepholeActionTableWriter::LookupActionAndData( 80 PeepholeActionAndData PeepholeActionTableWriter::LookupActionAndData(
81 Bytecode last, Bytecode current) { 81 Bytecode last, Bytecode current) {
82 // Optimize various accumulator loads followed by store accumulator 82 // Optimize various accumulator loads followed by store accumulator
83 // to an equivalent register load and loading the accumulator with 83 // to an equivalent register load and loading the accumulator with
84 // the register. The latter accumulator load can often be elided as 84 // the register. The latter accumulator load can often be elided as
85 // it is side-effect free and often followed by another accumulator 85 // it is side-effect free and often followed by another accumulator
86 // load so can be elided. 86 // load so can be elided.
87 if (current == Bytecode::kStar) { 87 if (current == Bytecode::kStar) {
88 switch (last) { 88 switch (last) {
89 case Bytecode::kLdaNamedProperty:
90 return {PeepholeAction::kTransformLdaStarToLdrLdarAction,
91 Bytecode::kLdrNamedProperty};
92 case Bytecode::kLdaKeyedProperty:
93 return {PeepholeAction::kTransformLdaStarToLdrLdarAction,
94 Bytecode::kLdrKeyedProperty};
95 case Bytecode::kLdaGlobal: 89 case Bytecode::kLdaGlobal:
96 return {PeepholeAction::kTransformLdaStarToLdrLdarAction, 90 return {PeepholeAction::kTransformLdaStarToLdrLdarAction,
97 Bytecode::kLdrGlobal}; 91 Bytecode::kLdrGlobal};
98 case Bytecode::kLdaContextSlot: 92 case Bytecode::kLdaContextSlot:
99 return {PeepholeAction::kTransformLdaStarToLdrLdarAction, 93 return {PeepholeAction::kTransformLdaStarToLdrLdarAction,
100 Bytecode::kLdrContextSlot}; 94 Bytecode::kLdrContextSlot};
101 case Bytecode::kLdaCurrentContextSlot: 95 case Bytecode::kLdaCurrentContextSlot:
102 return {PeepholeAction::kTransformLdaStarToLdrLdarAction, 96 return {PeepholeAction::kTransformLdaStarToLdrLdarAction,
103 Bytecode::kLdrCurrentContextSlot}; 97 Bytecode::kLdrCurrentContextSlot};
104 case Bytecode::kLdaUndefined: 98 case Bytecode::kLdaUndefined:
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 374
381 std::ofstream ofs(argv[1], std::ofstream::trunc); 375 std::ofstream ofs(argv[1], std::ofstream::trunc);
382 v8::internal::interpreter::PeepholeActionTableWriter writer; 376 v8::internal::interpreter::PeepholeActionTableWriter writer;
383 writer.BuildTable(); 377 writer.BuildTable();
384 writer.Write(ofs); 378 writer.Write(ofs);
385 ofs.flush(); 379 ofs.flush();
386 ofs.close(); 380 ofs.close();
387 381
388 return 0; 382 return 0;
389 } 383 }
OLDNEW
« no previous file with comments | « src/interpreter/interpreter.cc ('k') | test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698