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

Side by Side Diff: src/compiler/js-operator.cc

Issue 2228983002: [turbofan] Simplify BinaryOperationHints and CompareOperationHints. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix compile for realz Created 4 years, 4 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
« no previous file with comments | « src/compiler/js-operator.h ('k') | src/compiler/js-typed-lowering.cc » ('j') | 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 "src/compiler/js-operator.h" 5 #include "src/compiler/js-operator.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "src/base/lazy-instance.h" 9 #include "src/base/lazy-instance.h"
10 #include "src/compiler/opcodes.h" 10 #include "src/compiler/opcodes.h"
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 } 369 }
370 370
371 371
372 const CreateLiteralParameters& CreateLiteralParametersOf(const Operator* op) { 372 const CreateLiteralParameters& CreateLiteralParametersOf(const Operator* op) {
373 DCHECK(op->opcode() == IrOpcode::kJSCreateLiteralArray || 373 DCHECK(op->opcode() == IrOpcode::kJSCreateLiteralArray ||
374 op->opcode() == IrOpcode::kJSCreateLiteralObject || 374 op->opcode() == IrOpcode::kJSCreateLiteralObject ||
375 op->opcode() == IrOpcode::kJSCreateLiteralRegExp); 375 op->opcode() == IrOpcode::kJSCreateLiteralRegExp);
376 return OpParameter<CreateLiteralParameters>(op); 376 return OpParameter<CreateLiteralParameters>(op);
377 } 377 }
378 378
379 const BinaryOperationHints& BinaryOperationHintsOf(const Operator* op) { 379 const BinaryOperationHint BinaryOperationHintOf(const Operator* op) {
380 DCHECK(op->opcode() == IrOpcode::kJSBitwiseOr || 380 DCHECK(op->opcode() == IrOpcode::kJSBitwiseOr ||
381 op->opcode() == IrOpcode::kJSBitwiseXor || 381 op->opcode() == IrOpcode::kJSBitwiseXor ||
382 op->opcode() == IrOpcode::kJSBitwiseAnd || 382 op->opcode() == IrOpcode::kJSBitwiseAnd ||
383 op->opcode() == IrOpcode::kJSShiftLeft || 383 op->opcode() == IrOpcode::kJSShiftLeft ||
384 op->opcode() == IrOpcode::kJSShiftRight || 384 op->opcode() == IrOpcode::kJSShiftRight ||
385 op->opcode() == IrOpcode::kJSShiftRightLogical || 385 op->opcode() == IrOpcode::kJSShiftRightLogical ||
386 op->opcode() == IrOpcode::kJSAdd || 386 op->opcode() == IrOpcode::kJSAdd ||
387 op->opcode() == IrOpcode::kJSSubtract || 387 op->opcode() == IrOpcode::kJSSubtract ||
388 op->opcode() == IrOpcode::kJSMultiply || 388 op->opcode() == IrOpcode::kJSMultiply ||
389 op->opcode() == IrOpcode::kJSDivide || 389 op->opcode() == IrOpcode::kJSDivide ||
390 op->opcode() == IrOpcode::kJSModulus); 390 op->opcode() == IrOpcode::kJSModulus);
391 return OpParameter<BinaryOperationHints>(op); 391 return OpParameter<BinaryOperationHint>(op);
392 } 392 }
393 393
394 const CompareOperationHints& CompareOperationHintsOf(const Operator* op) { 394 const CompareOperationHint CompareOperationHintOf(const Operator* op) {
395 DCHECK(op->opcode() == IrOpcode::kJSEqual || 395 DCHECK(op->opcode() == IrOpcode::kJSEqual ||
396 op->opcode() == IrOpcode::kJSNotEqual || 396 op->opcode() == IrOpcode::kJSNotEqual ||
397 op->opcode() == IrOpcode::kJSStrictEqual || 397 op->opcode() == IrOpcode::kJSStrictEqual ||
398 op->opcode() == IrOpcode::kJSStrictNotEqual || 398 op->opcode() == IrOpcode::kJSStrictNotEqual ||
399 op->opcode() == IrOpcode::kJSLessThan || 399 op->opcode() == IrOpcode::kJSLessThan ||
400 op->opcode() == IrOpcode::kJSGreaterThan || 400 op->opcode() == IrOpcode::kJSGreaterThan ||
401 op->opcode() == IrOpcode::kJSLessThanOrEqual || 401 op->opcode() == IrOpcode::kJSLessThanOrEqual ||
402 op->opcode() == IrOpcode::kJSGreaterThanOrEqual); 402 op->opcode() == IrOpcode::kJSGreaterThanOrEqual);
403 return OpParameter<CompareOperationHints>(op); 403 return OpParameter<CompareOperationHint>(op);
404 } 404 }
405 405
406 #define CACHED_OP_LIST(V) \ 406 #define CACHED_OP_LIST(V) \
407 V(ToInteger, Operator::kNoProperties, 1, 1) \ 407 V(ToInteger, Operator::kNoProperties, 1, 1) \
408 V(ToLength, Operator::kNoProperties, 1, 1) \ 408 V(ToLength, Operator::kNoProperties, 1, 1) \
409 V(ToName, Operator::kNoProperties, 1, 1) \ 409 V(ToName, Operator::kNoProperties, 1, 1) \
410 V(ToNumber, Operator::kNoProperties, 1, 1) \ 410 V(ToNumber, Operator::kNoProperties, 1, 1) \
411 V(ToObject, Operator::kFoldable, 1, 1) \ 411 V(ToObject, Operator::kFoldable, 1, 1) \
412 V(ToString, Operator::kNoProperties, 1, 1) \ 412 V(ToString, Operator::kNoProperties, 1, 1) \
413 V(Create, Operator::kEliminatable, 2, 1) \ 413 V(Create, Operator::kEliminatable, 2, 1) \
414 V(CreateIterResultObject, Operator::kEliminatable, 2, 1) \ 414 V(CreateIterResultObject, Operator::kEliminatable, 2, 1) \
415 V(HasProperty, Operator::kNoProperties, 2, 1) \ 415 V(HasProperty, Operator::kNoProperties, 2, 1) \
416 V(TypeOf, Operator::kPure, 1, 1) \ 416 V(TypeOf, Operator::kPure, 1, 1) \
417 V(InstanceOf, Operator::kNoProperties, 2, 1) \ 417 V(InstanceOf, Operator::kNoProperties, 2, 1) \
418 V(ForInDone, Operator::kPure, 2, 1) \ 418 V(ForInDone, Operator::kPure, 2, 1) \
419 V(ForInNext, Operator::kNoProperties, 4, 1) \ 419 V(ForInNext, Operator::kNoProperties, 4, 1) \
420 V(ForInPrepare, Operator::kNoProperties, 1, 3) \ 420 V(ForInPrepare, Operator::kNoProperties, 1, 3) \
421 V(ForInStep, Operator::kPure, 1, 1) \ 421 V(ForInStep, Operator::kPure, 1, 1) \
422 V(LoadMessage, Operator::kNoThrow, 0, 1) \ 422 V(LoadMessage, Operator::kNoThrow, 0, 1) \
423 V(StoreMessage, Operator::kNoThrow, 1, 0) \ 423 V(StoreMessage, Operator::kNoThrow, 1, 0) \
424 V(GeneratorRestoreContinuation, Operator::kNoThrow, 1, 1) \ 424 V(GeneratorRestoreContinuation, Operator::kNoThrow, 1, 1) \
425 V(StackCheck, Operator::kNoWrite, 0, 0) \ 425 V(StackCheck, Operator::kNoWrite, 0, 0) \
426 V(CreateWithContext, Operator::kNoProperties, 2, 1) 426 V(CreateWithContext, Operator::kNoProperties, 2, 1)
427 427
428 #define BINARY_OP_LIST(V) \
429 V(BitwiseOr) \
430 V(BitwiseXor) \
431 V(BitwiseAnd) \
432 V(ShiftLeft) \
433 V(ShiftRight) \
434 V(ShiftRightLogical) \
435 V(Add) \
436 V(Subtract) \
437 V(Multiply) \
438 V(Divide) \
439 V(Modulus)
440
441 #define COMPARE_OP_LIST(V) \
442 V(Equal, Operator::kNoProperties) \
443 V(NotEqual, Operator::kNoProperties) \
444 V(StrictEqual, Operator::kPure) \
445 V(StrictNotEqual, Operator::kPure) \
446 V(LessThan, Operator::kNoProperties) \
447 V(GreaterThan, Operator::kNoProperties) \
448 V(LessThanOrEqual, Operator::kNoProperties) \
449 V(GreaterThanOrEqual, Operator::kNoProperties)
450
428 struct JSOperatorGlobalCache final { 451 struct JSOperatorGlobalCache final {
429 #define CACHED(Name, properties, value_input_count, value_output_count) \ 452 #define CACHED_OP(Name, properties, value_input_count, value_output_count) \
430 struct Name##Operator final : public Operator { \ 453 struct Name##Operator final : public Operator { \
431 Name##Operator() \ 454 Name##Operator() \
432 : Operator(IrOpcode::kJS##Name, properties, "JS" #Name, \ 455 : Operator(IrOpcode::kJS##Name, properties, "JS" #Name, \
433 value_input_count, Operator::ZeroIfPure(properties), \ 456 value_input_count, Operator::ZeroIfPure(properties), \
434 Operator::ZeroIfEliminatable(properties), \ 457 Operator::ZeroIfEliminatable(properties), \
435 value_output_count, Operator::ZeroIfPure(properties), \ 458 value_output_count, Operator::ZeroIfPure(properties), \
436 Operator::ZeroIfNoThrow(properties)) {} \ 459 Operator::ZeroIfNoThrow(properties)) {} \
437 }; \ 460 }; \
438 Name##Operator k##Name##Operator; 461 Name##Operator k##Name##Operator;
439 CACHED_OP_LIST(CACHED) 462 CACHED_OP_LIST(CACHED_OP)
440 #undef CACHED 463 #undef CACHED_OP
464
465 #define BINARY_OP(Name) \
466 template <BinaryOperationHint kHint> \
467 struct Name##Operator final : public Operator1<BinaryOperationHint> { \
468 Name##Operator() \
469 : Operator1<BinaryOperationHint>(IrOpcode::kJS##Name, \
470 Operator::kNoProperties, "JS" #Name, \
471 2, 1, 1, 1, 1, 2, kHint) {} \
472 }; \
473 Name##Operator<BinaryOperationHint::kNone> k##Name##NoneOperator; \
474 Name##Operator<BinaryOperationHint::kSignedSmall> \
475 k##Name##SignedSmallOperator; \
476 Name##Operator<BinaryOperationHint::kSigned32> k##Name##Signed32Operator; \
477 Name##Operator<BinaryOperationHint::kNumberOrOddball> \
478 k##Name##NumberOrOddballOperator; \
479 Name##Operator<BinaryOperationHint::kAny> k##Name##AnyOperator;
480 BINARY_OP_LIST(BINARY_OP)
481 #undef BINARY_OP
482
483 #define COMPARE_OP(Name, properties) \
484 template <CompareOperationHint kHint> \
485 struct Name##Operator final : public Operator1<CompareOperationHint> { \
486 Name##Operator() \
487 : Operator1<CompareOperationHint>( \
488 IrOpcode::kJS##Name, properties, "JS" #Name, 2, 1, 1, 1, 1, \
489 Operator::ZeroIfNoThrow(properties), kHint) {} \
490 }; \
491 Name##Operator<CompareOperationHint::kNone> k##Name##NoneOperator; \
492 Name##Operator<CompareOperationHint::kSignedSmall> \
493 k##Name##SignedSmallOperator; \
494 Name##Operator<CompareOperationHint::kNumber> k##Name##NumberOperator; \
495 Name##Operator<CompareOperationHint::kNumberOrOddball> \
496 k##Name##NumberOrOddballOperator; \
497 Name##Operator<CompareOperationHint::kAny> k##Name##AnyOperator;
498 COMPARE_OP_LIST(COMPARE_OP)
499 #undef COMPARE_OP
441 }; 500 };
442 501
443
444 static base::LazyInstance<JSOperatorGlobalCache>::type kCache = 502 static base::LazyInstance<JSOperatorGlobalCache>::type kCache =
445 LAZY_INSTANCE_INITIALIZER; 503 LAZY_INSTANCE_INITIALIZER;
446 504
447
448 JSOperatorBuilder::JSOperatorBuilder(Zone* zone) 505 JSOperatorBuilder::JSOperatorBuilder(Zone* zone)
449 : cache_(kCache.Get()), zone_(zone) {} 506 : cache_(kCache.Get()), zone_(zone) {}
450 507
508 #define CACHED_OP(Name, properties, value_input_count, value_output_count) \
509 const Operator* JSOperatorBuilder::Name() { \
510 return &cache_.k##Name##Operator; \
511 }
512 CACHED_OP_LIST(CACHED_OP)
513 #undef CACHED_OP
451 514
452 #define CACHED(Name, properties, value_input_count, value_output_count) \ 515 #define BINARY_OP(Name) \
453 const Operator* JSOperatorBuilder::Name() { \ 516 const Operator* JSOperatorBuilder::Name(BinaryOperationHint hint) { \
454 return &cache_.k##Name##Operator; \ 517 switch (hint) { \
518 case BinaryOperationHint::kNone: \
519 return &cache_.k##Name##NoneOperator; \
520 case BinaryOperationHint::kSignedSmall: \
521 return &cache_.k##Name##SignedSmallOperator; \
522 case BinaryOperationHint::kSigned32: \
523 return &cache_.k##Name##Signed32Operator; \
524 case BinaryOperationHint::kNumberOrOddball: \
525 return &cache_.k##Name##NumberOrOddballOperator; \
526 case BinaryOperationHint::kAny: \
527 return &cache_.k##Name##AnyOperator; \
528 } \
529 UNREACHABLE(); \
530 return nullptr; \
455 } 531 }
456 CACHED_OP_LIST(CACHED) 532 BINARY_OP_LIST(BINARY_OP)
457 #undef CACHED 533 #undef BINARY_OP
458 534
459 const Operator* JSOperatorBuilder::BitwiseOr(BinaryOperationHints hints) { 535 #define COMPARE_OP(Name, ...) \
460 // TODO(turbofan): Cache most important versions of this operator. 536 const Operator* JSOperatorBuilder::Name(CompareOperationHint hint) { \
461 return new (zone()) Operator1<BinaryOperationHints>( //-- 537 switch (hint) { \
462 IrOpcode::kJSBitwiseOr, Operator::kNoProperties, // opcode 538 case CompareOperationHint::kNone: \
463 "JSBitwiseOr", // name 539 return &cache_.k##Name##NoneOperator; \
464 2, 1, 1, 1, 1, 2, // inputs/outputs 540 case CompareOperationHint::kSignedSmall: \
465 hints); // parameter 541 return &cache_.k##Name##SignedSmallOperator; \
466 } 542 case CompareOperationHint::kNumber: \
467 543 return &cache_.k##Name##NumberOperator; \
468 const Operator* JSOperatorBuilder::BitwiseXor(BinaryOperationHints hints) { 544 case CompareOperationHint::kNumberOrOddball: \
469 // TODO(turbofan): Cache most important versions of this operator. 545 return &cache_.k##Name##NumberOrOddballOperator; \
470 return new (zone()) Operator1<BinaryOperationHints>( //-- 546 case CompareOperationHint::kAny: \
471 IrOpcode::kJSBitwiseXor, Operator::kNoProperties, // opcode 547 return &cache_.k##Name##AnyOperator; \
472 "JSBitwiseXor", // name 548 } \
473 2, 1, 1, 1, 1, 2, // inputs/outputs 549 UNREACHABLE(); \
474 hints); // parameter 550 return nullptr; \
475 } 551 }
476 552 COMPARE_OP_LIST(COMPARE_OP)
477 const Operator* JSOperatorBuilder::BitwiseAnd(BinaryOperationHints hints) { 553 #undef COMPARE_OP
478 // TODO(turbofan): Cache most important versions of this operator.
479 return new (zone()) Operator1<BinaryOperationHints>( //--
480 IrOpcode::kJSBitwiseAnd, Operator::kNoProperties, // opcode
481 "JSBitwiseAnd", // name
482 2, 1, 1, 1, 1, 2, // inputs/outputs
483 hints); // parameter
484 }
485
486 const Operator* JSOperatorBuilder::ShiftLeft(BinaryOperationHints hints) {
487 // TODO(turbofan): Cache most important versions of this operator.
488 return new (zone()) Operator1<BinaryOperationHints>( //--
489 IrOpcode::kJSShiftLeft, Operator::kNoProperties, // opcode
490 "JSShiftLeft", // name
491 2, 1, 1, 1, 1, 2, // inputs/outputs
492 hints); // parameter
493 }
494
495 const Operator* JSOperatorBuilder::ShiftRight(BinaryOperationHints hints) {
496 // TODO(turbofan): Cache most important versions of this operator.
497 return new (zone()) Operator1<BinaryOperationHints>( //--
498 IrOpcode::kJSShiftRight, Operator::kNoProperties, // opcode
499 "JSShiftRight", // name
500 2, 1, 1, 1, 1, 2, // inputs/outputs
501 hints); // parameter
502 }
503
504 const Operator* JSOperatorBuilder::ShiftRightLogical(
505 BinaryOperationHints hints) {
506 // TODO(turbofan): Cache most important versions of this operator.
507 return new (zone()) Operator1<BinaryOperationHints>( //--
508 IrOpcode::kJSShiftRightLogical, Operator::kNoProperties, // opcode
509 "JSShiftRightLogical", // name
510 2, 1, 1, 1, 1, 2, // inputs/outputs
511 hints); // parameter
512 }
513
514 const Operator* JSOperatorBuilder::Add(BinaryOperationHints hints) {
515 // TODO(turbofan): Cache most important versions of this operator.
516 return new (zone()) Operator1<BinaryOperationHints>( //--
517 IrOpcode::kJSAdd, Operator::kNoProperties, // opcode
518 "JSAdd", // name
519 2, 1, 1, 1, 1, 2, // inputs/outputs
520 hints); // parameter
521 }
522
523 const Operator* JSOperatorBuilder::Subtract(BinaryOperationHints hints) {
524 // TODO(turbofan): Cache most important versions of this operator.
525 return new (zone()) Operator1<BinaryOperationHints>( //--
526 IrOpcode::kJSSubtract, Operator::kNoProperties, // opcode
527 "JSSubtract", // name
528 2, 1, 1, 1, 1, 2, // inputs/outputs
529 hints); // parameter
530 }
531
532 const Operator* JSOperatorBuilder::Multiply(BinaryOperationHints hints) {
533 // TODO(turbofan): Cache most important versions of this operator.
534 return new (zone()) Operator1<BinaryOperationHints>( //--
535 IrOpcode::kJSMultiply, Operator::kNoProperties, // opcode
536 "JSMultiply", // name
537 2, 1, 1, 1, 1, 2, // inputs/outputs
538 hints); // parameter
539 }
540
541 const Operator* JSOperatorBuilder::Divide(BinaryOperationHints hints) {
542 // TODO(turbofan): Cache most important versions of this operator.
543 return new (zone()) Operator1<BinaryOperationHints>( //--
544 IrOpcode::kJSDivide, Operator::kNoProperties, // opcode
545 "JSDivide", // name
546 2, 1, 1, 1, 1, 2, // inputs/outputs
547 hints); // parameter
548 }
549
550 const Operator* JSOperatorBuilder::Modulus(BinaryOperationHints hints) {
551 // TODO(turbofan): Cache most important versions of this operator.
552 return new (zone()) Operator1<BinaryOperationHints>( //--
553 IrOpcode::kJSModulus, Operator::kNoProperties, // opcode
554 "JSModulus", // name
555 2, 1, 1, 1, 1, 2, // inputs/outputs
556 hints); // parameter
557 }
558
559 const Operator* JSOperatorBuilder::Equal(CompareOperationHints hints) {
560 // TODO(turbofan): Cache most important versions of this operator.
561 return new (zone()) Operator1<CompareOperationHints>( //--
562 IrOpcode::kJSEqual, Operator::kNoProperties, // opcode
563 "JSEqual", // name
564 2, 1, 1, 1, 1, 2, // inputs/outputs
565 hints); // parameter
566 }
567
568 const Operator* JSOperatorBuilder::NotEqual(CompareOperationHints hints) {
569 // TODO(turbofan): Cache most important versions of this operator.
570 return new (zone()) Operator1<CompareOperationHints>( //--
571 IrOpcode::kJSNotEqual, Operator::kNoProperties, // opcode
572 "JSNotEqual", // name
573 2, 1, 1, 1, 1, 2, // inputs/outputs
574 hints); // parameter
575 }
576
577 const Operator* JSOperatorBuilder::StrictEqual(CompareOperationHints hints) {
578 // TODO(turbofan): Cache most important versions of this operator.
579 return new (zone()) Operator1<CompareOperationHints>( //--
580 IrOpcode::kJSStrictEqual, Operator::kPure, // opcode
581 "JSStrictEqual", // name
582 2, 1, 1, 1, 1, 0, // inputs/outputs
583 hints); // parameter
584 }
585
586 const Operator* JSOperatorBuilder::StrictNotEqual(CompareOperationHints hints) {
587 // TODO(turbofan): Cache most important versions of this operator.
588 return new (zone()) Operator1<CompareOperationHints>( //--
589 IrOpcode::kJSStrictNotEqual, Operator::kPure, // opcode
590 "JSStrictNotEqual", // name
591 2, 1, 1, 1, 1, 0, // inputs/outputs
592 hints); // parameter
593 }
594
595 const Operator* JSOperatorBuilder::LessThan(CompareOperationHints hints) {
596 // TODO(turbofan): Cache most important versions of this operator.
597 return new (zone()) Operator1<CompareOperationHints>( //--
598 IrOpcode::kJSLessThan, Operator::kNoProperties, // opcode
599 "JSLessThan", // name
600 2, 1, 1, 1, 1, 2, // inputs/outputs
601 hints); // parameter
602 }
603
604 const Operator* JSOperatorBuilder::GreaterThan(CompareOperationHints hints) {
605 // TODO(turbofan): Cache most important versions of this operator.
606 return new (zone()) Operator1<CompareOperationHints>( //--
607 IrOpcode::kJSGreaterThan, Operator::kNoProperties, // opcode
608 "JSGreaterThan", // name
609 2, 1, 1, 1, 1, 2, // inputs/outputs
610 hints); // parameter
611 }
612
613 const Operator* JSOperatorBuilder::LessThanOrEqual(
614 CompareOperationHints hints) {
615 // TODO(turbofan): Cache most important versions of this operator.
616 return new (zone()) Operator1<CompareOperationHints>( //--
617 IrOpcode::kJSLessThanOrEqual, Operator::kNoProperties, // opcode
618 "JSLessThanOrEqual", // name
619 2, 1, 1, 1, 1, 2, // inputs/outputs
620 hints); // parameter
621 }
622
623 const Operator* JSOperatorBuilder::GreaterThanOrEqual(
624 CompareOperationHints hints) {
625 // TODO(turbofan): Cache most important versions of this operator.
626 return new (zone()) Operator1<CompareOperationHints>( //--
627 IrOpcode::kJSGreaterThanOrEqual, Operator::kNoProperties, // opcode
628 "JSGreaterThanOrEqual", // name
629 2, 1, 1, 1, 1, 2, // inputs/outputs
630 hints); // parameter
631 }
632 554
633 const Operator* JSOperatorBuilder::ToBoolean(ToBooleanHints hints) { 555 const Operator* JSOperatorBuilder::ToBoolean(ToBooleanHints hints) {
634 // TODO(turbofan): Cache most important versions of this operator. 556 // TODO(turbofan): Cache most important versions of this operator.
635 return new (zone()) Operator1<ToBooleanHints>( //-- 557 return new (zone()) Operator1<ToBooleanHints>( //--
636 IrOpcode::kJSToBoolean, Operator::kPure, // opcode 558 IrOpcode::kJSToBoolean, Operator::kPure, // opcode
637 "JSToBoolean", // name 559 "JSToBoolean", // name
638 1, 0, 0, 1, 0, 0, // inputs/outputs 560 1, 0, 0, 1, 0, 0, // inputs/outputs
639 hints); // parameter 561 hints); // parameter
640 } 562 }
641 563
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
915 return new (zone()) Operator1<Handle<ScopeInfo>>( // -- 837 return new (zone()) Operator1<Handle<ScopeInfo>>( // --
916 IrOpcode::kJSCreateScriptContext, Operator::kNoProperties, // opcode 838 IrOpcode::kJSCreateScriptContext, Operator::kNoProperties, // opcode
917 "JSCreateScriptContext", // name 839 "JSCreateScriptContext", // name
918 1, 1, 1, 1, 1, 2, // counts 840 1, 1, 1, 1, 1, 2, // counts
919 scpope_info); // parameter 841 scpope_info); // parameter
920 } 842 }
921 843
922 } // namespace compiler 844 } // namespace compiler
923 } // namespace internal 845 } // namespace internal
924 } // namespace v8 846 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/js-operator.h ('k') | src/compiler/js-typed-lowering.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698