Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / include / module.modulemap
blob4c2ba437edb9f97c604038fa32cf22d14e391926
1 module LLVM_C {
2   umbrella "llvm-c"
3   module * { export * }
6 module LLVM_Analysis {
7   requires cplusplus
8   umbrella "llvm/Analysis"
9   module * { export * }
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 {
18   requires cplusplus
19   umbrella "llvm/AsmParser"
20   module * { export * }
23 module LLVM_CodeGenTypes {
24   requires cplusplus
26   module LLT {
27     header "llvm/CodeGen/LowLevelType.h" export *
28   }
29   module MVT {
30     header "llvm/CodeGen/MachineValueType.h" export *
31     extern module LLVM_Extern_CodeGenTypes_Gen "module.extern.modulemap"
32   }
35 // A module covering CodeGen/ and Target/. These are intertwined
36 // and codependent, and thus notionally form a single module.
37 module LLVM_Backend {
38   requires cplusplus
40   module CodeGen {
41     umbrella "llvm/CodeGen"
42     module * { export * }
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     exclude header "llvm/CodeGen/CodeGenPassBuilder.h"
51     // These are intended for (repeated) textual inclusion.
52     textual header "llvm/CodeGen/DIEValue.def"
53     textual header "llvm/CodeGen/MachinePassRegistry.def"
54   }
57 // FIXME: Make this as a submodule of LLVM_Backend again.
58 //        Doing so causes a linker error in clang-format.
59 module LLVM_Backend_Target {
60   umbrella "llvm/Target"
61   module * { export * }
64 module LLVM_Bitcode {
65  requires cplusplus
66  umbrella "llvm/Bitcode"
67  module * { export * }
70 module LLVM_Bitstream {
71  requires cplusplus
72  umbrella "llvm/Bitstream"
73  module * { export * }
76 module LLVM_BinaryFormat {
77     requires cplusplus
78     umbrella "llvm/BinaryFormat" module * { export * }
79     textual header "llvm/BinaryFormat/Dwarf.def"
80     textual header "llvm/BinaryFormat/DXContainerConstants.def"
81     textual header "llvm/BinaryFormat/DynamicTags.def"
82     textual header "llvm/BinaryFormat/MachO.def"
83     textual header "llvm/BinaryFormat/MinidumpConstants.def"
84     textual header "llvm/BinaryFormat/Swift.def"
85     textual header "llvm/BinaryFormat/ELFRelocs/AArch64.def"
86     textual header "llvm/BinaryFormat/ELFRelocs/AMDGPU.def"
87     textual header "llvm/BinaryFormat/ELFRelocs/ARM.def"
88     textual header "llvm/BinaryFormat/ELFRelocs/ARC.def"
89     textual header "llvm/BinaryFormat/ELFRelocs/AVR.def"
90     textual header "llvm/BinaryFormat/ELFRelocs/BPF.def"
91     textual header "llvm/BinaryFormat/ELFRelocs/CSKY.def"
92     textual header "llvm/BinaryFormat/ELFRelocs/Hexagon.def"
93     textual header "llvm/BinaryFormat/ELFRelocs/i386.def"
94     textual header "llvm/BinaryFormat/ELFRelocs/Lanai.def"
95     textual header "llvm/BinaryFormat/ELFRelocs/LoongArch.def"
96     textual header "llvm/BinaryFormat/ELFRelocs/M68k.def"
97     textual header "llvm/BinaryFormat/ELFRelocs/Mips.def"
98     textual header "llvm/BinaryFormat/ELFRelocs/MSP430.def"
99     textual header "llvm/BinaryFormat/ELFRelocs/PowerPC64.def"
100     textual header "llvm/BinaryFormat/ELFRelocs/PowerPC.def"
101     textual header "llvm/BinaryFormat/ELFRelocs/RISCV.def"
102     textual header "llvm/BinaryFormat/ELFRelocs/Sparc.def"
103     textual header "llvm/BinaryFormat/ELFRelocs/SystemZ.def"
104     textual header "llvm/BinaryFormat/ELFRelocs/VE.def"
105     textual header "llvm/BinaryFormat/ELFRelocs/x86_64.def"
106     textual header "llvm/BinaryFormat/ELFRelocs/Xtensa.def"
107     textual header "llvm/BinaryFormat/WasmRelocs.def"
108     textual header "llvm/BinaryFormat/MsgPack.def"
111 module LLVM_Config {
112   requires cplusplus
113   umbrella "llvm/Config"
114   extern module LLVM_Extern_Config_Def "module.extern.modulemap"
115   module * { export * }
118 module LLVM_DebugInfo {
119   requires cplusplus
120   module DIContext { header "llvm/DebugInfo/DIContext.h" export * }
123 module LLVM_DebugInfo_DWARF {
124   requires cplusplus
126   umbrella "llvm/DebugInfo/DWARF"
127   module * { export * }
130 module LLVM_DebugInfo_PDB {
131   requires cplusplus
133   umbrella "llvm/DebugInfo/PDB"
134   module * { export * }
136   // Separate out this subdirectory; it's an optional component that depends on
137   // a separate library which might not be available.
138   //
139   // FIXME: There should be a better way to specify this.
140   exclude header "llvm/DebugInfo/PDB/DIA/DIADataStream.h"
141   exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h"
142   exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h"
143   exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h"
144   exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h"
145   exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h"
146   exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h"
147   exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h"
148   exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumTables.h"
149   exclude header "llvm/DebugInfo/PDB/DIA/DIAError.h"
150   exclude header "llvm/DebugInfo/PDB/DIA/DIAFrameData.h"
151   exclude header "llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h"
152   exclude header "llvm/DebugInfo/PDB/DIA/DIALineNumber.h"
153   exclude header "llvm/DebugInfo/PDB/DIA/DIARawSymbol.h"
154   exclude header "llvm/DebugInfo/PDB/DIA/DIASectionContrib.h"
155   exclude header "llvm/DebugInfo/PDB/DIA/DIASession.h"
156   exclude header "llvm/DebugInfo/PDB/DIA/DIASourceFile.h"
157   exclude header "llvm/DebugInfo/PDB/DIA/DIASupport.h"
158   exclude header "llvm/DebugInfo/PDB/DIA/DIATable.h"
159   exclude header "llvm/DebugInfo/PDB/DIA/DIAUtils.h"
162 module LLVM_DebugInfo_PDB_DIA {
163   requires cplusplus
165   umbrella "llvm/DebugInfo/PDB/DIA"
166   module * { export * }
169 module LLVM_DebugInfo_MSF {
170   requires cplusplus
172   umbrella "llvm/DebugInfo/MSF"
173   module * { export * }
176 module LLVM_DebugInfo_CodeView {
177   requires cplusplus
179   umbrella "llvm/DebugInfo/CodeView"
180   module * { export * }
182   // These are intended for (repeated) textual inclusion.
183   textual header "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
184   textual header "llvm/DebugInfo/CodeView/CodeViewTypes.def"
185   textual header "llvm/DebugInfo/CodeView/CodeViewSymbols.def"
188 module LLVM_DWARFLinker {
189   requires cplusplus
191   umbrella "llvm/DWARFLinker"
192   module * { export * }
195 module LLVM_ExecutionEngine {
196   requires cplusplus
198   umbrella "llvm/ExecutionEngine"
199   module * { export * }
201   // Exclude this; it's an optional component of the ExecutionEngine.
202   exclude header "llvm/ExecutionEngine/OProfileWrapper.h"
204   // Exclude these; they're intended to be included into only a single
205   // translation unit (or none) and aren't part of this module.
206   exclude header "llvm/ExecutionEngine/MCJIT.h"
207   exclude header "llvm/ExecutionEngine/Interpreter.h"
209   // Exclude headers from LLVM_OrcSupport.
210   exclude header "llvm/ExecutionEngine/Orc/Shared/OrcError.h"
213 module LLVM_FileCheck {
214   requires cplusplus
216   umbrella "llvm/FileCheck"
217   module * { export * }
220 module LLVM_Frontend_OpenMP {
221   requires cplusplus
223   umbrella "llvm/Frontend/OpenMP"
224   module * { export * }
226   exclude header "llvm/Frontend/OpenMP/OMPKinds.def"
229 // Orc utilities that don't depend only on Support (not ExecutionEngine or
230 // IR). This is a workaround for ExecutionEngine's broken layering, and will
231 // be removed in the future.
232 module LLVM_OrcSupport {
233   requires cplusplus
235   header "llvm/ExecutionEngine/Orc/Shared/OrcError.h"
237   export *
240 module LLVM_Pass {
241   module Pass {
242     // PassSupport.h and PassAnalysisSupport.h are made available only through
243     // Pass.h.
244     header "llvm/Pass.h"
245     textual header "llvm/PassSupport.h"
246     textual header "llvm/PassAnalysisSupport.h"
247     export *
248   }
250   module PassRegistry { header "llvm/PassRegistry.h" export * }
251   module InitializePasses { header "llvm/InitializePasses.h" export * }
254 module LLVM_IR {
255   requires cplusplus
257   umbrella "llvm/IR"
258   module * { export * }
260   extern module LLVM_Extern_IR_Attributes_Gen "module.extern.modulemap"
261   extern module LLVM_Extern_IR_Intrinsics_Gen "module.extern.modulemap"
262   extern module LLVM_Extern_IR_Intrinsics_Enum "module.extern.modulemap"
264   // These are intended for (repeated) textual inclusion.
265   textual header "llvm/IR/ConstrainedOps.def"
266   textual header "llvm/IR/DebugInfoFlags.def"
267   textual header "llvm/IR/Instruction.def"
268   textual header "llvm/IR/Metadata.def"
269   textual header "llvm/IR/FixedMetadataKinds.def"
270   textual header "llvm/IR/Value.def"
271   textual header "llvm/IR/VPIntrinsics.def"
272   textual header "llvm/IR/RuntimeLibcalls.def"
275 module LLVM_IRReader {
276   requires cplusplus
277   umbrella "llvm/IRReader"
278   module * { export * }
281 module LLVM_LineEditor {
282   requires cplusplus
283   umbrella "llvm/LineEditor"
284   module * { export * }
287 module LLVM_LTO {
288   requires cplusplus
289   umbrella "llvm/LTO"
290   module * { export * }
293 module LLVM_MC {
294   requires cplusplus
296   umbrella "llvm/MC"
297   module * { export * }
300 module LLVM_Object {
301   requires cplusplus
302   umbrella "llvm/Object"
303   module * { export * }
306 module LLVM_Option {
307   requires cplusplus
308   umbrella "llvm/Option"
309   module * { export * }
312 module LLVM_ProfileData {
313   requires cplusplus
315   umbrella "llvm/ProfileData"
316   module * { export * }
318   textual header "llvm/ProfileData/InstrProfData.inc"
319   textual header "llvm/ProfileData/MemProfData.inc"
320   textual header "llvm/ProfileData/MIBEntryDef.inc"
323 // FIXME: Mislayered?
324 module LLVM_Support_TargetRegistry {
325   requires cplusplus
326   header "llvm/Support/TargetRegistry.h"
327   export *
330 module LLVM_TableGen {
331   requires cplusplus
332   umbrella "llvm/TableGen"
333   module * { export * }
336 module LLVM_Transforms {
337   requires cplusplus
338   umbrella "llvm/Transforms"
340   module * { export * }
342   // Requires DEBUG_TYPE to be defined by including file.
343   exclude header "llvm/Transforms/Utils/InstructionWorklist.h"
346 extern module LLVM_Extern_Utils_DataTypes "module.extern.modulemap"
348 // Build the module with the tablegen-generated files needed by the
349 // TargetParser module before building the TargetParser module itself.
350 module TargetParserGen {
351   module RISCVTargetParserDef {
352     header "llvm/TargetParser/RISCVTargetParser.h"
353     extern module LLVM_Extern_TargetParser_Gen "module.extern.modulemap"
354     export *
355   }
358 // A module covering ADT/ and Support/. These are intertwined and
359 // codependent, and notionally form a single module.
360 module LLVM_Utils {
361   module ADT {
362     requires cplusplus
364     umbrella "llvm/ADT"
365     module * { export * }
366   }
368   module Demangle {
369     requires cplusplus
371     umbrella "llvm/Demangle"
372     module * { export * }
374     textual header "llvm/Demangle/ItaniumNodes.def"
375   }
377   module Support {
378     requires cplusplus
380     umbrella "llvm/Support"
381     module * { export * }
383     // Exclude this; deprecated.
384     exclude header "llvm/Support/Host.h"
386     // Exclude this; it should only be used on Windows.
387     exclude header "llvm/Support/Windows/WindowsSupport.h"
389     // Exclude these; they are fundamentally non-modular.
390     exclude header "llvm/Support/PluginLoader.h"
391     exclude header "llvm/Support/Solaris/sys/regset.h"
392     textual header "llvm/Support/TargetOpcodes.def"
394   }
396   module TargetParser {
397     requires cplusplus
399     umbrella "llvm/TargetParser"
400     module * { export * }
402     // These are intended for textual inclusion.
403     textual header "llvm/TargetParser/ARMTargetParser.def"
404     textual header "llvm/TargetParser/CSKYTargetParser.def"
405     textual header "llvm/TargetParser/X86TargetParser.def"
406     textual header "llvm/TargetParser/LoongArchTargetParser.def"
407   }
409   // This part of the module is usable from both C and C++ code.
410   module ConvertUTF {
411     header "llvm/Support/ConvertUTF.h"
412     export *
413   }
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"
421   export *
424 module LLVM_WindowsManifest {
425   requires cplusplus
426   umbrella "llvm/WindowsManifest"
427   module * { export * }