Changeset 103384 in webkit for trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp
- Timestamp:
- Dec 20, 2011, 6:29:15 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp
r102917 r103384 1836 1836 1837 1837 #if ENABLE(VALUE_PROFILER) 1838 for (unsigned profileIndex = 0; profileIndex < numberOfArgumentValueProfiles(); ++profileIndex) 1839 valueProfileForArgument(profileIndex)->computeUpdatedPrediction(); 1838 1840 for (unsigned profileIndex = 0; profileIndex < numberOfValueProfiles(); ++profileIndex) 1839 1841 valueProfile(profileIndex)->computeUpdatedPrediction(); … … 2207 2209 return true; 2208 2210 2209 unsigned numberOfNonArgumentValueProfiles = 0;2210 2211 unsigned numberOfLiveNonArgumentValueProfiles = 0; 2211 2212 unsigned numberOfSamplesInProfiles = 0; // If this divided by ValueProfile::numberOfBuckets equals numberOfValueProfiles() then value profiles are full. 2212 for (unsigned i = 0; i < numberOfValueProfiles(); ++i) {2213 ValueProfile* profile = valueProfile(i);2213 for (unsigned i = 0; i < totalNumberOfValueProfiles(); ++i) { 2214 ValueProfile* profile = getFromAllValueProfiles(i); 2214 2215 unsigned numSamples = profile->totalNumberOfSamples(); 2215 2216 if (numSamples > ValueProfile::numberOfBuckets) … … 2220 2221 continue; 2221 2222 } 2222 numberOfNonArgumentValueProfiles++;2223 2223 if (profile->numberOfSamples() || profile->m_prediction != PredictNone) 2224 2224 numberOfLiveNonArgumentValueProfiles++; … … 2227 2227 2228 2228 #if ENABLE(JIT_VERBOSE_OSR) 2229 printf("Profile hotness: %lf, %lf\n", (double)numberOfLiveNonArgumentValueProfiles / numberOf NonArgumentValueProfiles, (double)numberOfSamplesInProfiles / ValueProfile::numberOfBuckets / numberOfValueProfiles());2230 #endif 2231 2232 if ((!numberOf NonArgumentValueProfiles || (double)numberOfLiveNonArgumentValueProfiles / numberOfNonArgumentValueProfiles>= Options::desiredProfileLivenessRate)2233 && (! numberOfValueProfiles() || (double)numberOfSamplesInProfiles / ValueProfile::numberOfBuckets / numberOfValueProfiles() >= Options::desiredProfileFullnessRate)2229 printf("Profile hotness: %lf, %lf\n", (double)numberOfLiveNonArgumentValueProfiles / numberOfValueProfiles(), (double)numberOfSamplesInProfiles / ValueProfile::numberOfBuckets / numberOfValueProfiles()); 2230 #endif 2231 2232 if ((!numberOfValueProfiles() || (double)numberOfLiveNonArgumentValueProfiles / numberOfValueProfiles() >= Options::desiredProfileLivenessRate) 2233 && (!totalNumberOfValueProfiles() || (double)numberOfSamplesInProfiles / ValueProfile::numberOfBuckets / totalNumberOfValueProfiles() >= Options::desiredProfileFullnessRate) 2234 2234 && static_cast<unsigned>(m_optimizationDelayCounter) + 1 >= Options::minimumOptimizationDelay) 2235 2235 return true; … … 2268 2268 { 2269 2269 fprintf(stderr, "ValueProfile for %p:\n", this); 2270 for (unsigned i = 0; i < numberOfValueProfiles(); ++i) {2271 ValueProfile* profile = valueProfile(i);2270 for (unsigned i = 0; i < totalNumberOfValueProfiles(); ++i) { 2271 ValueProfile* profile = getFromAllValueProfiles(i); 2272 2272 if (profile->m_bytecodeOffset < 0) { 2273 2273 ASSERT(profile->m_bytecodeOffset == -1);
Note:
See TracChangeset
for help on using the changeset viewer.