I have an understanding of how the likely()/unlikely() macros work and I also have an understanding of branch prediction. Unfortunately, I did not learn branch prediction in the context of high level programming.
What I want to know is if the evaluation within the likely/unlikely macro results in a segmentation fault, how does that impact the branch prediction history or even the current outcome/pipeline.
I fail to understand that if the validation of the prediction didn't complete, how do we know if it was a success or a failure ?