Optimization on predecessor count checks for FunctionPropertiesAnalysis (#198940)
It used to need to get the whole bb predecessor count and then check
with the size of it. That needed to go through the whole list only to
check against 1, 2 or 3. By using its already existing basic block
predecessor count function, these attributes can be counted much faster.
Now it doesn't need to go through the whole list. The moment it gets to
the 3rd element, no matter how many predecessors there might be, we have
our answer for the metrics