8 umbrella "llvm/Analysis"
11 // This is intended for (repeated) textual inclusion.
12 textual header "llvm/Analysis/ScalarFuncs.def"
13 textual header "llvm/Analysis/TargetLibraryInfo.def"
14 textual header "llvm/Analysis/VecFuncs.def"
17 module LLVM_AsmParser {
19 umbrella "llvm/AsmParser"
23 module LLVM_CodeGenTypes {
27 header "llvm/CodeGenTypes/LowLevelType.h" export *
30 header "llvm/CodeGenTypes/MachineValueType.h" export *
31 extern module LLVM_Extern_CodeGenTypes_Gen "module.extern.modulemap"
35 // A module covering CodeGen/ and Target/. These are intertwined
36 // and codependent, and thus notionally form a single module.
41 umbrella "llvm/CodeGen"
44 // Exclude these; they're intended to be included into only a single
45 // translation unit (or none) and aren't part of this module.
46 exclude header "llvm/CodeGen/LinkAllAsmWriterComponents.h"
47 exclude header "llvm/CodeGen/LinkAllCodegenComponents.h"
49 // These are intended for (repeated) textual inclusion.
50 textual header "llvm/CodeGen/DIEValue.def"
54 // FIXME: Make this as a submodule of LLVM_Backend again.
55 // Doing so causes a linker error in clang-format.
56 module LLVM_Backend_Target {
57 umbrella "llvm/Target"
63 umbrella "llvm/Bitcode"
67 module LLVM_Bitstream {
69 umbrella "llvm/Bitstream"
73 module LLVM_BinaryFormat {
75 umbrella "llvm/BinaryFormat" module * { export * }
76 textual header "llvm/BinaryFormat/Dwarf.def"
77 textual header "llvm/BinaryFormat/DXContainerConstants.def"
78 textual header "llvm/BinaryFormat/DynamicTags.def"
79 textual header "llvm/BinaryFormat/MachO.def"
80 textual header "llvm/BinaryFormat/MinidumpConstants.def"
81 textual header "llvm/BinaryFormat/Swift.def"
82 textual header "llvm/BinaryFormat/ELFRelocs/AArch64.def"
83 textual header "llvm/BinaryFormat/ELFRelocs/AMDGPU.def"
84 textual header "llvm/BinaryFormat/ELFRelocs/ARM.def"
85 textual header "llvm/BinaryFormat/ELFRelocs/ARC.def"
86 textual header "llvm/BinaryFormat/ELFRelocs/AVR.def"
87 textual header "llvm/BinaryFormat/ELFRelocs/BPF.def"
88 textual header "llvm/BinaryFormat/ELFRelocs/CSKY.def"
89 textual header "llvm/BinaryFormat/ELFRelocs/Hexagon.def"
90 textual header "llvm/BinaryFormat/ELFRelocs/i386.def"
91 textual header "llvm/BinaryFormat/ELFRelocs/Lanai.def"
92 textual header "llvm/BinaryFormat/ELFRelocs/LoongArch.def"
93 textual header "llvm/BinaryFormat/ELFRelocs/M68k.def"
94 textual header "llvm/BinaryFormat/ELFRelocs/Mips.def"
95 textual header "llvm/BinaryFormat/ELFRelocs/MSP430.def"
96 textual header "llvm/BinaryFormat/ELFRelocs/PowerPC64.def"
97 textual header "llvm/BinaryFormat/ELFRelocs/PowerPC.def"
98 textual header "llvm/BinaryFormat/ELFRelocs/RISCV.def"
99 textual header "llvm/BinaryFormat/ELFRelocs/Sparc.def"
100 textual header "llvm/BinaryFormat/ELFRelocs/SystemZ.def"
101 textual header "llvm/BinaryFormat/ELFRelocs/VE.def"
102 textual header "llvm/BinaryFormat/ELFRelocs/x86_64.def"
103 textual header "llvm/BinaryFormat/ELFRelocs/Xtensa.def"
104 textual header "llvm/BinaryFormat/WasmRelocs.def"
105 textual header "llvm/BinaryFormat/MsgPack.def"
110 umbrella "llvm/Config"
111 extern module LLVM_Extern_Config_Def "module.extern.modulemap"
112 module * { export * }
115 module LLVM_DebugInfo {
117 module DIContext { header "llvm/DebugInfo/DIContext.h" export * }
120 module LLVM_DebugInfo_DWARF {
123 umbrella "llvm/DebugInfo/DWARF"
124 module * { export * }
127 module LLVM_DebugInfo_PDB {
130 umbrella "llvm/DebugInfo/PDB"
131 module * { export * }
133 // Separate out this subdirectory; it's an optional component that depends on
134 // a separate library which might not be available.
136 // FIXME: There should be a better way to specify this.
137 exclude header "llvm/DebugInfo/PDB/DIA/DIADataStream.h"
138 exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h"
139 exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h"
140 exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h"
141 exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h"
142 exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h"
143 exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h"
144 exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h"
145 exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumTables.h"
146 exclude header "llvm/DebugInfo/PDB/DIA/DIAError.h"
147 exclude header "llvm/DebugInfo/PDB/DIA/DIAFrameData.h"
148 exclude header "llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h"
149 exclude header "llvm/DebugInfo/PDB/DIA/DIALineNumber.h"
150 exclude header "llvm/DebugInfo/PDB/DIA/DIARawSymbol.h"
151 exclude header "llvm/DebugInfo/PDB/DIA/DIASectionContrib.h"
152 exclude header "llvm/DebugInfo/PDB/DIA/DIASession.h"
153 exclude header "llvm/DebugInfo/PDB/DIA/DIASourceFile.h"
154 exclude header "llvm/DebugInfo/PDB/DIA/DIASupport.h"
155 exclude header "llvm/DebugInfo/PDB/DIA/DIATable.h"
156 exclude header "llvm/DebugInfo/PDB/DIA/DIAUtils.h"
159 module LLVM_DebugInfo_PDB_DIA {
162 umbrella "llvm/DebugInfo/PDB/DIA"
163 module * { export * }
166 module LLVM_DebugInfo_MSF {
169 umbrella "llvm/DebugInfo/MSF"
170 module * { export * }
173 module LLVM_DebugInfo_CodeView {
176 umbrella "llvm/DebugInfo/CodeView"
177 module * { export * }
179 // These are intended for (repeated) textual inclusion.
180 textual header "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
181 textual header "llvm/DebugInfo/CodeView/CodeViewTypes.def"
182 textual header "llvm/DebugInfo/CodeView/CodeViewSymbols.def"
185 module LLVM_DWARFLinker {
188 umbrella "llvm/DWARFLinker"
189 module * { export * }
192 module LLVM_ExecutionEngine {
195 umbrella "llvm/ExecutionEngine"
196 module * { export * }
198 // Exclude this; it's an optional component of the ExecutionEngine.
199 exclude header "llvm/ExecutionEngine/OProfileWrapper.h"
201 // Exclude these; they're intended to be included into only a single
202 // translation unit (or none) and aren't part of this module.
203 exclude header "llvm/ExecutionEngine/MCJIT.h"
204 exclude header "llvm/ExecutionEngine/Interpreter.h"
206 // Exclude headers from LLVM_OrcSupport.
207 exclude header "llvm/ExecutionEngine/Orc/Shared/OrcError.h"
210 module LLVM_FileCheck {
213 umbrella "llvm/FileCheck"
214 module * { export * }
217 module LLVM_Frontend_OpenMP {
220 umbrella "llvm/Frontend/OpenMP"
221 module * { export * }
223 exclude header "llvm/Frontend/OpenMP/OMPKinds.def"
226 // Orc utilities that don't depend only on Support (not ExecutionEngine or
227 // IR). This is a workaround for ExecutionEngine's broken layering, and will
228 // be removed in the future.
229 module LLVM_OrcSupport {
232 header "llvm/ExecutionEngine/Orc/Shared/OrcError.h"
239 // PassSupport.h and PassAnalysisSupport.h are made available only through
242 textual header "llvm/PassSupport.h"
243 textual header "llvm/PassAnalysisSupport.h"
247 module PassRegistry { header "llvm/PassRegistry.h" export * }
248 module InitializePasses { header "llvm/InitializePasses.h" export * }
255 module * { export * }
257 extern module LLVM_Extern_IR_Attributes_Gen "module.extern.modulemap"
258 extern module LLVM_Extern_IR_Intrinsics_Gen "module.extern.modulemap"
259 extern module LLVM_Extern_IR_Intrinsics_Enum "module.extern.modulemap"
261 // These are intended for (repeated) textual inclusion.
262 textual header "llvm/IR/ConstrainedOps.def"
263 textual header "llvm/IR/DebugInfoFlags.def"
264 textual header "llvm/IR/Instruction.def"
265 textual header "llvm/IR/Metadata.def"
266 textual header "llvm/IR/FixedMetadataKinds.def"
267 textual header "llvm/IR/Value.def"
268 textual header "llvm/IR/VPIntrinsics.def"
269 textual header "llvm/IR/RuntimeLibcalls.def"
272 module LLVM_IRReader {
274 umbrella "llvm/IRReader"
275 module * { export * }
278 module LLVM_LineEditor {
280 umbrella "llvm/LineEditor"
281 module * { export * }
287 module * { export * }
294 module * { export * }
299 umbrella "llvm/Object"
300 module * { export * }
305 umbrella "llvm/Option"
306 module * { export * }
309 module LLVM_ProfileData {
312 umbrella "llvm/ProfileData"
313 module * { export * }
315 textual header "llvm/ProfileData/InstrProfData.inc"
316 textual header "llvm/ProfileData/MemProfData.inc"
317 textual header "llvm/ProfileData/MIBEntryDef.inc"
320 // FIXME: Mislayered?
321 module LLVM_Support_TargetRegistry {
323 header "llvm/Support/TargetRegistry.h"
327 module LLVM_TableGen {
329 umbrella "llvm/TableGen"
330 module * { export * }
333 module LLVM_Transforms {
335 umbrella "llvm/Transforms"
337 module * { export * }
339 // Requires DEBUG_TYPE to be defined by including file.
340 exclude header "llvm/Transforms/Utils/InstructionWorklist.h"
343 extern module LLVM_Extern_Utils_DataTypes "module.extern.modulemap"
345 // Build the module with the tablegen-generated files needed by the
346 // TargetParser module before building the TargetParser module itself.
347 module TargetParserGen {
348 module AArch64TargetParserDef {
349 header "llvm/TargetParser/AArch64TargetParser.h"
350 extern module LLVM_Extern_TargetParser_Gen "module.extern.modulemap"
353 module RISCVTargetParserDef {
354 header "llvm/TargetParser/RISCVTargetParser.h"
355 extern module LLVM_Extern_TargetParser_Gen "module.extern.modulemap"
360 // A module covering ADT/ and Support/. These are intertwined and
361 // codependent, and notionally form a single module.
367 module * { export * }
373 umbrella "llvm/Demangle"
374 module * { export * }
376 textual header "llvm/Demangle/ItaniumNodes.def"
382 umbrella "llvm/Support"
383 module * { export * }
385 // Exclude this; it should only be used on Windows.
386 exclude header "llvm/Support/Windows/WindowsSupport.h"
388 // Exclude these; they are fundamentally non-modular.
389 exclude header "llvm/Support/PluginLoader.h"
390 exclude header "llvm/Support/Solaris/sys/regset.h"
391 textual header "llvm/Support/TargetOpcodes.def"
395 module TargetParser {
398 umbrella "llvm/TargetParser"
399 module * { export * }
401 // These are intended for textual inclusion.
402 textual header "llvm/TargetParser/ARMTargetParser.def"
403 textual header "llvm/TargetParser/CSKYTargetParser.def"
404 textual header "llvm/TargetParser/X86TargetParser.def"
405 textual header "llvm/TargetParser/LoongArchTargetParser.def"
406 textual header "llvm/TargetParser/PPCTargetParser.def"
409 // This part of the module is usable from both C and C++ code.
411 header "llvm/Support/ConvertUTF.h"
416 // This is used for a $src == $build compilation. Otherwise we use
417 // LLVM_Support_DataTypes_Build, defined in a module map that is
418 // copied into the build area.
419 module LLVM_Support_DataTypes_Src {
420 header "llvm/Support/DataTypes.h"
424 module LLVM_WindowsManifest {
426 umbrella "llvm/WindowsManifest"
427 module * { export * }