[clang] [clang codegen] Emit int TBAA metadata on more FP math libcalls (PR #100302)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 24 18:03:27 PDT 2024
================
@@ -692,23 +692,22 @@ static RValue emitLibraryCall(CodeGenFunction &CGF, const FunctionDecl *FD,
RValue Call =
CGF.EmitCall(E->getCallee()->getType(), callee, E, ReturnValueSlot());
- // Check the supported intrinsic.
+ ASTContext &Context = CGF.getContext();
if (unsigned BuiltinID = FD->getBuiltinID()) {
auto IsErrnoIntrinsic = [&]() -> unsigned {
- switch (BuiltinID) {
- case Builtin::BIexpf:
- case Builtin::BI__builtin_expf:
- case Builtin::BI__builtin_expf128:
+ // Check whether a FP math builtin function, such as BI__builtin_expf
+ QualType ResultTy = FD->getReturnType();
+ bool IsMathLibCall =
+ Context.BuiltinInfo.isLibFunction(BuiltinID) ||
+ Context.BuiltinInfo.isPredefinedLibFunction(BuiltinID);
+ if (IsMathLibCall && CGF.ConvertType(ResultTy)->isFloatingPointTy())
----------------
vfdff wrote:
My idea was to get the floating-point interface from libc/libm, so I has extra constraints **CGF.ConvertType(ResultTy)->isFloatingPointTy() guarding the return type" and **CGF.CGM.getLangOpts().MathErrno guarding the errno** in the following line 709.
https://github.com/llvm/llvm-project/pull/100302
More information about the cfe-commits
mailing list