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"; _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
