[clang] [TBAA] Emit int TBAA metadata on FP math libcalls (PR #96025)

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 24 10:42:58 PDT 2024


================
@@ -707,7 +707,36 @@ static RValue emitLibraryCall(CodeGenFunction &CGF, const FunctionDecl *FD,
                               const CallExpr *E, llvm::Constant *calleeValue) {
   CodeGenFunction::CGFPOptionsRAII FPOptsRAII(CGF, E);
   CGCallee callee = CGCallee::forDirect(calleeValue, GlobalDecl(FD));
-  return CGF.EmitCall(E->getCallee()->getType(), callee, E, ReturnValueSlot());
+  RValue Call =
+      CGF.EmitCall(E->getCallee()->getType(), callee, E, ReturnValueSlot());
+
+  // Check the supported intrinsic.
+  if (unsigned BuiltinID = FD->getBuiltinID()) {
+    auto IntrinsicID = [&]() -> unsigned {
+      switch (BuiltinID) {
+      case Builtin::BIexpf:
+      case Builtin::BI__builtin_expf:
+      case Builtin::BI__builtin_expf128:
+        return true;
+      }
+      // TODO: support more FP math libcalls
+      return false;
+    }();
+
+    const llvm::Triple &T = CGF.getTarget().getTriple();
+    // Restrict to Linux because not all targets set errno, such as MacOS.
----------------
efriedma-quic wrote:

LangOpts.MathErrno

https://github.com/llvm/llvm-project/pull/96025


More information about the cfe-commits mailing list