Changeset 103384 in webkit for trunk/Source/JavaScriptCore/bytecode/CodeBlock.h
- Timestamp:
- Dec 20, 2011, 6:29:15 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecode/CodeBlock.h
r103294 r103384 658 658 659 659 #if ENABLE(VALUE_PROFILER) 660 void setArgumentValueProfileSize(unsigned size) 661 { 662 m_argumentValueProfiles.resize(size); 663 } 664 unsigned numberOfArgumentValueProfiles() 665 { 666 return m_argumentValueProfiles.size(); 667 } 668 ValueProfile* valueProfileForArgument(unsigned argumentIndex) 669 { 670 ValueProfile* result = &m_argumentValueProfiles[argumentIndex]; 671 ASSERT(result->m_bytecodeOffset == -1); 672 return result; 673 } 674 660 675 ValueProfile* addValueProfile(int bytecodeOffset) 661 676 { 677 ASSERT(bytecodeOffset != -1); 662 678 m_valueProfiles.append(ValueProfile(bytecodeOffset)); 663 679 return &m_valueProfiles.last(); 664 680 } 665 681 unsigned numberOfValueProfiles() { return m_valueProfiles.size(); } 666 ValueProfile* valueProfile(int index) { return &m_valueProfiles[index]; } 682 ValueProfile* valueProfile(int index) 683 { 684 ValueProfile* result = &m_valueProfiles[index]; 685 ASSERT(result->m_bytecodeOffset != -1); 686 return result; 687 } 667 688 ValueProfile* valueProfileForBytecodeOffset(int bytecodeOffset) 668 689 { 669 return WTF::genericBinarySearch<ValueProfile, int, getValueProfileBytecodeOffset>(m_valueProfiles, m_valueProfiles.size(), bytecodeOffset); 670 } 671 ValueProfile* valueProfileForArgument(int argument) 672 { 673 size_t index = argument; 674 if (index >= m_valueProfiles.size()) 675 return 0; 676 ValueProfile* result = valueProfile(index); 677 if (result->m_bytecodeOffset != -1) 678 return 0; 690 ValueProfile* result = WTF::genericBinarySearch<ValueProfile, int, getValueProfileBytecodeOffset>(m_valueProfiles, m_valueProfiles.size(), bytecodeOffset); 691 ASSERT(result->m_bytecodeOffset != -1); 679 692 return result; 693 } 694 695 unsigned totalNumberOfValueProfiles() 696 { 697 return numberOfArgumentValueProfiles() + numberOfValueProfiles(); 698 } 699 ValueProfile* getFromAllValueProfiles(unsigned index) 700 { 701 if (index < numberOfArgumentValueProfiles()) 702 return valueProfileForArgument(index); 703 return valueProfile(index - numberOfArgumentValueProfiles()); 680 704 } 681 705 … … 1252 1276 #endif 1253 1277 #if ENABLE(VALUE_PROFILER) 1278 Vector<ValueProfile> m_argumentValueProfiles; 1254 1279 SegmentedVector<ValueProfile, 8> m_valueProfiles; 1255 1280 SegmentedVector<RareCaseProfile, 8> m_rareCaseProfiles;
Note:
See TracChangeset
for help on using the changeset viewer.