[llvm] [FunctionAttrs] Don't infer noundef when return has nofpclass (PR #191822)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 16 06:40:25 PDT 2026


================
@@ -1742,6 +1743,13 @@ static void addNoUndefAttrs(const SCCNodeSet &SCCNodes,
                 !Attr.getRange().contains(
                     computeConstantRange(RetVal, /*ForSigned=*/false)))
               return false;
+
+            FPClassTest AttrFPClass = Attrs.getRetNoFPClass();
+            if (AttrFPClass != fcNone) {
+              KnownFPClass ComputedFPClass = computeKnownFPClass(RetVal, DL);
+              if (!ComputedFPClass.isKnownNever(AttrFPClass))
+                return false;
+            }
----------------
arsenm wrote:

Maybe there should be an assert there are no remaining poison generating return attributes in case another gets added 

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


More information about the llvm-commits mailing list