[PATCH] D139902: IR: Add nofpclass parameter attribute
    Nikita Popov via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Thu Feb 23 07:33:59 PST 2023
    
    
  
nikic accepted this revision.
nikic added a comment.
This revision is now accepted and ready to land.
LGTM
================
Comment at: llvm/include/llvm/IR/Attributes.h:21
 #include "llvm/ADT/BitmaskEnum.h"
+#include "llvm/ADT/FloatingPointMode.h"
 #include "llvm/ADT/SmallString.h"
----------------
Please forward-declare instead.
================
Comment at: llvm/include/llvm/IR/Attributes.h:152
   static Attribute getWithMemoryEffects(LLVMContext &Context, MemoryEffects ME);
+  static Attribute getWithNoFPClass(LLVMContext &Context, unsigned Mask);
 
----------------
Should accept `FPClassTest` instead?
================
Comment at: llvm/include/llvm/IR/Attributes.h:254
 
+  // Return the FPClassTest for nofpclass
+  FPClassTest getNoFPClass() const;
----------------
`///`
================
Comment at: llvm/include/llvm/IR/Attributes.h:890
+  /// Get the disallowed floating-point classes of the argument value.
+  FPClassTest getParamNoFPClass(unsigned Index) const;
+
----------------
`Index` -> `ArgNo`
================
Comment at: llvm/include/llvm/IR/Attributes.h:1252
+  // Add nofpclass attribute
+  AttrBuilder &addNoFPClassAttr(unsigned NoFPClassMask);
+
----------------
Same here, pass `FPClassTest` at API level?
================
Comment at: llvm/include/llvm/IR/InstrTypes.h:1838
+  /// return value.
+  FPClassTest getRetNoFPClass() const {
+    unsigned Mask = Attrs.getRetNoFPClass();
----------------
Move to C++ file.
================
Comment at: llvm/include/llvm/IR/InstrTypes.h:1843
+    if (const Function *F = getCalledFunction())
+      Mask |= static_cast<unsigned>(F->getAttributes().getRetNoFPClass());
+    return static_cast<FPClassTest>(Mask);
----------------
Unrelated, but why isn't it a bitmask enum?
================
Comment at: llvm/lib/IR/Attributes.cpp:472
+      if (EmitSeparator)
+        OS << ' ';
+      OS << Name;
----------------
Use `ListSeparator` instead.
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139902/new/
https://reviews.llvm.org/D139902
    
    
More information about the llvm-commits
mailing list