[llvm] [SelectionDAG] Virtualize isTargetStrictFPOpcode / isTargetMemoryOpcode (PR #119969)

Sergei Barannikov via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 25 22:57:25 PST 2024


================
@@ -688,22 +687,6 @@ END_TWO_BYTE_PACK()
   /// \<target\>ISD namespace).
   bool isTargetOpcode() const { return NodeType >= ISD::BUILTIN_OP_END; }
 
-  /// Test if this node has a target-specific opcode that may raise
-  /// FP exceptions (in the \<target\>ISD namespace and greater than
-  /// FIRST_TARGET_STRICTFP_OPCODE).  Note that all target memory
-  /// opcode are currently automatically considered to possibly raise
-  /// FP exceptions as well.
-  bool isTargetStrictFPOpcode() const {
-    return NodeType >= ISD::FIRST_TARGET_STRICTFP_OPCODE;
----------------
s-barannikov wrote:

> > Not all memory opcodes will be generated, because some targets do not provide a tablegen description for all memory nodes.
> 
> This sounds more like a bug.

Depends how you look at it. It wasn't a bug before the proposed changes; targets were not required to describe all target-specific opcodes in *.td files.

> Your RFC sold not requiring targets to use this as a feature, but I'd consider it a defect.

Yes, otherwise it wouldn't be sold. This feature/defect allows gradual migration.

> It would be better if targets were required to generate this kind of information from tablegen

I guess we can do that once all in-tree targets have migrated. Probably need to give some time to downstream targets, too.


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


More information about the llvm-commits mailing list