[llvm] [NFC][DXIL] move replace/erase in DXIL intrinsic expansion to caller (PR #104626)
Farzon Lotfi via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 16 11:32:24 PDT 2024
================
@@ -353,43 +326,55 @@ static bool expandClampIntrinsic(CallInst *Orig, Intrinsic::ID ClampIntrinsic) {
Builder.SetInsertPoint(Orig);
auto *MaxCall = Builder.CreateIntrinsic(
Ty, getMaxForClamp(Ty, ClampIntrinsic), {X, Min}, nullptr, "dx.max");
- auto *MinCall =
- Builder.CreateIntrinsic(Ty, getMinForClamp(Ty, ClampIntrinsic),
- {MaxCall, Max}, nullptr, "dx.min");
-
- Orig->replaceAllUsesWith(MinCall);
- Orig->eraseFromParent();
- return true;
+ return Builder.CreateIntrinsic(Ty, getMinForClamp(Ty, ClampIntrinsic),
+ {MaxCall, Max}, nullptr, "dx.min");
}
static bool expandIntrinsic(Function &F, CallInst *Orig) {
+ Value *Result = nullptr;
switch (F.getIntrinsicID()) {
case Intrinsic::abs:
- return expandAbs(Orig);
+ Result = expandAbs(Orig);
+ break;
case Intrinsic::exp:
- return expandExpIntrinsic(Orig);
+ Result = expandExpIntrinsic(Orig);
+ break;
case Intrinsic::log:
- return expandLogIntrinsic(Orig);
+ Result = expandLogIntrinsic(Orig);
+ break;
case Intrinsic::log10:
- return expandLog10Intrinsic(Orig);
+ Result = expandLog10Intrinsic(Orig);
+ break;
case Intrinsic::pow:
- return expandPowIntrinsic(Orig);
+ Result = expandPowIntrinsic(Orig);
+ break;
case Intrinsic::dx_any:
- return expandAnyIntrinsic(Orig);
+ Result = expandAnyIntrinsic(Orig);
+ break;
case Intrinsic::dx_uclamp:
case Intrinsic::dx_clamp:
- return expandClampIntrinsic(Orig, F.getIntrinsicID());
+ Result = expandClampIntrinsic(Orig, F.getIntrinsicID());
+ break;
case Intrinsic::dx_lerp:
- return expandLerpIntrinsic(Orig);
+ Result = expandLerpIntrinsic(Orig);
+ break;
case Intrinsic::dx_length:
- return expandLengthIntrinsic(Orig);
+ Result = expandLengthIntrinsic(Orig);
+ break;
case Intrinsic::dx_normalize:
- return expandNormalizeIntrinsic(Orig);
+ Result = expandNormalizeIntrinsic(Orig);
+ break;
case Intrinsic::dx_sdot:
case Intrinsic::dx_udot:
- return expandIntegerDot(Orig, F.getIntrinsicID());
+ Result = expandIntegerDot(Orig, F.getIntrinsicID());
+ break;
}
- return false;
+
+ if (Result) {
+ Orig->replaceAllUsesWith(Result);
+ Orig->eraseFromParent();
----------------
farzonl wrote:
`return true;`
https://github.com/llvm/llvm-project/pull/104626
More information about the llvm-commits
mailing list