OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
432 loop_side_effects_[parent_block->block_id()].Add(side_effects); | 432 loop_side_effects_[parent_block->block_id()].Add(side_effects); |
433 with_parent = parent_block; | 433 with_parent = parent_block; |
434 } while (with_parent->HasParentLoopHeader()); | 434 } while (with_parent->HasParentLoopHeader()); |
435 } | 435 } |
436 } | 436 } |
437 } | 437 } |
438 } | 438 } |
439 | 439 |
440 | 440 |
441 SmartArrayPointer<char> GetGVNFlagsString(GVNFlagSet flags) { | 441 SmartArrayPointer<char> GetGVNFlagsString(GVNFlagSet flags) { |
442 char underlying_buffer[kLastFlag * 128]; | 442 char underlying_buffer[kNumberOfFlags * 128]; |
443 Vector<char> buffer(underlying_buffer, sizeof(underlying_buffer)); | 443 Vector<char> buffer(underlying_buffer, sizeof(underlying_buffer)); |
444 #if DEBUG | 444 #if DEBUG |
445 int offset = 0; | 445 int offset = 0; |
446 const char* separator = ""; | 446 const char* separator = ""; |
447 const char* comma = ", "; | 447 const char* comma = ", "; |
448 buffer[0] = 0; | 448 buffer[0] = 0; |
449 uint32_t set_depends_on = 0; | 449 uint32_t set_depends_on = 0; |
450 uint32_t set_changes = 0; | 450 uint32_t set_changes = 0; |
451 for (int bit = 0; bit < kLastFlag; ++bit) { | 451 for (int bit = 0; bit < kNumberOfFlags; ++bit) { |
452 if (flags.Contains(static_cast<GVNFlag>(bit))) { | 452 if (flags.Contains(static_cast<GVNFlag>(bit))) { |
453 if (bit % 2 == 0) { | 453 if (bit % 2 == 0) { |
454 set_changes++; | 454 set_changes++; |
455 } else { | 455 } else { |
456 set_depends_on++; | 456 set_depends_on++; |
457 } | 457 } |
458 } | 458 } |
459 } | 459 } |
460 bool positive_changes = set_changes < (kLastFlag / 2); | 460 bool positive_changes = set_changes < (kNumberOfFlags / 2); |
461 bool positive_depends_on = set_depends_on < (kLastFlag / 2); | 461 bool positive_depends_on = set_depends_on < (kNumberOfFlags / 2); |
462 if (set_changes > 0) { | 462 if (set_changes > 0) { |
463 if (positive_changes) { | 463 if (positive_changes) { |
464 offset += OS::SNPrintF(buffer + offset, "changes ["); | 464 offset += OS::SNPrintF(buffer + offset, "changes ["); |
465 } else { | 465 } else { |
466 offset += OS::SNPrintF(buffer + offset, "changes all except ["); | 466 offset += OS::SNPrintF(buffer + offset, "changes all except ["); |
467 } | 467 } |
468 for (int bit = 0; bit < kLastFlag; ++bit) { | 468 for (int bit = 0; bit < kNumberOfFlags; ++bit) { |
469 if (flags.Contains(static_cast<GVNFlag>(bit)) == positive_changes) { | 469 if (flags.Contains(static_cast<GVNFlag>(bit)) == positive_changes) { |
470 switch (static_cast<GVNFlag>(bit)) { | 470 switch (static_cast<GVNFlag>(bit)) { |
471 #define DECLARE_FLAG(type) \ | 471 #define DECLARE_FLAG(type) \ |
472 case kChanges##type: \ | 472 case kChanges##type: \ |
473 offset += OS::SNPrintF(buffer + offset, separator); \ | 473 offset += OS::SNPrintF(buffer + offset, separator); \ |
474 offset += OS::SNPrintF(buffer + offset, #type); \ | 474 offset += OS::SNPrintF(buffer + offset, #type); \ |
475 separator = comma; \ | 475 separator = comma; \ |
476 break; | 476 break; |
477 GVN_TRACKED_FLAG_LIST(DECLARE_FLAG) | 477 GVN_TRACKED_FLAG_LIST(DECLARE_FLAG) |
478 GVN_UNTRACKED_FLAG_LIST(DECLARE_FLAG) | 478 GVN_UNTRACKED_FLAG_LIST(DECLARE_FLAG) |
479 #undef DECLARE_FLAG | 479 #undef DECLARE_FLAG |
480 default: | 480 default: |
481 break; | 481 break; |
482 } | 482 } |
483 } | 483 } |
484 } | 484 } |
485 offset += OS::SNPrintF(buffer + offset, "]"); | 485 offset += OS::SNPrintF(buffer + offset, "]"); |
486 } | 486 } |
487 if (set_depends_on > 0) { | 487 if (set_depends_on > 0) { |
488 separator = ""; | 488 separator = ""; |
489 if (set_changes > 0) { | 489 if (set_changes > 0) { |
490 offset += OS::SNPrintF(buffer + offset, ", "); | 490 offset += OS::SNPrintF(buffer + offset, ", "); |
491 } | 491 } |
492 if (positive_depends_on) { | 492 if (positive_depends_on) { |
493 offset += OS::SNPrintF(buffer + offset, "depends on ["); | 493 offset += OS::SNPrintF(buffer + offset, "depends on ["); |
494 } else { | 494 } else { |
495 offset += OS::SNPrintF(buffer + offset, "depends on all except ["); | 495 offset += OS::SNPrintF(buffer + offset, "depends on all except ["); |
496 } | 496 } |
497 for (int bit = 0; bit < kLastFlag; ++bit) { | 497 for (int bit = 0; bit < kNumberOfFlags; ++bit) { |
498 if (flags.Contains(static_cast<GVNFlag>(bit)) == positive_depends_on) { | 498 if (flags.Contains(static_cast<GVNFlag>(bit)) == positive_depends_on) { |
499 switch (static_cast<GVNFlag>(bit)) { | 499 switch (static_cast<GVNFlag>(bit)) { |
500 #define DECLARE_FLAG(type) \ | 500 #define DECLARE_FLAG(type) \ |
501 case kDependsOn##type: \ | 501 case kDependsOn##type: \ |
502 offset += OS::SNPrintF(buffer + offset, separator); \ | 502 offset += OS::SNPrintF(buffer + offset, separator); \ |
503 offset += OS::SNPrintF(buffer + offset, #type); \ | 503 offset += OS::SNPrintF(buffer + offset, #type); \ |
504 separator = comma; \ | 504 separator = comma; \ |
505 break; | 505 break; |
506 GVN_TRACKED_FLAG_LIST(DECLARE_FLAG) | 506 GVN_TRACKED_FLAG_LIST(DECLARE_FLAG) |
507 GVN_UNTRACKED_FLAG_LIST(DECLARE_FLAG) | 507 GVN_UNTRACKED_FLAG_LIST(DECLARE_FLAG) |
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
863 dominated); | 863 dominated); |
864 successor_map->Kill(side_effects_on_all_paths); | 864 successor_map->Kill(side_effects_on_all_paths); |
865 successor_dominators->Kill(side_effects_on_all_paths); | 865 successor_dominators->Kill(side_effects_on_all_paths); |
866 } | 866 } |
867 } | 867 } |
868 current = next; | 868 current = next; |
869 } | 869 } |
870 } | 870 } |
871 | 871 |
872 } } // namespace v8::internal | 872 } } // namespace v8::internal |
OLD | NEW |