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

Side by Side Diff: test/unittests/compiler/graph-unittest.cc

Issue 615393002: Move unit tests to test/unittests. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE Created 6 years, 2 months 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 | Annotate | Revision Log
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 "src/compiler/graph-unittest.h" 5 #include "test/unittests/compiler/graph-unittest.h"
6 6
7 #include <ostream> // NOLINT(readability/streams) 7 #include <ostream> // NOLINT(readability/streams)
8 8
9 #include "src/compiler/node-properties-inl.h" 9 #include "src/compiler/node-properties-inl.h"
10 10
11 using testing::_; 11 using testing::_;
12 using testing::MakeMatcher; 12 using testing::MakeMatcher;
13 using testing::MatcherInterface; 13 using testing::MatcherInterface;
14 using testing::MatchResultListener; 14 using testing::MatchResultListener;
15 using testing::StringMatchResultListener; 15 using testing::StringMatchResultListener;
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 115
116 116
117 class NodeMatcher : public MatcherInterface<Node*> { 117 class NodeMatcher : public MatcherInterface<Node*> {
118 public: 118 public:
119 explicit NodeMatcher(IrOpcode::Value opcode) : opcode_(opcode) {} 119 explicit NodeMatcher(IrOpcode::Value opcode) : opcode_(opcode) {}
120 120
121 virtual void DescribeTo(std::ostream* os) const OVERRIDE { 121 virtual void DescribeTo(std::ostream* os) const OVERRIDE {
122 *os << "is a " << IrOpcode::Mnemonic(opcode_) << " node"; 122 *os << "is a " << IrOpcode::Mnemonic(opcode_) << " node";
123 } 123 }
124 124
125 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 125 virtual bool MatchAndExplain(Node* node,
126 OVERRIDE { 126 MatchResultListener* listener) const OVERRIDE {
127 if (node == NULL) { 127 if (node == NULL) {
128 *listener << "which is NULL"; 128 *listener << "which is NULL";
129 return false; 129 return false;
130 } 130 }
131 if (node->opcode() != opcode_) { 131 if (node->opcode() != opcode_) {
132 *listener << "whose opcode is " << IrOpcode::Mnemonic(node->opcode()) 132 *listener << "whose opcode is " << IrOpcode::Mnemonic(node->opcode())
133 << " but should have been " << IrOpcode::Mnemonic(opcode_); 133 << " but should have been " << IrOpcode::Mnemonic(opcode_);
134 return false; 134 return false;
135 } 135 }
136 return true; 136 return true;
(...skipping 14 matching lines...) Expand all
151 151
152 virtual void DescribeTo(std::ostream* os) const OVERRIDE { 152 virtual void DescribeTo(std::ostream* os) const OVERRIDE {
153 NodeMatcher::DescribeTo(os); 153 NodeMatcher::DescribeTo(os);
154 *os << " whose value ("; 154 *os << " whose value (";
155 value_matcher_.DescribeTo(os); 155 value_matcher_.DescribeTo(os);
156 *os << ") and control ("; 156 *os << ") and control (";
157 control_matcher_.DescribeTo(os); 157 control_matcher_.DescribeTo(os);
158 *os << ")"; 158 *os << ")";
159 } 159 }
160 160
161 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 161 virtual bool MatchAndExplain(Node* node,
162 OVERRIDE { 162 MatchResultListener* listener) const OVERRIDE {
163 return (NodeMatcher::MatchAndExplain(node, listener) && 163 return (NodeMatcher::MatchAndExplain(node, listener) &&
164 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), 164 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0),
165 "value", value_matcher_, listener) && 165 "value", value_matcher_, listener) &&
166 PrintMatchAndExplain(NodeProperties::GetControlInput(node), 166 PrintMatchAndExplain(NodeProperties::GetControlInput(node),
167 "control", control_matcher_, listener)); 167 "control", control_matcher_, listener));
168 } 168 }
169 169
170 private: 170 private:
171 const Matcher<Node*> value_matcher_; 171 const Matcher<Node*> value_matcher_;
172 const Matcher<Node*> control_matcher_; 172 const Matcher<Node*> control_matcher_;
(...skipping 10 matching lines...) Expand all
183 183
184 virtual void DescribeTo(std::ostream* os) const OVERRIDE { 184 virtual void DescribeTo(std::ostream* os) const OVERRIDE {
185 NodeMatcher::DescribeTo(os); 185 NodeMatcher::DescribeTo(os);
186 *os << " whose control0 ("; 186 *os << " whose control0 (";
187 control0_matcher_.DescribeTo(os); 187 control0_matcher_.DescribeTo(os);
188 *os << ") and control1 ("; 188 *os << ") and control1 (";
189 control1_matcher_.DescribeTo(os); 189 control1_matcher_.DescribeTo(os);
190 *os << ")"; 190 *os << ")";
191 } 191 }
192 192
193 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 193 virtual bool MatchAndExplain(Node* node,
194 OVERRIDE { 194 MatchResultListener* listener) const OVERRIDE {
195 return (NodeMatcher::MatchAndExplain(node, listener) && 195 return (NodeMatcher::MatchAndExplain(node, listener) &&
196 PrintMatchAndExplain(NodeProperties::GetControlInput(node, 0), 196 PrintMatchAndExplain(NodeProperties::GetControlInput(node, 0),
197 "control0", control0_matcher_, listener) && 197 "control0", control0_matcher_, listener) &&
198 PrintMatchAndExplain(NodeProperties::GetControlInput(node, 1), 198 PrintMatchAndExplain(NodeProperties::GetControlInput(node, 1),
199 "control1", control1_matcher_, listener)); 199 "control1", control1_matcher_, listener));
200 } 200 }
201 201
202 private: 202 private:
203 const Matcher<Node*> control0_matcher_; 203 const Matcher<Node*> control0_matcher_;
204 const Matcher<Node*> control1_matcher_; 204 const Matcher<Node*> control1_matcher_;
205 }; 205 };
206 206
207 207
208 class IsControl1Matcher FINAL : public NodeMatcher { 208 class IsControl1Matcher FINAL : public NodeMatcher {
209 public: 209 public:
210 IsControl1Matcher(IrOpcode::Value opcode, 210 IsControl1Matcher(IrOpcode::Value opcode,
211 const Matcher<Node*>& control_matcher) 211 const Matcher<Node*>& control_matcher)
212 : NodeMatcher(opcode), control_matcher_(control_matcher) {} 212 : NodeMatcher(opcode), control_matcher_(control_matcher) {}
213 213
214 virtual void DescribeTo(std::ostream* os) const OVERRIDE { 214 virtual void DescribeTo(std::ostream* os) const OVERRIDE {
215 NodeMatcher::DescribeTo(os); 215 NodeMatcher::DescribeTo(os);
216 *os << " whose control ("; 216 *os << " whose control (";
217 control_matcher_.DescribeTo(os); 217 control_matcher_.DescribeTo(os);
218 *os << ")"; 218 *os << ")";
219 } 219 }
220 220
221 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 221 virtual bool MatchAndExplain(Node* node,
222 OVERRIDE { 222 MatchResultListener* listener) const OVERRIDE {
223 return (NodeMatcher::MatchAndExplain(node, listener) && 223 return (NodeMatcher::MatchAndExplain(node, listener) &&
224 PrintMatchAndExplain(NodeProperties::GetControlInput(node), 224 PrintMatchAndExplain(NodeProperties::GetControlInput(node),
225 "control", control_matcher_, listener)); 225 "control", control_matcher_, listener));
226 } 226 }
227 227
228 private: 228 private:
229 const Matcher<Node*> control_matcher_; 229 const Matcher<Node*> control_matcher_;
230 }; 230 };
231 231
232 232
233 class IsFinishMatcher FINAL : public NodeMatcher { 233 class IsFinishMatcher FINAL : public NodeMatcher {
234 public: 234 public:
235 IsFinishMatcher(const Matcher<Node*>& value_matcher, 235 IsFinishMatcher(const Matcher<Node*>& value_matcher,
236 const Matcher<Node*>& effect_matcher) 236 const Matcher<Node*>& effect_matcher)
237 : NodeMatcher(IrOpcode::kFinish), 237 : NodeMatcher(IrOpcode::kFinish),
238 value_matcher_(value_matcher), 238 value_matcher_(value_matcher),
239 effect_matcher_(effect_matcher) {} 239 effect_matcher_(effect_matcher) {}
240 240
241 virtual void DescribeTo(std::ostream* os) const OVERRIDE { 241 virtual void DescribeTo(std::ostream* os) const OVERRIDE {
242 NodeMatcher::DescribeTo(os); 242 NodeMatcher::DescribeTo(os);
243 *os << " whose value ("; 243 *os << " whose value (";
244 value_matcher_.DescribeTo(os); 244 value_matcher_.DescribeTo(os);
245 *os << ") and effect ("; 245 *os << ") and effect (";
246 effect_matcher_.DescribeTo(os); 246 effect_matcher_.DescribeTo(os);
247 *os << ")"; 247 *os << ")";
248 } 248 }
249 249
250 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 250 virtual bool MatchAndExplain(Node* node,
251 OVERRIDE { 251 MatchResultListener* listener) const OVERRIDE {
252 return (NodeMatcher::MatchAndExplain(node, listener) && 252 return (NodeMatcher::MatchAndExplain(node, listener) &&
253 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), 253 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0),
254 "value", value_matcher_, listener) && 254 "value", value_matcher_, listener) &&
255 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect", 255 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
256 effect_matcher_, listener)); 256 effect_matcher_, listener));
257 } 257 }
258 258
259 private: 259 private:
260 const Matcher<Node*> value_matcher_; 260 const Matcher<Node*> value_matcher_;
261 const Matcher<Node*> effect_matcher_; 261 const Matcher<Node*> effect_matcher_;
262 }; 262 };
263 263
264 264
265 template <typename T> 265 template <typename T>
266 class IsConstantMatcher FINAL : public NodeMatcher { 266 class IsConstantMatcher FINAL : public NodeMatcher {
267 public: 267 public:
268 IsConstantMatcher(IrOpcode::Value opcode, const Matcher<T>& value_matcher) 268 IsConstantMatcher(IrOpcode::Value opcode, const Matcher<T>& value_matcher)
269 : NodeMatcher(opcode), value_matcher_(value_matcher) {} 269 : NodeMatcher(opcode), value_matcher_(value_matcher) {}
270 270
271 virtual void DescribeTo(std::ostream* os) const OVERRIDE { 271 virtual void DescribeTo(std::ostream* os) const OVERRIDE {
272 NodeMatcher::DescribeTo(os); 272 NodeMatcher::DescribeTo(os);
273 *os << " whose value ("; 273 *os << " whose value (";
274 value_matcher_.DescribeTo(os); 274 value_matcher_.DescribeTo(os);
275 *os << ")"; 275 *os << ")";
276 } 276 }
277 277
278 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 278 virtual bool MatchAndExplain(Node* node,
279 OVERRIDE { 279 MatchResultListener* listener) const OVERRIDE {
280 return (NodeMatcher::MatchAndExplain(node, listener) && 280 return (NodeMatcher::MatchAndExplain(node, listener) &&
281 PrintMatchAndExplain(OpParameter<T>(node), "value", value_matcher_, 281 PrintMatchAndExplain(OpParameter<T>(node), "value", value_matcher_,
282 listener)); 282 listener));
283 } 283 }
284 284
285 private: 285 private:
286 const Matcher<T> value_matcher_; 286 const Matcher<T> value_matcher_;
287 }; 287 };
288 288
289 289
(...skipping 15 matching lines...) Expand all
305 type_matcher_.DescribeTo(os); 305 type_matcher_.DescribeTo(os);
306 *os << "), value0 ("; 306 *os << "), value0 (";
307 value0_matcher_.DescribeTo(os); 307 value0_matcher_.DescribeTo(os);
308 *os << "), value1 ("; 308 *os << "), value1 (";
309 value1_matcher_.DescribeTo(os); 309 value1_matcher_.DescribeTo(os);
310 *os << ") and control ("; 310 *os << ") and control (";
311 control_matcher_.DescribeTo(os); 311 control_matcher_.DescribeTo(os);
312 *os << ")"; 312 *os << ")";
313 } 313 }
314 314
315 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 315 virtual bool MatchAndExplain(Node* node,
316 OVERRIDE { 316 MatchResultListener* listener) const OVERRIDE {
317 return (NodeMatcher::MatchAndExplain(node, listener) && 317 return (NodeMatcher::MatchAndExplain(node, listener) &&
318 PrintMatchAndExplain(OpParameter<MachineType>(node), "type", 318 PrintMatchAndExplain(OpParameter<MachineType>(node), "type",
319 type_matcher_, listener) && 319 type_matcher_, listener) &&
320 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), 320 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0),
321 "value0", value0_matcher_, listener) && 321 "value0", value0_matcher_, listener) &&
322 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), 322 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1),
323 "value1", value1_matcher_, listener) && 323 "value1", value1_matcher_, listener) &&
324 PrintMatchAndExplain(NodeProperties::GetControlInput(node), 324 PrintMatchAndExplain(NodeProperties::GetControlInput(node),
325 "control", control_matcher_, listener)); 325 "control", control_matcher_, listener));
326 } 326 }
(...skipping 16 matching lines...) Expand all
343 343
344 virtual void DescribeTo(std::ostream* os) const OVERRIDE { 344 virtual void DescribeTo(std::ostream* os) const OVERRIDE {
345 NodeMatcher::DescribeTo(os); 345 NodeMatcher::DescribeTo(os);
346 *os << " whose index ("; 346 *os << " whose index (";
347 index_matcher_.DescribeTo(os); 347 index_matcher_.DescribeTo(os);
348 *os << ") and base ("; 348 *os << ") and base (";
349 base_matcher_.DescribeTo(os); 349 base_matcher_.DescribeTo(os);
350 *os << ")"; 350 *os << ")";
351 } 351 }
352 352
353 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 353 virtual bool MatchAndExplain(Node* node,
354 OVERRIDE { 354 MatchResultListener* listener) const OVERRIDE {
355 return (NodeMatcher::MatchAndExplain(node, listener) && 355 return (NodeMatcher::MatchAndExplain(node, listener) &&
356 PrintMatchAndExplain(OpParameter<size_t>(node), "index", 356 PrintMatchAndExplain(OpParameter<size_t>(node), "index",
357 index_matcher_, listener) && 357 index_matcher_, listener) &&
358 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "base", 358 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "base",
359 base_matcher_, listener)); 359 base_matcher_, listener));
360 } 360 }
361 361
362 private: 362 private:
363 const Matcher<size_t> index_matcher_; 363 const Matcher<size_t> index_matcher_;
364 const Matcher<Node*> base_matcher_; 364 const Matcher<Node*> base_matcher_;
(...skipping 28 matching lines...) Expand all
393 value2_matcher_.DescribeTo(os); 393 value2_matcher_.DescribeTo(os);
394 *os << ") and value3 ("; 394 *os << ") and value3 (";
395 value3_matcher_.DescribeTo(os); 395 value3_matcher_.DescribeTo(os);
396 *os << ") and effect ("; 396 *os << ") and effect (";
397 effect_matcher_.DescribeTo(os); 397 effect_matcher_.DescribeTo(os);
398 *os << ") and control ("; 398 *os << ") and control (";
399 control_matcher_.DescribeTo(os); 399 control_matcher_.DescribeTo(os);
400 *os << ")"; 400 *os << ")";
401 } 401 }
402 402
403 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 403 virtual bool MatchAndExplain(Node* node,
404 OVERRIDE { 404 MatchResultListener* listener) const OVERRIDE {
405 return (NodeMatcher::MatchAndExplain(node, listener) && 405 return (NodeMatcher::MatchAndExplain(node, listener) &&
406 PrintMatchAndExplain(OpParameter<CallDescriptor*>(node), 406 PrintMatchAndExplain(OpParameter<CallDescriptor*>(node),
407 "descriptor", descriptor_matcher_, listener) && 407 "descriptor", descriptor_matcher_, listener) &&
408 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), 408 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0),
409 "value0", value0_matcher_, listener) && 409 "value0", value0_matcher_, listener) &&
410 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), 410 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1),
411 "value1", value1_matcher_, listener) && 411 "value1", value1_matcher_, listener) &&
412 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 2), 412 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 2),
413 "value2", value2_matcher_, listener) && 413 "value2", value2_matcher_, listener) &&
414 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 3), 414 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 3),
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 rep_matcher_.DescribeTo(os); 448 rep_matcher_.DescribeTo(os);
449 *os << "), base ("; 449 *os << "), base (";
450 base_matcher_.DescribeTo(os); 450 base_matcher_.DescribeTo(os);
451 *os << "), index ("; 451 *os << "), index (";
452 index_matcher_.DescribeTo(os); 452 index_matcher_.DescribeTo(os);
453 *os << ") and effect ("; 453 *os << ") and effect (";
454 effect_matcher_.DescribeTo(os); 454 effect_matcher_.DescribeTo(os);
455 *os << ")"; 455 *os << ")";
456 } 456 }
457 457
458 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 458 virtual bool MatchAndExplain(Node* node,
459 OVERRIDE { 459 MatchResultListener* listener) const OVERRIDE {
460 return (NodeMatcher::MatchAndExplain(node, listener) && 460 return (NodeMatcher::MatchAndExplain(node, listener) &&
461 PrintMatchAndExplain(OpParameter<LoadRepresentation>(node), "rep", 461 PrintMatchAndExplain(OpParameter<LoadRepresentation>(node), "rep",
462 rep_matcher_, listener) && 462 rep_matcher_, listener) &&
463 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "base", 463 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "base",
464 base_matcher_, listener) && 464 base_matcher_, listener) &&
465 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), 465 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1),
466 "index", index_matcher_, listener) && 466 "index", index_matcher_, listener) &&
467 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect", 467 PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
468 effect_matcher_, listener)); 468 effect_matcher_, listener));
469 } 469 }
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 index_matcher_.DescribeTo(os); 506 index_matcher_.DescribeTo(os);
507 *os << "), value ("; 507 *os << "), value (";
508 value_matcher_.DescribeTo(os); 508 value_matcher_.DescribeTo(os);
509 *os << "), effect ("; 509 *os << "), effect (";
510 effect_matcher_.DescribeTo(os); 510 effect_matcher_.DescribeTo(os);
511 *os << ") and control ("; 511 *os << ") and control (";
512 control_matcher_.DescribeTo(os); 512 control_matcher_.DescribeTo(os);
513 *os << ")"; 513 *os << ")";
514 } 514 }
515 515
516 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 516 virtual bool MatchAndExplain(Node* node,
517 OVERRIDE { 517 MatchResultListener* listener) const OVERRIDE {
518 return (NodeMatcher::MatchAndExplain(node, listener) && 518 return (NodeMatcher::MatchAndExplain(node, listener) &&
519 PrintMatchAndExplain( 519 PrintMatchAndExplain(
520 OpParameter<StoreRepresentation>(node).machine_type(), "type", 520 OpParameter<StoreRepresentation>(node).machine_type(), "type",
521 type_matcher_, listener) && 521 type_matcher_, listener) &&
522 PrintMatchAndExplain( 522 PrintMatchAndExplain(
523 OpParameter<StoreRepresentation>(node).write_barrier_kind(), 523 OpParameter<StoreRepresentation>(node).write_barrier_kind(),
524 "write barrier", write_barrier_matcher_, listener) && 524 "write barrier", write_barrier_matcher_, listener) &&
525 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "base", 525 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "base",
526 base_matcher_, listener) && 526 base_matcher_, listener) &&
527 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), 527 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1),
(...skipping 27 matching lines...) Expand all
555 555
556 virtual void DescribeTo(std::ostream* os) const OVERRIDE { 556 virtual void DescribeTo(std::ostream* os) const OVERRIDE {
557 NodeMatcher::DescribeTo(os); 557 NodeMatcher::DescribeTo(os);
558 *os << " whose lhs ("; 558 *os << " whose lhs (";
559 lhs_matcher_.DescribeTo(os); 559 lhs_matcher_.DescribeTo(os);
560 *os << ") and rhs ("; 560 *os << ") and rhs (";
561 rhs_matcher_.DescribeTo(os); 561 rhs_matcher_.DescribeTo(os);
562 *os << ")"; 562 *os << ")";
563 } 563 }
564 564
565 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 565 virtual bool MatchAndExplain(Node* node,
566 OVERRIDE { 566 MatchResultListener* listener) const OVERRIDE {
567 return (NodeMatcher::MatchAndExplain(node, listener) && 567 return (NodeMatcher::MatchAndExplain(node, listener) &&
568 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "lhs", 568 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "lhs",
569 lhs_matcher_, listener) && 569 lhs_matcher_, listener) &&
570 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), "rhs", 570 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), "rhs",
571 rhs_matcher_, listener)); 571 rhs_matcher_, listener));
572 } 572 }
573 573
574 private: 574 private:
575 const Matcher<Node*> lhs_matcher_; 575 const Matcher<Node*> lhs_matcher_;
576 const Matcher<Node*> rhs_matcher_; 576 const Matcher<Node*> rhs_matcher_;
577 }; 577 };
578 578
579 579
580 class IsUnopMatcher FINAL : public NodeMatcher { 580 class IsUnopMatcher FINAL : public NodeMatcher {
581 public: 581 public:
582 IsUnopMatcher(IrOpcode::Value opcode, const Matcher<Node*>& input_matcher) 582 IsUnopMatcher(IrOpcode::Value opcode, const Matcher<Node*>& input_matcher)
583 : NodeMatcher(opcode), input_matcher_(input_matcher) {} 583 : NodeMatcher(opcode), input_matcher_(input_matcher) {}
584 584
585 virtual void DescribeTo(std::ostream* os) const OVERRIDE { 585 virtual void DescribeTo(std::ostream* os) const OVERRIDE {
586 NodeMatcher::DescribeTo(os); 586 NodeMatcher::DescribeTo(os);
587 *os << " whose input ("; 587 *os << " whose input (";
588 input_matcher_.DescribeTo(os); 588 input_matcher_.DescribeTo(os);
589 *os << ")"; 589 *os << ")";
590 } 590 }
591 591
592 virtual bool MatchAndExplain(Node* node, MatchResultListener* listener) const 592 virtual bool MatchAndExplain(Node* node,
593 OVERRIDE { 593 MatchResultListener* listener) const OVERRIDE {
594 return (NodeMatcher::MatchAndExplain(node, listener) && 594 return (NodeMatcher::MatchAndExplain(node, listener) &&
595 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), 595 PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0),
596 "input", input_matcher_, listener)); 596 "input", input_matcher_, listener));
597 } 597 }
598 598
599 private: 599 private:
600 const Matcher<Node*> input_matcher_; 600 const Matcher<Node*> input_matcher_;
601 }; 601 };
602 } 602 }
603 603
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 IS_UNOP_MATCHER(ChangeUint32ToUint64) 771 IS_UNOP_MATCHER(ChangeUint32ToUint64)
772 IS_UNOP_MATCHER(TruncateFloat64ToFloat32) 772 IS_UNOP_MATCHER(TruncateFloat64ToFloat32)
773 IS_UNOP_MATCHER(TruncateFloat64ToInt32) 773 IS_UNOP_MATCHER(TruncateFloat64ToInt32)
774 IS_UNOP_MATCHER(TruncateInt64ToInt32) 774 IS_UNOP_MATCHER(TruncateInt64ToInt32)
775 IS_UNOP_MATCHER(Float64Sqrt) 775 IS_UNOP_MATCHER(Float64Sqrt)
776 #undef IS_UNOP_MATCHER 776 #undef IS_UNOP_MATCHER
777 777
778 } // namespace compiler 778 } // namespace compiler
779 } // namespace internal 779 } // namespace internal
780 } // namespace v8 780 } // namespace v8
OLDNEW
« no previous file with comments | « test/unittests/compiler/graph-unittest.h ('k') | test/unittests/compiler/ia32/instruction-selector-ia32-unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698