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

Side by Side Diff: test/unittests/compiler/node-test-utils.cc

Issue 1459543003: [Interpreter] Add support for unary operators to bytecode graph builder. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 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
« no previous file with comments | « test/unittests/compiler/node-test-utils.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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 "test/unittests/compiler/node-test-utils.h" 5 #include "test/unittests/compiler/node-test-utils.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "src/assembler.h" 9 #include "src/assembler.h"
10 #include "src/compiler/common-operator.h" 10 #include "src/compiler/common-operator.h"
(...skipping 1410 matching lines...) Expand 10 before | Expand all | Expand 10 after
1421 return (NodeMatcher::MatchAndExplain(node, listener) && 1421 return (NodeMatcher::MatchAndExplain(node, listener) &&
1422 PrintMatchAndExplain(ParameterIndexOf(node->op()), "index", 1422 PrintMatchAndExplain(ParameterIndexOf(node->op()), "index",
1423 index_matcher_, listener)); 1423 index_matcher_, listener));
1424 } 1424 }
1425 1425
1426 private: 1426 private:
1427 const Matcher<int> index_matcher_; 1427 const Matcher<int> index_matcher_;
1428 }; 1428 };
1429 1429
1430 1430
1431 class IsJSDeletePropertyMatcher final : public NodeMatcher {
1432 public:
1433 IsJSDeletePropertyMatcher(const Matcher<Node*>& object_value_matcher,
1434 const Matcher<Node*>& key_matcher,
1435 const Matcher<Node*>& effect_matcher,
1436 const Matcher<Node*>& control_matcher)
1437 : NodeMatcher(IrOpcode::kJSDeleteProperty),
1438 object_value_matcher_(object_value_matcher),
1439 key_matcher_(key_matcher),
1440 effect_matcher_(effect_matcher),
1441 control_matcher_(control_matcher) {}
1442
1443 void DescribeTo(std::ostream* os) const final {
1444 NodeMatcher::DescribeTo(os);
1445 *os << " whose object (";
1446 object_value_matcher_.DescribeTo(os);
1447 *os << "), key (";
1448 key_matcher_.DescribeTo(os);
1449 *os << "), effect (";
1450 effect_matcher_.DescribeTo(os);
1451 *os << "), and control (";
1452 control_matcher_.DescribeTo(os);
1453 *os << ")";
1454 }
1455
1456 bool MatchAndExplain(Node* node, MatchResultListener* listener) const final {
1457 return (NodeMatcher::MatchAndExplain(node, listener) &&
1458 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0),
1459 "object", object_value_matcher_, listener) &&
1460 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), "key",
1461 key_matcher_, listener) &&
1462 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
1463 effect_matcher_, listener) &&
1464 PrintMatchAndExplain(NodeProperties::GetControlInput(node),
1465 "control", control_matcher_, listener));
1466 }
1467
1468 private:
1469 const Matcher<Node*> object_value_matcher_;
1470 const Matcher<Node*> key_matcher_;
1471 const Matcher<Node*> effect_matcher_;
1472 const Matcher<Node*> control_matcher_;
1473 };
1474
1475
1431 // TODO(mythria): Check if we can use the same matcher for Load and Store 1476 // TODO(mythria): Check if we can use the same matcher for Load and Store
1432 class IsJSLoadNamedMatcher final : public NodeMatcher { 1477 class IsJSLoadNamedMatcher final : public NodeMatcher {
1433 public: 1478 public:
1434 IsJSLoadNamedMatcher(const Matcher<Handle<Name>>& name_matcher, 1479 IsJSLoadNamedMatcher(const Matcher<Handle<Name>>& name_matcher,
1435 const Matcher<Node*>& object_value_matcher, 1480 const Matcher<Node*>& object_value_matcher,
1436 const Matcher<Node*>& feedback_vector_matcher, 1481 const Matcher<Node*>& feedback_vector_matcher,
1437 const Matcher<Node*>& effect_matcher, 1482 const Matcher<Node*>& effect_matcher,
1438 const Matcher<Node*>& control_matcher) 1483 const Matcher<Node*>& control_matcher)
1439 : NodeMatcher(IrOpcode::kJSLoadNamed), 1484 : NodeMatcher(IrOpcode::kJSLoadNamed),
1440 name_matcher_(name_matcher), 1485 name_matcher_(name_matcher),
(...skipping 768 matching lines...) Expand 10 before | Expand all | Expand 10 after
2209 Matcher<Node*> IsParameter(const Matcher<int> index_matcher) { 2254 Matcher<Node*> IsParameter(const Matcher<int> index_matcher) {
2210 return MakeMatcher(new IsParameterMatcher(index_matcher)); 2255 return MakeMatcher(new IsParameterMatcher(index_matcher));
2211 } 2256 }
2212 2257
2213 2258
2214 Matcher<Node*> IsLoadFramePointer() { 2259 Matcher<Node*> IsLoadFramePointer() {
2215 return MakeMatcher(new NodeMatcher(IrOpcode::kLoadFramePointer)); 2260 return MakeMatcher(new NodeMatcher(IrOpcode::kLoadFramePointer));
2216 } 2261 }
2217 2262
2218 2263
2264 Matcher<Node*> IsJSDeleteProperty(const Matcher<Node*>& object_value_matcher,
2265 const Matcher<Node*>& key_matcher,
2266 const Matcher<Node*>& effect_matcher,
2267 const Matcher<Node*>& control_matcher) {
2268 return MakeMatcher(new IsJSDeletePropertyMatcher(
2269 object_value_matcher, key_matcher, effect_matcher, control_matcher));
2270 }
2271
2272
2219 Matcher<Node*> IsJSLoadNamed(const Handle<Name> name, 2273 Matcher<Node*> IsJSLoadNamed(const Handle<Name> name,
2220 const Matcher<Node*>& object_value_matcher, 2274 const Matcher<Node*>& object_value_matcher,
2221 const Matcher<Node*>& feedback_vector_matcher, 2275 const Matcher<Node*>& feedback_vector_matcher,
2222 const Matcher<Node*>& effect_matcher, 2276 const Matcher<Node*>& effect_matcher,
2223 const Matcher<Node*>& control_matcher) { 2277 const Matcher<Node*>& control_matcher) {
2224 return MakeMatcher(new IsJSLoadNamedMatcher(name, object_value_matcher, 2278 return MakeMatcher(new IsJSLoadNamedMatcher(name, object_value_matcher,
2225 feedback_vector_matcher, 2279 feedback_vector_matcher,
2226 effect_matcher, control_matcher)); 2280 effect_matcher, control_matcher));
2227 } 2281 }
2228 2282
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
2328 IS_UNOP_MATCHER(Float64Sqrt) 2382 IS_UNOP_MATCHER(Float64Sqrt)
2329 IS_UNOP_MATCHER(Float64RoundDown) 2383 IS_UNOP_MATCHER(Float64RoundDown)
2330 IS_UNOP_MATCHER(Float64RoundTruncate) 2384 IS_UNOP_MATCHER(Float64RoundTruncate)
2331 IS_UNOP_MATCHER(Float64RoundTiesAway) 2385 IS_UNOP_MATCHER(Float64RoundTiesAway)
2332 IS_UNOP_MATCHER(Float64ExtractLowWord32) 2386 IS_UNOP_MATCHER(Float64ExtractLowWord32)
2333 IS_UNOP_MATCHER(Float64ExtractHighWord32) 2387 IS_UNOP_MATCHER(Float64ExtractHighWord32)
2334 IS_UNOP_MATCHER(NumberToInt32) 2388 IS_UNOP_MATCHER(NumberToInt32)
2335 IS_UNOP_MATCHER(NumberToUint32) 2389 IS_UNOP_MATCHER(NumberToUint32)
2336 IS_UNOP_MATCHER(ObjectIsSmi) 2390 IS_UNOP_MATCHER(ObjectIsSmi)
2337 IS_UNOP_MATCHER(Word32Clz) 2391 IS_UNOP_MATCHER(Word32Clz)
2392 IS_UNOP_MATCHER(JSUnaryNot)
2393 IS_UNOP_MATCHER(JSTypeOf)
2338 #undef IS_UNOP_MATCHER 2394 #undef IS_UNOP_MATCHER
2339 2395
2340 } // namespace compiler 2396 } // namespace compiler
2341 } // namespace internal 2397 } // namespace internal
2342 } // namespace v8 2398 } // namespace v8
OLDNEW
« no previous file with comments | « test/unittests/compiler/node-test-utils.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698