[flang-commits] [flang] [flang] remove AbstractConverter.h include from IntrinsicCall.h (PR #178150)
via flang-commits
flang-commits at lists.llvm.org
Tue Jan 27 02:17:57 PST 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-flang-fir-hlfir
Author: None (jeanPerier)
<details>
<summary>Changes</summary>
AbstractConverter.h is pulling a lot of headers, including some from Evaluate. This causes any library using IntrinsicCall.h to have to link against FortranEvaluate and FortranSupport while there is no actual need/usage of Evaluate data structures.
I opened https://github.com/llvm/llvm-project/issues/178142 to fully remove the AbstractConverter from IntrinsicCall.cpp, but for now this patch should at least prevent the consumers of IntrinsicCall.h to bring-in these extra libraries.
Should solve the DEBUG build problem from https://github.com/llvm/llvm-project/pull/178076.
---
Full diff: https://github.com/llvm/llvm-project/pull/178150.diff
3 Files Affected:
- (modified) flang/include/flang/Optimizer/Builder/IntrinsicCall.h (+9-1)
- (modified) flang/lib/Optimizer/Builder/IntrinsicCall.cpp (+1)
- (modified) flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp (+1)
``````````diff
diff --git a/flang/include/flang/Optimizer/Builder/IntrinsicCall.h b/flang/include/flang/Optimizer/Builder/IntrinsicCall.h
index b248106b51101..0b62ca1292d99 100644
--- a/flang/include/flang/Optimizer/Builder/IntrinsicCall.h
+++ b/flang/include/flang/Optimizer/Builder/IntrinsicCall.h
@@ -9,7 +9,6 @@
#ifndef FORTRAN_LOWER_INTRINSICCALL_H
#define FORTRAN_LOWER_INTRINSICCALL_H
-#include "flang/Lower/AbstractConverter.h"
#include "flang/Optimizer/Builder/BoxValue.h"
#include "flang/Optimizer/Builder/FIRBuilder.h"
#include "flang/Optimizer/Builder/Runtime/Character.h"
@@ -22,6 +21,15 @@
#include "mlir/Dialect/Math/IR/Math.h"
#include <optional>
+namespace Fortran {
+namespace lower {
+// TODO: remove the usage of AbstractConverter to avoid making IntrinsicCall.cpp
+// depend upon Lower/Evaluate and use a data structure to pass options to
+// IntrinsicLibrary.
+class AbstractConverter;
+} // namespace lower
+} // namespace Fortran
+
namespace fir {
class StatementContext;
diff --git a/flang/lib/Optimizer/Builder/IntrinsicCall.cpp b/flang/lib/Optimizer/Builder/IntrinsicCall.cpp
index 4ba906dce4a13..73db17f7bf837 100644
--- a/flang/lib/Optimizer/Builder/IntrinsicCall.cpp
+++ b/flang/lib/Optimizer/Builder/IntrinsicCall.cpp
@@ -15,6 +15,7 @@
#include "flang/Optimizer/Builder/IntrinsicCall.h"
#include "flang/Common/static-multimap-view.h"
+#include "flang/Lower/AbstractConverter.h"
#include "flang/Optimizer/Builder/BoxValue.h"
#include "flang/Optimizer/Builder/CUDAIntrinsicCall.h"
#include "flang/Optimizer/Builder/CUFCommon.h"
diff --git a/flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp b/flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
index 265e268ab1b09..5a4e517c13ef5 100644
--- a/flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
+++ b/flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
@@ -15,6 +15,7 @@
#include "flang/Optimizer/Builder/PPCIntrinsicCall.h"
#include "flang/Evaluate/common.h"
+#include "flang/Lower/AbstractConverter.h"
#include "flang/Optimizer/Builder/FIRBuilder.h"
#include "flang/Optimizer/Builder/MutableBox.h"
#include "mlir/Dialect/Index/IR/IndexOps.h"
``````````
</details>
https://github.com/llvm/llvm-project/pull/178150
More information about the flang-commits
mailing list