[flang-commits] [flang] [lldb] [llvm] [mlir] [NFC] Add missing <cmath> and <limits> includes across llvm, mlir, lldb, flang, and bolt (PR #214410)

via flang-commits flang-commits at lists.llvm.org
Wed Aug 5 23:42:12 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-bolt

@llvm/pr-subscribers-lldb

Author: Kyungtak Woo (kevinwkt)

<details>
<summary>Changes</summary>

This is basically a continuation of https://github.com/llvm/llvm-project/pull/214349...

This change adds missing `#include <cmath>` and `#include <limits>` headers to several files across `llvm`, `mlir`, `lldb`, `flang`, and `bolt`.

In commit https://github.com/llvm/llvm-project/commit/ada3786e91ca2058f3ac8255a024c12ae7d263ee, `<random>` stopped transitively pulling in the top-level `<cmath>` header in favor of internal granular `<__math/...>` headers.
Multiple files across the codebase were implicitly relying on transitive `<cmath>` inclusions from headers like `llvm/Support/RandomNumberGenerator.h` and other headers that pull in `<random>`. I'm explicitly adding the missing dependency.

### Affected Files
* **bolt**: `bolt/lib/Passes/SplitFunctions.cpp` (`std::pow`)
* **flang**: `flang/lib/Optimizer/CodeGen/Target.cpp` (`std::ceil`)
* **lldb**: `lldb/source/Plugins/Language/ObjC/Cocoa.cpp` (`std::floor`)
* **llvm**:
  * `llvm/lib/Transforms/Utils/Debugify.cpp` (`std::log10`)
  * `llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp` (`std::round`)
  * `llvm/tools/llvm-dwarfdump/Statistics.cpp` (`std::round`, `std::numeric_limits`)
  * `llvm/tools/llvm-exegesis/lib/Analysis.cpp` (`std::sqrt`)
  * `llvm/tools/llvm-exegesis/lib/ResultAggregator.cpp` (`std::ceil`)
  * `llvm/tools/llvm-exegesis/lib/SchedClassResolution.cpp` (`std::round`)
* **mlir**:
  * `mlir/include/mlir/Dialect/Quant/Utils/UniformSupport.h` (`std::round`)
  * `mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp` (`std::log2`)
  * `mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp` (`std::log2`)

---
Full diff: https://github.com/llvm/llvm-project/pull/214410.diff


12 Files Affected:

- (modified) bolt/lib/Passes/SplitFunctions.cpp (+1) 
- (modified) flang/lib/Optimizer/CodeGen/Target.cpp (+1) 
- (modified) lldb/source/Plugins/Language/ObjC/Cocoa.cpp (+1) 
- (modified) llvm/lib/Transforms/Utils/Debugify.cpp (+1) 
- (modified) llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp (+1) 
- (modified) llvm/tools/llvm-dwarfdump/Statistics.cpp (+2) 
- (modified) llvm/tools/llvm-exegesis/lib/Analysis.cpp (+1) 
- (modified) llvm/tools/llvm-exegesis/lib/ResultAggregator.cpp (+1) 
- (modified) llvm/tools/llvm-exegesis/lib/SchedClassResolution.cpp (+1) 
- (modified) mlir/include/mlir/Dialect/Quant/Utils/UniformSupport.h (+1) 
- (modified) mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp (+1) 
- (modified) mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp (+1) 


``````````diff
diff --git a/bolt/lib/Passes/SplitFunctions.cpp b/bolt/lib/Passes/SplitFunctions.cpp
index 4c522ce9bc954..d86da2bc024ca 100644
--- a/bolt/lib/Passes/SplitFunctions.cpp
+++ b/bolt/lib/Passes/SplitFunctions.cpp
@@ -22,6 +22,7 @@
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/FormatVariadic.h"
 #include <algorithm>
+#include <cmath>
 #include <iterator>
 #include <memory>
 #include <numeric>
diff --git a/flang/lib/Optimizer/CodeGen/Target.cpp b/flang/lib/Optimizer/CodeGen/Target.cpp
index 48946d78d900c..32c403de3ac39 100644
--- a/flang/lib/Optimizer/CodeGen/Target.cpp
+++ b/flang/lib/Optimizer/CodeGen/Target.cpp
@@ -17,6 +17,7 @@
 #include "mlir/IR/BuiltinTypes.h"
 #include "mlir/IR/TypeRange.h"
 #include "llvm/ADT/TypeSwitch.h"
+#include <cmath>
 
 #define DEBUG_TYPE "flang-codegen-target"
 
diff --git a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
index 50e8b4fbb7c3e..4a8d6f1ea75ce 100644
--- a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
+++ b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
@@ -30,6 +30,7 @@
 #include "llvm/ADT/APInt.h"
 #include "llvm/ADT/bit.h"
 #include "llvm/Support/ErrorExtras.h"
+#include <cmath>
 
 using namespace lldb;
 using namespace lldb_private;
diff --git a/llvm/lib/Transforms/Utils/Debugify.cpp b/llvm/lib/Transforms/Utils/Debugify.cpp
index 92a911a374a16..775b292e95265 100644
--- a/llvm/lib/Transforms/Utils/Debugify.cpp
+++ b/llvm/lib/Transforms/Utils/Debugify.cpp
@@ -29,6 +29,7 @@
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/JSON.h"
+#include <cmath>
 #include <optional>
 #if LLVM_ENABLE_DEBUGLOC_TRACKING_ORIGIN
 // We need the Signals header to operate on stacktraces if we're using DebugLoc
diff --git a/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp b/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
index 198a950c7c961..c48e173b05479 100644
--- a/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
+++ b/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
@@ -18,6 +18,7 @@
 #include "llvm/Support/MathExtras.h"
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"
 #include "llvm/Transforms/Utils/LoopUtils.h"
+#include <cmath>
 #include <limits>
 #include <optional>
 
diff --git a/llvm/tools/llvm-dwarfdump/Statistics.cpp b/llvm/tools/llvm-dwarfdump/Statistics.cpp
index 8559750126d2d..16ff40e1656a9 100644
--- a/llvm/tools/llvm-dwarfdump/Statistics.cpp
+++ b/llvm/tools/llvm-dwarfdump/Statistics.cpp
@@ -15,6 +15,8 @@
 #include "llvm/DebugInfo/DWARF/LowLevel/DWARFExpression.h"
 #include "llvm/Object/ObjectFile.h"
 #include "llvm/Support/JSON.h"
+#include <cmath>
+#include <limits>
 
 #define DEBUG_TYPE "dwarfdump"
 using namespace llvm;
diff --git a/llvm/tools/llvm-exegesis/lib/Analysis.cpp b/llvm/tools/llvm-exegesis/lib/Analysis.cpp
index c35ae0399c91b..da0367f3fdbd6 100644
--- a/llvm/tools/llvm-exegesis/lib/Analysis.cpp
+++ b/llvm/tools/llvm-exegesis/lib/Analysis.cpp
@@ -12,6 +12,7 @@
 #include "llvm/MC/MCAsmInfo.h"
 #include "llvm/MC/MCTargetOptions.h"
 #include "llvm/Support/FormatVariadic.h"
+#include <cmath>
 #include <limits>
 #include <vector>
 
diff --git a/llvm/tools/llvm-exegesis/lib/ResultAggregator.cpp b/llvm/tools/llvm-exegesis/lib/ResultAggregator.cpp
index ba2ae52e9d679..e46083bad85f9 100644
--- a/llvm/tools/llvm-exegesis/lib/ResultAggregator.cpp
+++ b/llvm/tools/llvm-exegesis/lib/ResultAggregator.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "ResultAggregator.h"
+#include <cmath>
 
 namespace llvm {
 namespace exegesis {
diff --git a/llvm/tools/llvm-exegesis/lib/SchedClassResolution.cpp b/llvm/tools/llvm-exegesis/lib/SchedClassResolution.cpp
index 788a03b55c5df..2cfbc6b91b9be 100644
--- a/llvm/tools/llvm-exegesis/lib/SchedClassResolution.cpp
+++ b/llvm/tools/llvm-exegesis/lib/SchedClassResolution.cpp
@@ -13,6 +13,7 @@
 #include "llvm/MCA/Support.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/FormatVariadic.h"
+#include <cmath>
 #include <vector>
 
 #define DEBUG_TYPE "exegesis-sched-class-resolution"
diff --git a/mlir/include/mlir/Dialect/Quant/Utils/UniformSupport.h b/mlir/include/mlir/Dialect/Quant/Utils/UniformSupport.h
index 6773f45069c87..ac89b4327f898 100644
--- a/mlir/include/mlir/Dialect/Quant/Utils/UniformSupport.h
+++ b/mlir/include/mlir/Dialect/Quant/Utils/UniformSupport.h
@@ -9,6 +9,7 @@
 #ifndef MLIR_DIALECT_QUANT_UTILS_UNIFORMSUPPORT_H_
 #define MLIR_DIALECT_QUANT_UTILS_UNIFORMSUPPORT_H_
 
+#include <cmath>
 #include <utility>
 
 #include "mlir/Dialect/Quant/IR/QuantTypes.h"
diff --git a/mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp b/mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
index a7793ddbaf7e8..67c4be9670c91 100644
--- a/mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
+++ b/mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
@@ -38,6 +38,7 @@
 #include "llvm/Support/NVPTXAddrSpace.h"
 #include "llvm/Support/raw_ostream.h"
 #include <cassert>
+#include <cmath>
 #include <optional>
 #include <string>
 
diff --git a/mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp b/mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp
index 08e44949de1c0..4201aabc02c3d 100644
--- a/mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp
+++ b/mlir/lib/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.cpp
@@ -22,6 +22,7 @@
 #include "llvm/IR/IntrinsicsNVPTX.h"
 #include "llvm/Support/FormatVariadic.h"
 #include "llvm/Support/NVVMAttributes.h"
+#include <cmath>
 
 using namespace mlir;
 using namespace mlir::LLVM;

``````````

</details>


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


More information about the flang-commits mailing list