[llvm] [GISel] Add generic implementation for @llvm.expect.with.probability when optimizations are disabled (PR #117835)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 26 18:52:46 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-globalisel
Author: None (antangelo)
<details>
<summary>Changes</summary>
Handle @<!-- -->llvm.expect.with.probability in GlobalISel in the same way @<!-- -->llvm.expect is handled, passing the value through as-is. This can be encountered if the intrinsic is used without optimizations, which would otherwise transform it out.
Fixes #<!-- -->115411 for GlobalISel
---
Full diff: https://github.com/llvm/llvm-project/pull/117835.diff
2 Files Affected:
- (modified) llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp (+1)
- (modified) llvm/test/CodeGen/Generic/builtin-expect-with-probability.ll (+1)
``````````diff
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
index 675f55d8086bc3..f668e41094bbc8 100644
--- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
@@ -2431,6 +2431,7 @@ bool IRTranslator::translateKnownIntrinsic(const CallInst &CI, Intrinsic::ID ID,
case Intrinsic::invariant_end:
return true;
case Intrinsic::expect:
+ case Intrinsic::expect_with_probability:
case Intrinsic::annotation:
case Intrinsic::ptr_annotation:
case Intrinsic::launder_invariant_group:
diff --git a/llvm/test/CodeGen/Generic/builtin-expect-with-probability.ll b/llvm/test/CodeGen/Generic/builtin-expect-with-probability.ll
index aef134b636d5a7..76e9e5e81aae0f 100644
--- a/llvm/test/CodeGen/Generic/builtin-expect-with-probability.ll
+++ b/llvm/test/CodeGen/Generic/builtin-expect-with-probability.ll
@@ -1,4 +1,5 @@
; RUN: llc < %s
+; RUN: llc -global-isel < %s
declare i32 @llvm.expect.with.probability(i32, i32, double)
``````````
</details>
https://github.com/llvm/llvm-project/pull/117835
More information about the llvm-commits
mailing list