[clang] [CIR] Record -ffp-contract=fast as a per-op contract flag (PR #226334)

Kunal Dubey via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 25 21:16:22 PDT 2026


================
@@ -29,14 +29,63 @@
 #include "clang/CIR/Dialect/IR/CIROpsDialect.cpp.inc"
 #include "clang/CIR/Dialect/IR/CIROpsEnums.cpp.inc"
 #include "clang/CIR/MissingFeatures.h"
+#include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SetOperations.h"
 #include "llvm/ADT/SmallSet.h"
 #include "llvm/ADT/TypeSwitch.h"
 #include "llvm/Support/LogicalResult.h"
+#include "llvm/Support/Mutex.h"
 
 using namespace mlir;
 using namespace cir;
 
+namespace {
+struct CIRBuilderFPDefaults {
+  FenvAttr (*fenv)(void *);
+  FastMathFlagsAttr (*fastMath)(void *);
+  void *self;
+};
+
+llvm::sys::SmartMutex<true> &cirBuilderFPMutex() {
+  static llvm::sys::SmartMutex<true> mutex;
+  return mutex;
+}
+
+llvm::DenseMap<mlir::OpBuilder *, CIRBuilderFPDefaults> &cirBuilderFPMap() {
----------------
xakep8 wrote:

Yes, looks much cleaner now.

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


More information about the cfe-commits mailing list