From 1237c1496ff301da71be4702c7513df172937ecf Mon Sep 17 00:00:00 2001 From: serge-sans-paille Date: Fri, 4 Feb 2022 12:00:40 +0100 Subject: [PATCH] Cleanup LLVMBitcode headers Major user-facing changes: llvm/Bitcode/BitcodeReader.h no longer includes llvm/IR/ModuleSummaryIndex.h Some statistics: clang++ -E -Iinclude -I../llvm/include ../llvm/lib/Bitcode/Reader/*.cpp -std=c++14 -fno-rtti -fno-exceptions | wc -l after: 493335 before: 539640 Discourse thread on the topic: https://discourse.llvm.org/t/include-what-you-use-include-cleanup/ Differential Revision: https://reviews.llvm.org/D119091 --- llvm/include/llvm/Bitcode/BitcodeAnalyzer.h | 3 +- llvm/include/llvm/Bitcode/BitcodeReader.h | 5 +- llvm/lib/Bitcode/Reader/BitReader.cpp | 1 - llvm/lib/Bitcode/Reader/MetadataLoader.cpp | 51 ++++++++------------- llvm/lib/Bitcode/Reader/MetadataLoader.h | 6 +-- llvm/lib/Bitcode/Reader/ValueList.cpp | 2 - llvm/tools/llvm-dis/llvm-dis.cpp | 1 + 7 files changed, 27 insertions(+), 42 deletions(-) diff --git a/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h b/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h index f6fc284da33f..102e2257abcc 100644 --- a/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h +++ b/llvm/include/llvm/Bitcode/BitcodeAnalyzer.h @@ -18,12 +18,13 @@ #include "llvm/ADT/StringRef.h" #include "llvm/Bitstream/BitstreamReader.h" #include "llvm/Support/Error.h" -#include "llvm/Support/raw_ostream.h" #include #include namespace llvm { +class raw_ostream; + /// CurStreamTypeType - A type for CurStreamType enum CurStreamTypeType { UnknownBitstream, diff --git a/llvm/include/llvm/Bitcode/BitcodeReader.h b/llvm/include/llvm/Bitcode/BitcodeReader.h index a82791c8720b..d0b1c82ff1a1 100644 --- a/llvm/include/llvm/Bitcode/BitcodeReader.h +++ b/llvm/include/llvm/Bitcode/BitcodeReader.h @@ -16,11 +16,10 @@ #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/StringRef.h" #include "llvm/Bitstream/BitCodes.h" -#include "llvm/IR/ModuleSummaryIndex.h" #include "llvm/Support/Endian.h" #include "llvm/Support/Error.h" #include "llvm/Support/ErrorOr.h" -#include "llvm/Support/MemoryBuffer.h" +#include "llvm/Support/MemoryBufferRef.h" #include #include #include @@ -30,6 +29,8 @@ namespace llvm { class LLVMContext; class Module; +class MemoryBuffer; +class ModuleSummaryIndex; typedef llvm::function_ref(StringRef)> DataLayoutCallbackTy; diff --git a/llvm/lib/Bitcode/Reader/BitReader.cpp b/llvm/lib/Bitcode/Reader/BitReader.cpp index 5ac893aef14e..da2cf0770ec5 100644 --- a/llvm/lib/Bitcode/Reader/BitReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitReader.cpp @@ -12,7 +12,6 @@ #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Module.h" #include "llvm/Support/MemoryBuffer.h" -#include "llvm/Support/raw_ostream.h" #include #include diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp index 158405f0c34d..29a909da460e 100644 --- a/llvm/lib/Bitcode/Reader/MetadataLoader.cpp +++ b/llvm/lib/Bitcode/Reader/MetadataLoader.cpp @@ -9,75 +9,60 @@ #include "MetadataLoader.h" #include "ValueList.h" -#include "llvm/ADT/APFloat.h" #include "llvm/ADT/APInt.h" #include "llvm/ADT/ArrayRef.h" +#include "llvm/ADT/BitmaskEnum.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/DenseSet.h" #include "llvm/ADT/None.h" -#include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/Optional.h" +#include "llvm/ADT/STLFunctionalExtras.h" #include "llvm/ADT/SmallString.h" +#include "llvm/ADT/SmallVector.h" #include "llvm/ADT/Statistic.h" #include "llvm/ADT/StringRef.h" #include "llvm/ADT/Twine.h" +#include "llvm/ADT/ilist_iterator.h" +#include "llvm/ADT/iterator_range.h" #include "llvm/BinaryFormat/Dwarf.h" #include "llvm/Bitcode/BitcodeReader.h" #include "llvm/Bitcode/LLVMBitCodes.h" #include "llvm/Bitstream/BitstreamReader.h" -#include "llvm/IR/Argument.h" -#include "llvm/IR/Attributes.h" #include "llvm/IR/AutoUpgrade.h" #include "llvm/IR/BasicBlock.h" -#include "llvm/IR/CallingConv.h" -#include "llvm/IR/Comdat.h" -#include "llvm/IR/Constant.h" #include "llvm/IR/Constants.h" -#include "llvm/IR/DebugInfo.h" #include "llvm/IR/DebugInfoMetadata.h" -#include "llvm/IR/DebugLoc.h" -#include "llvm/IR/DerivedTypes.h" -#include "llvm/IR/DiagnosticPrinter.h" #include "llvm/IR/Function.h" -#include "llvm/IR/GVMaterializer.h" -#include "llvm/IR/GlobalAlias.h" -#include "llvm/IR/GlobalIFunc.h" #include "llvm/IR/GlobalObject.h" -#include "llvm/IR/GlobalValue.h" #include "llvm/IR/GlobalVariable.h" -#include "llvm/IR/InlineAsm.h" -#include "llvm/IR/InstrTypes.h" #include "llvm/IR/Instruction.h" -#include "llvm/IR/Instructions.h" #include "llvm/IR/IntrinsicInst.h" -#include "llvm/IR/Intrinsics.h" #include "llvm/IR/LLVMContext.h" +#include "llvm/IR/Metadata.h" #include "llvm/IR/Module.h" -#include "llvm/IR/ModuleSummaryIndex.h" -#include "llvm/IR/OperandTraits.h" #include "llvm/IR/TrackingMDRef.h" #include "llvm/IR/Type.h" -#include "llvm/IR/ValueHandle.h" -#include "llvm/Support/AtomicOrdering.h" #include "llvm/Support/Casting.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/Compiler.h" -#include "llvm/Support/Debug.h" #include "llvm/Support/ErrorHandling.h" -#include "llvm/Support/ManagedStatic.h" -#include "llvm/Support/MemoryBuffer.h" -#include "llvm/Support/raw_ostream.h" +#include "llvm/Support/type_traits.h" + #include #include #include #include #include +#include #include -#include #include -#include #include +#include #include #include +namespace llvm { +class Argument; +} using namespace llvm; @@ -679,8 +664,8 @@ public: bool hasSeenOldLoopTags() const { return HasSeenOldLoopTags; } - Error parseMetadataAttachment( - Function &F, const SmallVectorImpl &InstructionList); + Error parseMetadataAttachment(Function &F, + ArrayRef InstructionList); Error parseMetadataKinds(); @@ -2182,7 +2167,7 @@ Error MetadataLoader::MetadataLoaderImpl::parseGlobalObjectAttachment( /// Parse metadata attachments. Error MetadataLoader::MetadataLoaderImpl::parseMetadataAttachment( - Function &F, const SmallVectorImpl &InstructionList) { + Function &F, ArrayRef InstructionList) { if (Error Err = Stream.EnterSubBlock(bitc::METADATA_ATTACHMENT_ID)) return Err; @@ -2358,7 +2343,7 @@ DISubprogram *MetadataLoader::lookupSubprogramForFunction(Function *F) { } Error MetadataLoader::parseMetadataAttachment( - Function &F, const SmallVectorImpl &InstructionList) { + Function &F, ArrayRef InstructionList) { return Pimpl->parseMetadataAttachment(F, InstructionList); } diff --git a/llvm/lib/Bitcode/Reader/MetadataLoader.h b/llvm/lib/Bitcode/Reader/MetadataLoader.h index 709800850f0d..653f1402bead 100644 --- a/llvm/lib/Bitcode/Reader/MetadataLoader.h +++ b/llvm/lib/Bitcode/Reader/MetadataLoader.h @@ -13,7 +13,6 @@ #ifndef LLVM_LIB_BITCODE_READER_METADATALOADER_H #define LLVM_LIB_BITCODE_READER_METADATALOADER_H -#include "llvm/ADT/SmallVector.h" #include "llvm/Support/Error.h" #include @@ -28,6 +27,7 @@ class Instruction; class Metadata; class Module; class Type; +template class ArrayRef; /// Helper class that handles loading Metadatas and keeping them available. class MetadataLoader { @@ -66,8 +66,8 @@ public: DISubprogram *lookupSubprogramForFunction(Function *F); /// Parse a `METADATA_ATTACHMENT` block for a function. - Error parseMetadataAttachment( - Function &F, const SmallVectorImpl &InstructionList); + Error parseMetadataAttachment(Function &F, + ArrayRef InstructionList); /// Parse a `METADATA_KIND` block for the current module. Error parseMetadataKinds(); diff --git a/llvm/lib/Bitcode/Reader/ValueList.cpp b/llvm/lib/Bitcode/Reader/ValueList.cpp index 86ed664070f6..2ed547efa5dd 100644 --- a/llvm/lib/Bitcode/Reader/ValueList.cpp +++ b/llvm/lib/Bitcode/Reader/ValueList.cpp @@ -18,9 +18,7 @@ #include "llvm/IR/Value.h" #include "llvm/Support/Casting.h" #include "llvm/Support/ErrorHandling.h" -#include #include -#include using namespace llvm; diff --git a/llvm/tools/llvm-dis/llvm-dis.cpp b/llvm/tools/llvm-dis/llvm-dis.cpp index 7b3c3e7706a6..3d40da21f472 100644 --- a/llvm/tools/llvm-dis/llvm-dis.cpp +++ b/llvm/tools/llvm-dis/llvm-dis.cpp @@ -23,6 +23,7 @@ #include "llvm/IR/IntrinsicInst.h" #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Module.h" +#include "llvm/IR/ModuleSummaryIndex.h" #include "llvm/IR/Type.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/Error.h"