[llvm] [SimplifyLibCalls] Combine sin/cos libcall pairs into llvm.sincos (PR #184760)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 5 01:35:22 PST 2026
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions h,cpp -- llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h b/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
index 14da88a66..e174a1c48 100644
--- a/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
+++ b/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
@@ -249,8 +249,7 @@ private:
void classifyArgUse(Value *Val, Function *F, bool IsFloat,
SmallVectorImpl<CallInst *> &SinCalls,
SmallVectorImpl<CallInst *> &CosCalls,
- SmallVectorImpl<CallInst *> &SinCosCalls,
- bool IsPi);
+ SmallVectorImpl<CallInst *> &SinCosCalls, bool IsPi);
Value *optimizePrintFString(CallInst *CI, IRBuilderBase &B);
Value *optimizeSPrintFString(CallInst *CI, IRBuilderBase &B);
Value *optimizeSnPrintFString(CallInst *CI, IRBuilderBase &B);
diff --git a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
index 4ce540c43..155a037c9 100644
--- a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
+++ b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
@@ -3053,7 +3053,7 @@ Value *LibCallSimplifier::optimizeSymmetric(CallInst *CI, LibFunc Func,
}
Value *LibCallSimplifier::optimizeSinCosPi(CallInst *CI, bool IsSin,
- IRBuilderBase &B) {
+ IRBuilderBase &B) {
return optimizeSinCos(CI, IsSin, B, /*IsPi=*/true);
}
@@ -3123,11 +3123,11 @@ Value *LibCallSimplifier::optimizeSinCos(CallInst *CI, bool IsSin,
return IsSin ? Sin : Cos;
}
-void LibCallSimplifier::classifyArgUse(
- Value *Val, Function *F, bool IsFloat,
- SmallVectorImpl<CallInst *> &SinCalls,
- SmallVectorImpl<CallInst *> &CosCalls,
- SmallVectorImpl<CallInst *> &SinCosCalls, bool IsPi) {
+void LibCallSimplifier::classifyArgUse(Value *Val, Function *F, bool IsFloat,
+ SmallVectorImpl<CallInst *> &SinCalls,
+ SmallVectorImpl<CallInst *> &CosCalls,
+ SmallVectorImpl<CallInst *> &SinCosCalls,
+ bool IsPi) {
auto *CI = dyn_cast<CallInst>(Val);
if (!CI || CI->use_empty())
return;
@@ -3161,8 +3161,7 @@ void LibCallSimplifier::classifyArgUse(
SinCosCalls.push_back(CI);
}
} else {
- if (Func == LibFunc_sin || Func == LibFunc_sinf ||
- Func == LibFunc_sinl)
+ if (Func == LibFunc_sin || Func == LibFunc_sinf || Func == LibFunc_sinl)
SinCalls.push_back(CI);
else if (Func == LibFunc_cos || Func == LibFunc_cosf ||
Func == LibFunc_cosl)
@@ -4067,10 +4066,10 @@ Value *LibCallSimplifier::optimizeFloatingPointLibCall(CallInst *CI,
return optimizeSinCosPi(CI, /*IsSin*/false, Builder);
case LibFunc_sinf:
case LibFunc_sinl:
- return optimizeSinCos(CI, /*IsSin*/true, Builder);
+ return optimizeSinCos(CI, /*IsSin*/ true, Builder);
case LibFunc_cosf:
case LibFunc_cosl:
- return optimizeSinCos(CI, /*IsSin*/false, Builder);
+ return optimizeSinCos(CI, /*IsSin*/ false, Builder);
case LibFunc_powf:
case LibFunc_pow:
case LibFunc_powl:
@@ -4149,7 +4148,8 @@ Value *LibCallSimplifier::optimizeFloatingPointLibCall(CallInst *CI,
case LibFunc_cos:
if (Value *V = optimizeSinCos(CI, Func == LibFunc_sin, Builder))
return V;
- if (UnsafeFPShrink && hasFloatVersion(M, CI->getCalledFunction()->getName()))
+ if (UnsafeFPShrink &&
+ hasFloatVersion(M, CI->getCalledFunction()->getName()))
return optimizeUnaryDoubleFP(CI, Builder, TLI, true);
return nullptr;
case LibFunc_tanh:
``````````
</details>
https://github.com/llvm/llvm-project/pull/184760
More information about the llvm-commits
mailing list