[llvm-branch-commits] [clang] [llvm] Reimplement constrained 'trunc' using operand bundles (PR #118253)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sun Dec 1 21:47:43 PST 2024
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 868660b970ac1a6af74e418e75097e05759350e2 3da7fd198007d6c3698c025bfb96ea5fb0ccca34 --extensions cpp,c,h -- clang/lib/CodeGen/CGBuiltin.cpp clang/test/CodeGen/AArch64/neon-intrinsics-constrained.c clang/test/CodeGen/AArch64/v8.2a-fp16-intrinsics-constrained.c clang/test/CodeGen/PowerPC/builtins-ppc-fpconstrained.c clang/test/CodeGen/SystemZ/builtins-systemz-vector-constrained.c clang/test/CodeGen/SystemZ/builtins-systemz-vector2-constrained.c clang/test/CodeGen/SystemZ/builtins-systemz-zvector-constrained.c clang/test/CodeGen/SystemZ/builtins-systemz-zvector2-constrained.c clang/test/CodeGen/arm64-vrnd-constrained.c clang/test/CodeGen/constrained-math-builtins.c llvm/include/llvm/CodeGen/SelectionDAGNodes.h llvm/include/llvm/CodeGen/TargetLowering.h llvm/include/llvm/IR/Function.h llvm/include/llvm/IR/InstrTypes.h llvm/include/llvm/IR/IntrinsicInst.h llvm/include/llvm/IR/Intrinsics.h llvm/lib/Analysis/ConstantFolding.cpp llvm/lib/AsmParser/LLParser.cpp llvm/lib/CodeGen/ExpandVectorPredication.cpp llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h llvm/lib/CodeGen/TargetLoweringBase.cpp llvm/lib/IR/AutoUpgrade.cpp llvm/lib/IR/Function.cpp llvm/lib/IR/Instructions.cpp llvm/lib/IR/IntrinsicInst.cpp llvm/lib/IR/Intrinsics.cpp llvm/lib/Transforms/Utils/Local.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
index 52b2d3320c..13c9533a8b 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -20537,7 +20537,9 @@ Value *CodeGenFunction::EmitSystemZBuiltinExpr(unsigned BuiltinID,
CI = Intrinsic::experimental_constrained_nearbyint; break;
case 1: ID = Intrinsic::round;
CI = Intrinsic::experimental_constrained_round; break;
- case 5: ID = Intrinsic::trunc; break;
+ case 5:
+ ID = Intrinsic::trunc;
+ break;
case 6: ID = Intrinsic::ceil;
CI = Intrinsic::experimental_constrained_ceil; break;
case 7: ID = Intrinsic::floor;
diff --git a/llvm/lib/IR/AutoUpgrade.cpp b/llvm/lib/IR/AutoUpgrade.cpp
index 6185e4c5a8..912cf4ce45 100644
--- a/llvm/lib/IR/AutoUpgrade.cpp
+++ b/llvm/lib/IR/AutoUpgrade.cpp
@@ -1215,7 +1215,7 @@ static bool upgradeIntrinsicFunction1(Function *F, Function *&NewFn,
assert(Success && "cannot get intrinsic signature");
NewFn = Intrinsic::getOrInsertDeclaration(F->getParent(), NewID,
- OverloadTys);
+ OverloadTys);
}
return true;
}
@@ -4956,44 +4956,43 @@ void llvm::UpgradeIntrinsicCall(CallBase *CI, Function *NewFn) {
MTI->setSourceAlignment(Align->getMaybeAlignValue());
break;
}
-#define LEGACY_FUNCTION(NAME, A, R, I, D) \
- case Intrinsic::NAME:
+#define LEGACY_FUNCTION(NAME, A, R, I, D) case Intrinsic::NAME:
#include "llvm/IR/ConstrainedOps.def"
- {
- SmallVector<OperandBundleDef, 2> Bundles;
- unsigned NumMetadataArgs = 0;
+ {
+ SmallVector<OperandBundleDef, 2> Bundles;
+ unsigned NumMetadataArgs = 0;
+
+ if (auto RM = getRoundingModeArg(*CI)) {
+ auto CurrentRM = CI->getRoundingMode();
+ assert(!CurrentRM && "unexpected rounding bundle");
+ Builder.createFPRoundingBundle(Bundles, RM);
+ ++NumMetadataArgs;
+ }
- if (auto RM = getRoundingModeArg(*CI)) {
- auto CurrentRM = CI->getRoundingMode();
- assert(!CurrentRM && "unexpected rounding bundle");
- Builder.createFPRoundingBundle(Bundles, RM);
- ++NumMetadataArgs;
- }
+ if (auto EB = getExceptionBehaviorArg(*CI)) {
+ auto CurrentEB = CI->getExceptionBehavior();
+ assert(!CurrentEB && "unexpected exception bundle");
+ Builder.createFPExceptionBundle(Bundles, EB);
+ ++NumMetadataArgs;
+ }
- if (auto EB = getExceptionBehaviorArg(*CI)) {
- auto CurrentEB = CI->getExceptionBehavior();
- assert(!CurrentEB && "unexpected exception bundle");
- Builder.createFPExceptionBundle(Bundles, EB);
- ++NumMetadataArgs;
- }
+ SmallVector<Value *, 4> Args(CI->args());
+ Args.pop_back_n(NumMetadataArgs);
+ NewCall = Builder.CreateCall(NewFn, Args, Bundles, CI->getName());
+ NewCall->copyMetadata(*CI);
+ AttributeList Attrs = CI->getAttributes();
+ NewCall->setAttributes(Attrs);
+ if (isa<FPMathOperator>(CI)) {
+ FastMathFlags FMF = CI->getFastMathFlags();
+ NewCall->setFastMathFlags(FMF);
+ }
- SmallVector<Value *, 4> Args(CI->args());
- Args.pop_back_n(NumMetadataArgs);
- NewCall = Builder.CreateCall(NewFn, Args, Bundles, CI->getName());
- NewCall->copyMetadata(*CI);
- AttributeList Attrs = CI->getAttributes();
- NewCall->setAttributes(Attrs);
- if (isa<FPMathOperator>(CI)) {
- FastMathFlags FMF = CI->getFastMathFlags();
- NewCall->setFastMathFlags(FMF);
+ MemoryEffects ME = MemoryEffects::inaccessibleMemOnly();
+ auto A = Attribute::getWithMemoryEffects(CI->getContext(), ME);
+ NewCall->addFnAttr(A);
+ NewCall->addFnAttr(Attribute::StrictFP);
+ break;
}
-
- MemoryEffects ME = MemoryEffects::inaccessibleMemOnly();
- auto A = Attribute::getWithMemoryEffects(CI->getContext(), ME);
- NewCall->addFnAttr(A);
- NewCall->addFnAttr(Attribute::StrictFP);
- break;
- }
}
assert(NewCall && "Should have either set this variable or returned through "
"the default case");
``````````
</details>
https://github.com/llvm/llvm-project/pull/118253
More information about the llvm-branch-commits
mailing list