[all-commits] [llvm/llvm-project] 339869: Prepare for LLVMMC headers cleanup

serge-sans-paille via All-commits all-commits at lists.llvm.org
Wed Feb 9 02:09:47 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 33986970a4372aa391331c60c8f23804e903cec2
      https://github.com/llvm/llvm-project/commit/33986970a4372aa391331c60c8f23804e903cec2
  Author: serge-sans-paille <sguelton at redhat.com>
  Date:   2022-02-09 (Wed, 09 Feb 2022)

  Changed paths:
    M llvm/utils/TableGen/FixedLenDecoderEmitter.cpp

  Log Message:
  -----------
  Prepare for LLVMMC headers cleanup

Be more explicit about which headers should be included in MC files generated by
tblgen.

See also: https://reviews.llvm.org/D119244


  Commit: ef736a1c39f27ef4777bbe6cf3af68c1fd588c8a
      https://github.com/llvm/llvm-project/commit/ef736a1c39f27ef4777bbe6cf3af68c1fd588c8a
  Author: serge-sans-paille <sguelton at redhat.com>
  Date:   2022-02-09 (Wed, 09 Feb 2022)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h
    M llvm/include/llvm/MC/MCAsmBackend.h
    M llvm/include/llvm/MC/MCAssembler.h
    M llvm/include/llvm/MC/MCCodeView.h
    M llvm/include/llvm/MC/MCContext.h
    M llvm/include/llvm/MC/MCDwarf.h
    M llvm/include/llvm/MC/MCELFStreamer.h
    M llvm/include/llvm/MC/MCFragment.h
    M llvm/include/llvm/MC/MCInstrAnalysis.h
    M llvm/include/llvm/MC/MCInstrDesc.h
    M llvm/include/llvm/MC/MCInstrInfo.h
    M llvm/include/llvm/MC/MCLinkerOptimizationHint.h
    M llvm/include/llvm/MC/MCObjectFileInfo.h
    M llvm/include/llvm/MC/MCObjectStreamer.h
    M llvm/include/llvm/MC/MCPseudoProbe.h
    M llvm/include/llvm/MC/MCSectionELF.h
    M llvm/include/llvm/MC/MCStreamer.h
    M llvm/include/llvm/MC/MCSubtargetInfo.h
    M llvm/include/llvm/MC/MCSymbol.h
    M llvm/include/llvm/MC/MCValue.h
    M llvm/include/llvm/MC/SubtargetFeature.h
    M llvm/include/llvm/MC/TargetRegistry.h
    M llvm/include/llvm/Target/TargetLoweringObjectFile.h
    M llvm/lib/CodeGen/LLVMTargetMachine.cpp
    M llvm/lib/MC/ELFObjectWriter.cpp
    M llvm/lib/MC/MCAsmBackend.cpp
    M llvm/lib/MC/MCAsmStreamer.cpp
    M llvm/lib/MC/MCAssembler.cpp
    M llvm/lib/MC/MCCodeView.cpp
    M llvm/lib/MC/MCContext.cpp
    M llvm/lib/MC/MCExpr.cpp
    M llvm/lib/MC/MCInstPrinter.cpp
    M llvm/lib/MC/MCInstrAnalysis.cpp
    M llvm/lib/MC/MCInstrDesc.cpp
    M llvm/lib/MC/MCMachOStreamer.cpp
    M llvm/lib/MC/MCNullStreamer.cpp
    M llvm/lib/MC/MCObjectFileInfo.cpp
    M llvm/lib/MC/MCObjectStreamer.cpp
    M llvm/lib/MC/MCObjectWriter.cpp
    M llvm/lib/MC/MCParser/COFFMasmParser.cpp
    M llvm/lib/MC/MCParser/MCAsmParserExtension.cpp
    M llvm/lib/MC/MCParser/MasmParser.cpp
    M llvm/lib/MC/MCParser/WasmAsmParser.cpp
    M llvm/lib/MC/MCPseudoProbe.cpp
    M llvm/lib/MC/MCSection.cpp
    M llvm/lib/MC/MCSectionMachO.cpp
    M llvm/lib/MC/MCSectionWasm.cpp
    M llvm/lib/MC/MCSectionXCOFF.cpp
    M llvm/lib/MC/MCStreamer.cpp
    M llvm/lib/MC/MCSymbol.cpp
    M llvm/lib/MC/MCSymbolELF.cpp
    M llvm/lib/MC/MCWasmStreamer.cpp
    M llvm/lib/MC/MCWin64EH.cpp
    M llvm/lib/MC/MCWinCOFFStreamer.cpp
    M llvm/lib/MC/MCWinEH.cpp
    M llvm/lib/MC/MCXCOFFStreamer.cpp
    M llvm/lib/MC/SubtargetFeature.cpp
    M llvm/lib/MC/WasmObjectWriter.cpp
    M llvm/lib/MC/WinCOFFObjectWriter.cpp
    M llvm/lib/MC/XCOFFObjectWriter.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/R600MCCodeEmitter.cpp
    M llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp
    M llvm/lib/Target/AVR/MCTargetDesc/AVRELFStreamer.cpp
    M llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp
    M llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.cpp
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCExpr.cpp
    M llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
    M llvm/lib/Target/MSP430/MCTargetDesc/MSP430ELFStreamer.cpp
    M llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFStreamer.cpp
    M llvm/lib/Target/PowerPC/PPCTargetStreamer.h
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCObjectFileInfo.cpp
    M llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
    M llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp
    M llvm/lib/Target/SystemZ/SystemZTargetStreamer.h
    M llvm/lib/Target/TargetMachine.cpp
    M llvm/lib/Target/VE/MCTargetDesc/VEMCExpr.cpp
    M llvm/lib/Target/X86/AsmParser/X86Operand.h
    M llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86MCExpr.h
    M llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
    M llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp
    M llvm/tools/dsymutil/MachOUtils.cpp
    M llvm/tools/dsymutil/dsymutil.cpp
    M llvm/tools/llvm-dwp/llvm-dwp.cpp
    M llvm/tools/llvm-ml/llvm-ml.cpp
    M llvm/unittests/CodeGen/AsmPrinterDwarfTest.cpp
    M llvm/unittests/DebugInfo/DWARF/DWARFExpressionCompactPrinterTest.cpp
    M llvm/unittests/DebugInfo/DWARF/DWARFExpressionCopyBytesTest.cpp
    M llvm/unittests/MC/DwarfLineTableHeaders.cpp
    M llvm/unittests/MC/MCInstPrinter.cpp
    M llvm/unittests/MC/SystemZ/SystemZAsmLexerTest.cpp

  Log Message:
  -----------
  Cleanup LLVMMC headers

There's a few relevant forward declarations in there that may require downstream
adding explicit includes:

llvm/MC/MCContext.h no longer includes llvm/BinaryFormat/ELF.h, llvm/MC/MCSubtargetInfo.h, llvm/MC/MCTargetOptions.h
llvm/MC/MCObjectStreamer.h no longer include llvm/MC/MCAssembler.h
llvm/MC/MCAssembler.h no longer includes llvm/MC/MCFixup.h, llvm/MC/MCFragment.h

Counting preprocessed lines required to rebuild llvm-project on my setup:
before: 1052436830
after:  1049293745

Which is significant and backs up the change in addition to the usual benefits of
decreasing coupling between headers and compilation units.

Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup
Differential Revision: https://reviews.llvm.org/D119244


Compare: https://github.com/llvm/llvm-project/compare/d295a53a9240...ef736a1c39f2


More information about the All-commits mailing list