[flang-commits] [flang] 051d931 - [flang] remove AbstractConverter.h include from IntrinsicCall.h (#178150)
via flang-commits
flang-commits at lists.llvm.org
Tue Jan 27 06:25:53 PST 2026
Author: jeanPerier
Date: 2026-01-27T15:25:48+01:00
New Revision: 051d93195744fa7bfe8fd0b8813274ec7574dc11
URL: https://github.com/llvm/llvm-project/commit/051d93195744fa7bfe8fd0b8813274ec7574dc11
DIFF: https://github.com/llvm/llvm-project/commit/051d93195744fa7bfe8fd0b8813274ec7574dc11.diff
LOG: [flang] remove AbstractConverter.h include from IntrinsicCall.h (#178150)
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.
Added:
Modified:
flang/include/flang/Optimizer/Builder/IntrinsicCall.h
flang/lib/Optimizer/Builder/IntrinsicCall.cpp
flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp
Removed:
################################################################################
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"
More information about the flang-commits
mailing list