Index: llvm/trunk/lib/Analysis/ProfileSummaryInfo.cpp =================================================================== --- llvm/trunk/lib/Analysis/ProfileSummaryInfo.cpp +++ llvm/trunk/lib/Analysis/ProfileSummaryInfo.cpp @@ -226,13 +226,13 @@ uint64_t ProfileSummaryInfo::getOrCompHotCountThreshold() { if (!HotCountThreshold) computeThresholds(); - return HotCountThreshold && HotCountThreshold.getValue(); + return HotCountThreshold ? HotCountThreshold.getValue() : UINT64_MAX; } uint64_t ProfileSummaryInfo::getOrCompColdCountThreshold() { if (!ColdCountThreshold) computeThresholds(); - return ColdCountThreshold && ColdCountThreshold.getValue(); + return ColdCountThreshold ? ColdCountThreshold.getValue() : 0; } bool ProfileSummaryInfo::isHotBB(const BasicBlock *B, BlockFrequencyInfo *BFI) { Index: llvm/trunk/test/Transforms/SampleProfile/Inputs/function_metadata.prof =================================================================== --- llvm/trunk/test/Transforms/SampleProfile/Inputs/function_metadata.prof +++ llvm/trunk/test/Transforms/SampleProfile/Inputs/function_metadata.prof @@ -1,4 +1,6 @@ test:10000:0 + 2: 100 + 3: 100 3: foo:1000 3: bar:200 4: baz:10 Index: llvm/trunk/test/Transforms/SampleProfile/function_metadata.ll =================================================================== --- llvm/trunk/test/Transforms/SampleProfile/function_metadata.ll +++ llvm/trunk/test/Transforms/SampleProfile/function_metadata.ll @@ -27,8 +27,10 @@ } ; GUIDs of foo, bar, foo1, foo2 and foo3 should be included in the metadata to -; make sure hot inline stacks are imported. -; CHECK: ![[ENTRY_TEST]] = !{!"function_entry_count", i64 1, i64 2494702099028631698, i64 6699318081062747564, i64 7546896869197086323, i64 7682762345278052905, i64 -7908226060800700466, i64 -2012135647395072713} +; make sure hot inline stacks are imported. The total count of baz is lower +; than the hot cutoff threshold and its GUID should not be included in the +; metadata. +; CHECK: ![[ENTRY_TEST]] = !{!"function_entry_count", i64 1, i64 2494702099028631698, i64 6699318081062747564, i64 7682762345278052905, i64 -7908226060800700466, i64 -2012135647395072713} ; Check GUIDs for both foo and foo_available are included in the metadata to ; make sure the liveness analysis can capture the dependency from test_liveness