[CSSPGO] Fix return value of getProbeWeight
authorwlei <wlei@fb.com>
Thu, 6 May 2021 00:17:05 +0000 (17:17 -0700)
committerwlei <wlei@fb.com>
Fri, 14 May 2021 21:06:09 +0000 (14:06 -0700)
commite475d4d69f04597c3f6c34c8ff1899bf44502a94
treea02f4c68d342af743f2c4a331ee0405d962ac3ec
parentc4fb2a1fc2d8009cd67e69c8db0db7120389a757
[CSSPGO] Fix return value of getProbeWeight

Currently we didn't support multiple return type, we work around to use error_code to represent:

1)  The dangling probe.
2)  Ignore the weight of non-probe instruction

While merging the instructions' weight for the whole BB, it will filter out the error code. But If all instructions of the BB give error_code, the outside logic will mark it as a BB requiring the inference algorithm to infer its weight. This is different from the zero value which will be treated as a cold block.

Fix one place that if we can't find the FunctionSamples in the profile data which indicates the BB is cold, we choose to return zero.

Also refine the comments.

Reviewed By: hoy, wenlei

Differential Revision: https://reviews.llvm.org/D102007
llvm/lib/Transforms/IPO/SampleProfile.cpp