[clang] 98182f4 - Move CodeGenFunction::EmitScalarOrConstFoldImmArg; NFC (#170286)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Dec 2 23:58:36 PST 2025
Author: Sven van Haastregt
Date: 2025-12-03T08:58:31+01:00
New Revision: 98182f4d209ded292cb6030f45bcae132096acae
URL: https://github.com/llvm/llvm-project/commit/98182f4d209ded292cb6030f45bcae132096acae
DIFF: https://github.com/llvm/llvm-project/commit/98182f4d209ded292cb6030f45bcae132096acae.diff
LOG: Move CodeGenFunction::EmitScalarOrConstFoldImmArg; NFC (#170286)
This function is called from various .cpp files under `TargetBuiltins/`,
and was moved unintentionally into `AMDGPU.cpp` in PR #132252. Move it
to a common place.
Added:
Modified:
clang/lib/CodeGen/CodeGenFunction.cpp
clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
Removed:
################################################################################
diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp
index 64e594d09067b..ac25bd95f0463 100644
--- a/clang/lib/CodeGen/CodeGenFunction.cpp
+++ b/clang/lib/CodeGen/CodeGenFunction.cpp
@@ -2158,6 +2158,23 @@ void CodeGenFunction::EmitBranchOnBoolExpr(
}
}
+llvm::Value *CodeGenFunction::EmitScalarOrConstFoldImmArg(unsigned ICEArguments,
+ unsigned Idx,
+ const CallExpr *E) {
+ llvm::Value *Arg = nullptr;
+ if ((ICEArguments & (1 << Idx)) == 0) {
+ Arg = EmitScalarExpr(E->getArg(Idx));
+ } else {
+ // If this is required to be a constant, constant fold it so that we
+ // know that the generated intrinsic gets a ConstantInt.
+ std::optional<llvm::APSInt> Result =
+ E->getArg(Idx)->getIntegerConstantExpr(getContext());
+ assert(Result && "Expected argument to be a constant");
+ Arg = llvm::ConstantInt::get(getLLVMContext(), *Result);
+ }
+ return Arg;
+}
+
/// ErrorUnsupported - Print out an error that codegen doesn't support the
/// specified stmt yet.
void CodeGenFunction::ErrorUnsupported(const Stmt *S, const char *Type) {
diff --git a/clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp b/clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
index 81b3fe9e79483..eabdc370da6b4 100644
--- a/clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
+++ b/clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp
@@ -343,23 +343,6 @@ void CodeGenFunction::ProcessOrderScopeAMDGCN(Value *Order, Value *Scope,
SSID = getLLVMContext().getOrInsertSyncScopeID(SSN);
}
-llvm::Value *CodeGenFunction::EmitScalarOrConstFoldImmArg(unsigned ICEArguments,
- unsigned Idx,
- const CallExpr *E) {
- llvm::Value *Arg = nullptr;
- if ((ICEArguments & (1 << Idx)) == 0) {
- Arg = EmitScalarExpr(E->getArg(Idx));
- } else {
- // If this is required to be a constant, constant fold it so that we
- // know that the generated intrinsic gets a ConstantInt.
- std::optional<llvm::APSInt> Result =
- E->getArg(Idx)->getIntegerConstantExpr(getContext());
- assert(Result && "Expected argument to be a constant");
- Arg = llvm::ConstantInt::get(getLLVMContext(), *Result);
- }
- return Arg;
-}
-
void CodeGenFunction::AddAMDGPUFenceAddressSpaceMMRA(llvm::Instruction *Inst,
const CallExpr *E) {
constexpr const char *Tag = "amdgpu-synchronize-as";
More information about the cfe-commits
mailing list