diff options
author | Fabian Mora <fmora.dev@gmail.com> | 2025-07-25 16:51:47 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-25 16:51:47 -0400 |
commit | 34a08cb89c5e50c22be05555529ce84eaa3e4d3c (patch) | |
tree | 35c8f98f2aa1a3d4b2358a9ccb92d6447be96557 | |
parent | 6118a254ff9acb4b54a6bdb952c088a792b679af (diff) | |
download | llvm-34a08cb89c5e50c22be05555529ce84eaa3e4d3c.zip llvm-34a08cb89c5e50c22be05555529ce84eaa3e4d3c.tar.gz llvm-34a08cb89c5e50c22be05555529ce84eaa3e4d3c.tar.bz2 |
[mlir][LLVM] Remove `llvm` deps from the LLVM dialect (#150692)
This patch removes spurious includes of `llvm/IR` files, and unnecessary
link components in the LLVM dialect.
The only major dependencies still coming from LLVM are
`llvm::DataLayout`, which is used by `verifyDataLayoutString` and some
`dwarf` symbols in some attributes. Both of them should likely be
removed in the future.
Finally, I also removed one constructor from `LLVM::AssumeOp` that used
[OperandBundleDefT](https://llvm.org/doxygen/classllvm_1_1OperandBundleDefT.html)
without good reason and introduced a header unnecessarily.
-rw-r--r-- | flang/lib/Frontend/CMakeLists.txt | 1 | ||||
-rw-r--r-- | flang/lib/Optimizer/Dialect/Support/KindMapping.cpp | 1 | ||||
-rw-r--r-- | mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h | 5 | ||||
-rw-r--r-- | mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td | 2 | ||||
-rw-r--r-- | mlir/include/mlir/Target/LLVMIR/ModuleImport.h | 1 | ||||
-rw-r--r-- | mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp | 2 | ||||
-rw-r--r-- | mlir/lib/Dialect/LLVMIR/CMakeLists.txt | 3 | ||||
-rw-r--r-- | mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp | 26 | ||||
-rw-r--r-- | mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp | 7 | ||||
-rw-r--r-- | mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp | 1 | ||||
-rw-r--r-- | mlir/lib/Dialect/LLVMIR/IR/VCIXDialect.cpp | 5 | ||||
-rw-r--r-- | mlir/lib/Target/LLVM/CMakeLists.txt | 1 | ||||
-rw-r--r-- | mlir/unittests/Target/LLVM/CMakeLists.txt | 2 |
13 files changed, 10 insertions, 47 deletions
diff --git a/flang/lib/Frontend/CMakeLists.txt b/flang/lib/Frontend/CMakeLists.txt index 96ba27a..fa0d5ec 100644 --- a/flang/lib/Frontend/CMakeLists.txt +++ b/flang/lib/Frontend/CMakeLists.txt @@ -45,6 +45,7 @@ add_flang_library(flangFrontend LINK_COMPONENTS Passes Analysis + BitReader Extensions IRPrinter IRReader diff --git a/flang/lib/Optimizer/Dialect/Support/KindMapping.cpp b/flang/lib/Optimizer/Dialect/Support/KindMapping.cpp index 30c6030..6cf8adb 100644 --- a/flang/lib/Optimizer/Dialect/Support/KindMapping.cpp +++ b/flang/lib/Optimizer/Dialect/Support/KindMapping.cpp @@ -12,6 +12,7 @@ #include "flang/Optimizer/Dialect/Support/KindMapping.h" #include "mlir/Dialect/LLVMIR/LLVMDialect.h" +#include "llvm/IR/LLVMContext.h" #include "llvm/Support/CommandLine.h" /// Allow the user to set the FIR intrinsic type kind value to LLVM type diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h b/mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h index e355bb8..f3bd5c0 100644 --- a/mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h +++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h @@ -32,11 +32,6 @@ #include "mlir/Interfaces/ViewLikeInterface.h" #include "mlir/Support/ThreadLocalCache.h" #include "llvm/ADT/PointerEmbeddedInt.h" -#include "llvm/IR/DerivedTypes.h" -#include "llvm/IR/InstrTypes.h" -#include "llvm/IR/LLVMContext.h" -#include "llvm/IR/Module.h" -#include "llvm/IR/Type.h" namespace llvm { class Type; diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td index caba614..8c6f1ee 100644 --- a/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td +++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td @@ -555,8 +555,6 @@ def LLVM_AssumeOp let builders = [ OpBuilder<(ins "Value":$cond)>, - OpBuilder<(ins "Value":$cond, - "ArrayRef<llvm::OperandBundleDefT<Value>>":$opBundles)>, OpBuilder<(ins "Value":$cond, "llvm::StringRef":$tag, "ValueRange":$args)>, OpBuilder<(ins "Value":$cond, "AssumeAlignTag":$tag, "Value":$ptr, "Value":$align)>, diff --git a/mlir/include/mlir/Target/LLVMIR/ModuleImport.h b/mlir/include/mlir/Target/LLVMIR/ModuleImport.h index c484072..17ef8e4 100644 --- a/mlir/include/mlir/Target/LLVMIR/ModuleImport.h +++ b/mlir/include/mlir/Target/LLVMIR/ModuleImport.h @@ -19,6 +19,7 @@ #include "mlir/Target/LLVMIR/Import.h" #include "mlir/Target/LLVMIR/LLVMImportInterface.h" #include "mlir/Target/LLVMIR/TypeFromLLVM.h" +#include "llvm/IR/Module.h" namespace llvm { class BasicBlock; diff --git a/mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp b/mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp index 9cd491c..4307bc6 100644 --- a/mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp +++ b/mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp @@ -29,7 +29,9 @@ #include "mlir/Target/LLVMIR/TypeToLLVM.h" #include "mlir/Transforms/DialectConversion.h" #include "llvm/ADT/APFloat.h" +#include "llvm/IR/LLVMContext.h" #include "llvm/Support/Casting.h" + #include <optional> using namespace mlir; diff --git a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt index d987b72..ff55f17 100644 --- a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt +++ b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt @@ -21,10 +21,7 @@ add_mlir_dialect_library(MLIRLLVMDialect intrinsics_gen LINK_COMPONENTS - AsmParser BinaryFormat - BitReader - BitWriter Core LINK_LIBS PUBLIC diff --git a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp index d42ce96..422039f 100644 --- a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp +++ b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp @@ -26,8 +26,7 @@ #include "llvm/ADT/APFloat.h" #include "llvm/ADT/TypeSwitch.h" -#include "llvm/IR/Function.h" -#include "llvm/IR/Type.h" +#include "llvm/IR/DataLayout.h" #include "llvm/Support/Error.h" #include <numeric> @@ -4064,28 +4063,9 @@ void LLVM::AssumeOp::build(OpBuilder &builder, OperationState &state, } void LLVM::AssumeOp::build(OpBuilder &builder, OperationState &state, - Value cond, - ArrayRef<llvm::OperandBundleDefT<Value>> opBundles) { - SmallVector<ValueRange> opBundleOperands; - SmallVector<Attribute> opBundleTags; - opBundleOperands.reserve(opBundles.size()); - opBundleTags.reserve(opBundles.size()); - - for (const llvm::OperandBundleDefT<Value> &bundle : opBundles) { - opBundleOperands.emplace_back(bundle.inputs()); - opBundleTags.push_back( - StringAttr::get(builder.getContext(), bundle.getTag())); - } - - auto opBundleTagsAttr = ArrayAttr::get(builder.getContext(), opBundleTags); - return build(builder, state, cond, opBundleOperands, opBundleTagsAttr); -} - -void LLVM::AssumeOp::build(OpBuilder &builder, OperationState &state, Value cond, llvm::StringRef tag, ValueRange args) { - llvm::OperandBundleDefT<Value> opBundle( - tag.str(), SmallVector<Value>(args.begin(), args.end())); - return build(builder, state, cond, opBundle); + return build(builder, state, cond, ArrayRef<ValueRange>(args), + builder.getStrArrayAttr(tag)); } void LLVM::AssumeOp::build(OpBuilder &builder, OperationState &state, diff --git a/mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp b/mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp index 6e29b12..cffe310 100644 --- a/mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp +++ b/mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp @@ -30,15 +30,8 @@ #include "mlir/IR/Types.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/TypeSwitch.h" -#include "llvm/AsmParser/Parser.h" -#include "llvm/IR/Attributes.h" -#include "llvm/IR/Function.h" -#include "llvm/IR/IRBuilder.h" -#include "llvm/IR/IntrinsicsNVPTX.h" -#include "llvm/IR/Type.h" #include "llvm/Support/Casting.h" #include "llvm/Support/FormatVariadic.h" -#include "llvm/Support/SourceMgr.h" #include "llvm/Support/raw_ostream.h" #include <cassert> #include <optional> diff --git a/mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp b/mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp index 1a9ccf5..17371ec 100644 --- a/mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp +++ b/mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp @@ -24,7 +24,6 @@ #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Operation.h" #include "llvm/ADT/TypeSwitch.h" -#include "llvm/IR/Type.h" using namespace mlir; using namespace ROCDL; diff --git a/mlir/lib/Dialect/LLVMIR/IR/VCIXDialect.cpp b/mlir/lib/Dialect/LLVMIR/IR/VCIXDialect.cpp index bd9d3528..1d4a0af 100644 --- a/mlir/lib/Dialect/LLVMIR/IR/VCIXDialect.cpp +++ b/mlir/lib/Dialect/LLVMIR/IR/VCIXDialect.cpp @@ -20,11 +20,6 @@ #include "mlir/IR/MLIRContext.h" #include "mlir/IR/Operation.h" #include "llvm/ADT/TypeSwitch.h" -#include "llvm/AsmParser/Parser.h" -#include "llvm/IR/Attributes.h" -#include "llvm/IR/Function.h" -#include "llvm/IR/Type.h" -#include "llvm/Support/SourceMgr.h" using namespace mlir; using namespace vcix; diff --git a/mlir/lib/Target/LLVM/CMakeLists.txt b/mlir/lib/Target/LLVM/CMakeLists.txt index 7c6fc37..f6e44c6 100644 --- a/mlir/lib/Target/LLVM/CMakeLists.txt +++ b/mlir/lib/Target/LLVM/CMakeLists.txt @@ -8,6 +8,7 @@ add_mlir_library(MLIRTargetLLVM intrinsics_gen LINK_COMPONENTS + BitWriter Core IPO IRReader diff --git a/mlir/unittests/Target/LLVM/CMakeLists.txt b/mlir/unittests/Target/LLVM/CMakeLists.txt index 15835b9..0daac11 100644 --- a/mlir/unittests/Target/LLVM/CMakeLists.txt +++ b/mlir/unittests/Target/LLVM/CMakeLists.txt @@ -1,4 +1,4 @@ -set(LLVM_LINK_COMPONENTS nativecodegen) +set(LLVM_LINK_COMPONENTS nativecodegen BitReader) get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) |