Skip to content

Commit

Permalink
Auto merge of #124606 - scottmcm:less-expect, r=cjgillot
Browse files Browse the repository at this point in the history
Stop `llvm.expect`ing assert terminators

We're putting `llvm.expect` calls before the <https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/enum.TerminatorKind.html#variant.Assert> terminators.

But we don't need them.  One of the arms is always to a panic function that's marked `#[cold]`, which is `cold` <https://llvm.org/docs/LangRef.html#function-attributes> in LLVM, which

> When computing edge weights, basic blocks post-dominated by a cold function call are also considered to be cold; and, thus, given low weight.

So even without us emitting the extra intrinsic call, LLVM knows what to expect for the `br`.  Thus we can save the (small) effort of emitting it and then LLVM optimizing it out.

r? compiler
  • Loading branch information
bors committed May 5, 2024
2 parents af08873 + 50d9b30 commit fbb7cb2
Showing 0 changed files with 0 additions and 0 deletions.

0 comments on commit fbb7cb2

Please sign in to comment.