xref: /llvm-project/llvm/include/module.modulemap (revision dcc141bc0bb471ba209c89aca4288dc5cd2ef8bc)
124f36a21SVolodymyr Sapsaimodule LLVM_C {
224f36a21SVolodymyr Sapsai  umbrella "llvm-c"
324f36a21SVolodymyr Sapsai  module * { export * }
424f36a21SVolodymyr Sapsai}
524f36a21SVolodymyr Sapsai
624f36a21SVolodymyr Sapsaimodule LLVM_Analysis {
724f36a21SVolodymyr Sapsai  requires cplusplus
824f36a21SVolodymyr Sapsai  umbrella "llvm/Analysis"
924f36a21SVolodymyr Sapsai  module * { export * }
1024f36a21SVolodymyr Sapsai
1124f36a21SVolodymyr Sapsai  // This is intended for (repeated) textual inclusion.
1224f36a21SVolodymyr Sapsai  textual header "llvm/Analysis/ScalarFuncs.def"
1324f36a21SVolodymyr Sapsai  textual header "llvm/Analysis/TargetLibraryInfo.def"
1424f36a21SVolodymyr Sapsai  textual header "llvm/Analysis/VecFuncs.def"
1524f36a21SVolodymyr Sapsai}
1624f36a21SVolodymyr Sapsai
1724f36a21SVolodymyr Sapsaimodule LLVM_AsmParser {
1824f36a21SVolodymyr Sapsai  requires cplusplus
1924f36a21SVolodymyr Sapsai  umbrella "llvm/AsmParser"
2024f36a21SVolodymyr Sapsai  module * { export * }
2124f36a21SVolodymyr Sapsai}
2224f36a21SVolodymyr Sapsai
2324f36a21SVolodymyr Sapsaimodule LLVM_CodeGenTypes {
2424f36a21SVolodymyr Sapsai  requires cplusplus
2524f36a21SVolodymyr Sapsai
2624f36a21SVolodymyr Sapsai  module LLT {
27184ca395SNico Weber    header "llvm/CodeGenTypes/LowLevelType.h" export *
2824f36a21SVolodymyr Sapsai  }
2924f36a21SVolodymyr Sapsai  module MVT {
30184ca395SNico Weber    header "llvm/CodeGenTypes/MachineValueType.h" export *
3124f36a21SVolodymyr Sapsai    extern module LLVM_Extern_CodeGenTypes_Gen "module.extern.modulemap"
3224f36a21SVolodymyr Sapsai  }
3324f36a21SVolodymyr Sapsai}
3424f36a21SVolodymyr Sapsai
3524f36a21SVolodymyr Sapsai// A module covering CodeGen/ and Target/. These are intertwined
3624f36a21SVolodymyr Sapsai// and codependent, and thus notionally form a single module.
3724f36a21SVolodymyr Sapsaimodule LLVM_Backend {
3824f36a21SVolodymyr Sapsai  requires cplusplus
3924f36a21SVolodymyr Sapsai
4024f36a21SVolodymyr Sapsai  module CodeGen {
4124f36a21SVolodymyr Sapsai    umbrella "llvm/CodeGen"
4224f36a21SVolodymyr Sapsai    module * { export * }
4324f36a21SVolodymyr Sapsai
4424f36a21SVolodymyr Sapsai    // Exclude these; they're intended to be included into only a single
4524f36a21SVolodymyr Sapsai    // translation unit (or none) and aren't part of this module.
4624f36a21SVolodymyr Sapsai    exclude header "llvm/CodeGen/LinkAllAsmWriterComponents.h"
4724f36a21SVolodymyr Sapsai    exclude header "llvm/CodeGen/LinkAllCodegenComponents.h"
4824f36a21SVolodymyr Sapsai
4924f36a21SVolodymyr Sapsai    // These are intended for (repeated) textual inclusion.
5024f36a21SVolodymyr Sapsai    textual header "llvm/CodeGen/DIEValue.def"
5124f36a21SVolodymyr Sapsai  }
5224f36a21SVolodymyr Sapsai}
5324f36a21SVolodymyr Sapsai
5424f36a21SVolodymyr Sapsai// FIXME: Make this as a submodule of LLVM_Backend again.
5524f36a21SVolodymyr Sapsai//        Doing so causes a linker error in clang-format.
5624f36a21SVolodymyr Sapsaimodule LLVM_Backend_Target {
5724f36a21SVolodymyr Sapsai  umbrella "llvm/Target"
5824f36a21SVolodymyr Sapsai  module * { export * }
5924f36a21SVolodymyr Sapsai}
6024f36a21SVolodymyr Sapsai
6124f36a21SVolodymyr Sapsaimodule LLVM_Bitcode {
6224f36a21SVolodymyr Sapsai requires cplusplus
6324f36a21SVolodymyr Sapsai umbrella "llvm/Bitcode"
6424f36a21SVolodymyr Sapsai module * { export * }
6524f36a21SVolodymyr Sapsai}
6624f36a21SVolodymyr Sapsai
6724f36a21SVolodymyr Sapsaimodule LLVM_Bitstream {
6824f36a21SVolodymyr Sapsai requires cplusplus
6924f36a21SVolodymyr Sapsai umbrella "llvm/Bitstream"
7024f36a21SVolodymyr Sapsai module * { export * }
7124f36a21SVolodymyr Sapsai}
7224f36a21SVolodymyr Sapsai
7324f36a21SVolodymyr Sapsaimodule LLVM_BinaryFormat {
7424f36a21SVolodymyr Sapsai    requires cplusplus
7524f36a21SVolodymyr Sapsai    umbrella "llvm/BinaryFormat" module * { export * }
7624f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/Dwarf.def"
7724f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/DXContainerConstants.def"
7824f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/DynamicTags.def"
7924f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/MachO.def"
8024f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/MinidumpConstants.def"
8124f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/Swift.def"
8224f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/AArch64.def"
8324f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/AMDGPU.def"
8424f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/ARM.def"
8524f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/ARC.def"
8624f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/AVR.def"
8724f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/BPF.def"
8824f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/CSKY.def"
8924f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/Hexagon.def"
9024f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/i386.def"
9124f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/Lanai.def"
9224f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/LoongArch.def"
9324f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/M68k.def"
9424f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/Mips.def"
9524f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/MSP430.def"
9624f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/PowerPC64.def"
9724f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/PowerPC.def"
9824f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/RISCV.def"
99db408accSVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/RISCV_nonstandard.def"
10024f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/Sparc.def"
10124f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/SystemZ.def"
10224f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/VE.def"
10324f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/x86_64.def"
10424f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/ELFRelocs/Xtensa.def"
10524f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/WasmRelocs.def"
10624f36a21SVolodymyr Sapsai    textual header "llvm/BinaryFormat/MsgPack.def"
10724f36a21SVolodymyr Sapsai}
10824f36a21SVolodymyr Sapsai
10924f36a21SVolodymyr Sapsaimodule LLVM_Config {
11024f36a21SVolodymyr Sapsai  requires cplusplus
11124f36a21SVolodymyr Sapsai  umbrella "llvm/Config"
11224f36a21SVolodymyr Sapsai  extern module LLVM_Extern_Config_Def "module.extern.modulemap"
11324f36a21SVolodymyr Sapsai  module * { export * }
11424f36a21SVolodymyr Sapsai}
11524f36a21SVolodymyr Sapsai
11624f36a21SVolodymyr Sapsaimodule LLVM_DebugInfo {
11724f36a21SVolodymyr Sapsai  requires cplusplus
11824f36a21SVolodymyr Sapsai  module DIContext { header "llvm/DebugInfo/DIContext.h" export * }
11924f36a21SVolodymyr Sapsai}
12024f36a21SVolodymyr Sapsai
12124f36a21SVolodymyr Sapsaimodule LLVM_DebugInfo_DWARF {
12224f36a21SVolodymyr Sapsai  requires cplusplus
12324f36a21SVolodymyr Sapsai
12424f36a21SVolodymyr Sapsai  umbrella "llvm/DebugInfo/DWARF"
12524f36a21SVolodymyr Sapsai  module * { export * }
12624f36a21SVolodymyr Sapsai}
12724f36a21SVolodymyr Sapsai
12824f36a21SVolodymyr Sapsaimodule LLVM_DebugInfo_PDB {
12924f36a21SVolodymyr Sapsai  requires cplusplus
13024f36a21SVolodymyr Sapsai
13124f36a21SVolodymyr Sapsai  umbrella "llvm/DebugInfo/PDB"
13224f36a21SVolodymyr Sapsai  module * { export * }
13324f36a21SVolodymyr Sapsai
13424f36a21SVolodymyr Sapsai  // Separate out this subdirectory; it's an optional component that depends on
13524f36a21SVolodymyr Sapsai  // a separate library which might not be available.
13624f36a21SVolodymyr Sapsai  //
13724f36a21SVolodymyr Sapsai  // FIXME: There should be a better way to specify this.
13824f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIADataStream.h"
13924f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h"
14024f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h"
14124f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h"
14224f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h"
14324f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h"
14424f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h"
14524f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h"
14624f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumTables.h"
14724f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIAError.h"
14824f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIAFrameData.h"
14924f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h"
15024f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIALineNumber.h"
15124f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIARawSymbol.h"
15224f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIASectionContrib.h"
15324f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIASession.h"
15424f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIASourceFile.h"
15524f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIASupport.h"
15624f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIATable.h"
15724f36a21SVolodymyr Sapsai  exclude header "llvm/DebugInfo/PDB/DIA/DIAUtils.h"
15824f36a21SVolodymyr Sapsai}
15924f36a21SVolodymyr Sapsai
16024f36a21SVolodymyr Sapsaimodule LLVM_DebugInfo_PDB_DIA {
16124f36a21SVolodymyr Sapsai  requires cplusplus
16224f36a21SVolodymyr Sapsai
16324f36a21SVolodymyr Sapsai  umbrella "llvm/DebugInfo/PDB/DIA"
16424f36a21SVolodymyr Sapsai  module * { export * }
16524f36a21SVolodymyr Sapsai}
16624f36a21SVolodymyr Sapsai
16724f36a21SVolodymyr Sapsaimodule LLVM_DebugInfo_MSF {
16824f36a21SVolodymyr Sapsai  requires cplusplus
16924f36a21SVolodymyr Sapsai
17024f36a21SVolodymyr Sapsai  umbrella "llvm/DebugInfo/MSF"
17124f36a21SVolodymyr Sapsai  module * { export * }
17224f36a21SVolodymyr Sapsai}
17324f36a21SVolodymyr Sapsai
17424f36a21SVolodymyr Sapsaimodule LLVM_DebugInfo_CodeView {
17524f36a21SVolodymyr Sapsai  requires cplusplus
17624f36a21SVolodymyr Sapsai
17724f36a21SVolodymyr Sapsai  umbrella "llvm/DebugInfo/CodeView"
17824f36a21SVolodymyr Sapsai  module * { export * }
17924f36a21SVolodymyr Sapsai
18024f36a21SVolodymyr Sapsai  // These are intended for (repeated) textual inclusion.
18124f36a21SVolodymyr Sapsai  textual header "llvm/DebugInfo/CodeView/CodeViewRegisters.def"
18224f36a21SVolodymyr Sapsai  textual header "llvm/DebugInfo/CodeView/CodeViewTypes.def"
18324f36a21SVolodymyr Sapsai  textual header "llvm/DebugInfo/CodeView/CodeViewSymbols.def"
18424f36a21SVolodymyr Sapsai}
18524f36a21SVolodymyr Sapsai
18624f36a21SVolodymyr Sapsaimodule LLVM_DWARFLinker {
18724f36a21SVolodymyr Sapsai  requires cplusplus
18824f36a21SVolodymyr Sapsai
18924f36a21SVolodymyr Sapsai  umbrella "llvm/DWARFLinker"
19024f36a21SVolodymyr Sapsai  module * { export * }
19124f36a21SVolodymyr Sapsai}
19224f36a21SVolodymyr Sapsai
19324f36a21SVolodymyr Sapsaimodule LLVM_ExecutionEngine {
19424f36a21SVolodymyr Sapsai  requires cplusplus
19524f36a21SVolodymyr Sapsai
19624f36a21SVolodymyr Sapsai  umbrella "llvm/ExecutionEngine"
19724f36a21SVolodymyr Sapsai  module * { export * }
19824f36a21SVolodymyr Sapsai
19924f36a21SVolodymyr Sapsai  // Exclude this; it's an optional component of the ExecutionEngine.
20024f36a21SVolodymyr Sapsai  exclude header "llvm/ExecutionEngine/OProfileWrapper.h"
20124f36a21SVolodymyr Sapsai
20224f36a21SVolodymyr Sapsai  // Exclude these; they're intended to be included into only a single
20324f36a21SVolodymyr Sapsai  // translation unit (or none) and aren't part of this module.
20424f36a21SVolodymyr Sapsai  exclude header "llvm/ExecutionEngine/MCJIT.h"
20524f36a21SVolodymyr Sapsai  exclude header "llvm/ExecutionEngine/Interpreter.h"
20624f36a21SVolodymyr Sapsai
20724f36a21SVolodymyr Sapsai  // Exclude headers from LLVM_OrcSupport.
20824f36a21SVolodymyr Sapsai  exclude header "llvm/ExecutionEngine/Orc/Shared/OrcError.h"
20924f36a21SVolodymyr Sapsai}
21024f36a21SVolodymyr Sapsai
21124f36a21SVolodymyr Sapsaimodule LLVM_FileCheck {
21224f36a21SVolodymyr Sapsai  requires cplusplus
21324f36a21SVolodymyr Sapsai
21424f36a21SVolodymyr Sapsai  umbrella "llvm/FileCheck"
21524f36a21SVolodymyr Sapsai  module * { export * }
21624f36a21SVolodymyr Sapsai}
21724f36a21SVolodymyr Sapsai
21824f36a21SVolodymyr Sapsaimodule LLVM_Frontend_OpenMP {
21924f36a21SVolodymyr Sapsai  requires cplusplus
22024f36a21SVolodymyr Sapsai
22124f36a21SVolodymyr Sapsai  umbrella "llvm/Frontend/OpenMP"
22224f36a21SVolodymyr Sapsai  module * { export * }
22324f36a21SVolodymyr Sapsai
22424f36a21SVolodymyr Sapsai  exclude header "llvm/Frontend/OpenMP/OMPKinds.def"
22524f36a21SVolodymyr Sapsai}
22624f36a21SVolodymyr Sapsai
22724f36a21SVolodymyr Sapsai// Orc utilities that don't depend only on Support (not ExecutionEngine or
22824f36a21SVolodymyr Sapsai// IR). This is a workaround for ExecutionEngine's broken layering, and will
22924f36a21SVolodymyr Sapsai// be removed in the future.
23024f36a21SVolodymyr Sapsaimodule LLVM_OrcSupport {
23124f36a21SVolodymyr Sapsai  requires cplusplus
23224f36a21SVolodymyr Sapsai
23324f36a21SVolodymyr Sapsai  header "llvm/ExecutionEngine/Orc/Shared/OrcError.h"
23424f36a21SVolodymyr Sapsai
23524f36a21SVolodymyr Sapsai  export *
23624f36a21SVolodymyr Sapsai}
23724f36a21SVolodymyr Sapsai
23824f36a21SVolodymyr Sapsaimodule LLVM_Pass {
23924f36a21SVolodymyr Sapsai  module Pass {
24024f36a21SVolodymyr Sapsai    // PassSupport.h and PassAnalysisSupport.h are made available only through
24124f36a21SVolodymyr Sapsai    // Pass.h.
24224f36a21SVolodymyr Sapsai    header "llvm/Pass.h"
24324f36a21SVolodymyr Sapsai    textual header "llvm/PassSupport.h"
24424f36a21SVolodymyr Sapsai    textual header "llvm/PassAnalysisSupport.h"
24524f36a21SVolodymyr Sapsai    export *
24624f36a21SVolodymyr Sapsai  }
24724f36a21SVolodymyr Sapsai
24824f36a21SVolodymyr Sapsai  module PassRegistry { header "llvm/PassRegistry.h" export * }
24924f36a21SVolodymyr Sapsai  module InitializePasses { header "llvm/InitializePasses.h" export * }
25024f36a21SVolodymyr Sapsai}
25124f36a21SVolodymyr Sapsai
25224f36a21SVolodymyr Sapsaimodule LLVM_IR {
25324f36a21SVolodymyr Sapsai  requires cplusplus
25424f36a21SVolodymyr Sapsai
25524f36a21SVolodymyr Sapsai  umbrella "llvm/IR"
25624f36a21SVolodymyr Sapsai  module * { export * }
25724f36a21SVolodymyr Sapsai
25824f36a21SVolodymyr Sapsai  extern module LLVM_Extern_IR_Attributes_Gen "module.extern.modulemap"
25924f36a21SVolodymyr Sapsai  extern module LLVM_Extern_IR_Intrinsics_Gen "module.extern.modulemap"
26024f36a21SVolodymyr Sapsai  extern module LLVM_Extern_IR_Intrinsics_Enum "module.extern.modulemap"
26124f36a21SVolodymyr Sapsai
26224f36a21SVolodymyr Sapsai  // These are intended for (repeated) textual inclusion.
26324f36a21SVolodymyr Sapsai  textual header "llvm/IR/ConstrainedOps.def"
26424f36a21SVolodymyr Sapsai  textual header "llvm/IR/DebugInfoFlags.def"
26524f36a21SVolodymyr Sapsai  textual header "llvm/IR/Instruction.def"
26624f36a21SVolodymyr Sapsai  textual header "llvm/IR/Metadata.def"
26724f36a21SVolodymyr Sapsai  textual header "llvm/IR/FixedMetadataKinds.def"
26824f36a21SVolodymyr Sapsai  textual header "llvm/IR/Value.def"
26924f36a21SVolodymyr Sapsai  textual header "llvm/IR/VPIntrinsics.def"
27024f36a21SVolodymyr Sapsai  textual header "llvm/IR/RuntimeLibcalls.def"
27124f36a21SVolodymyr Sapsai}
27224f36a21SVolodymyr Sapsai
27324f36a21SVolodymyr Sapsaimodule LLVM_IRReader {
27424f36a21SVolodymyr Sapsai  requires cplusplus
27524f36a21SVolodymyr Sapsai  umbrella "llvm/IRReader"
27624f36a21SVolodymyr Sapsai  module * { export * }
27724f36a21SVolodymyr Sapsai}
27824f36a21SVolodymyr Sapsai
27924f36a21SVolodymyr Sapsaimodule LLVM_LineEditor {
28024f36a21SVolodymyr Sapsai  requires cplusplus
28124f36a21SVolodymyr Sapsai  umbrella "llvm/LineEditor"
28224f36a21SVolodymyr Sapsai  module * { export * }
28324f36a21SVolodymyr Sapsai}
28424f36a21SVolodymyr Sapsai
28524f36a21SVolodymyr Sapsaimodule LLVM_LTO {
28624f36a21SVolodymyr Sapsai  requires cplusplus
28724f36a21SVolodymyr Sapsai  umbrella "llvm/LTO"
28824f36a21SVolodymyr Sapsai  module * { export * }
28924f36a21SVolodymyr Sapsai}
29024f36a21SVolodymyr Sapsai
29124f36a21SVolodymyr Sapsaimodule LLVM_MC {
29224f36a21SVolodymyr Sapsai  requires cplusplus
29324f36a21SVolodymyr Sapsai
29424f36a21SVolodymyr Sapsai  umbrella "llvm/MC"
29524f36a21SVolodymyr Sapsai  module * { export * }
29624f36a21SVolodymyr Sapsai}
29724f36a21SVolodymyr Sapsai
29824f36a21SVolodymyr Sapsaimodule LLVM_Object {
29924f36a21SVolodymyr Sapsai  requires cplusplus
30024f36a21SVolodymyr Sapsai  umbrella "llvm/Object"
30124f36a21SVolodymyr Sapsai  module * { export * }
30224f36a21SVolodymyr Sapsai}
30324f36a21SVolodymyr Sapsai
30424f36a21SVolodymyr Sapsaimodule LLVM_Option {
30524f36a21SVolodymyr Sapsai  requires cplusplus
30624f36a21SVolodymyr Sapsai  umbrella "llvm/Option"
30724f36a21SVolodymyr Sapsai  module * { export * }
30824f36a21SVolodymyr Sapsai}
30924f36a21SVolodymyr Sapsai
31024f36a21SVolodymyr Sapsaimodule LLVM_ProfileData {
31124f36a21SVolodymyr Sapsai  requires cplusplus
31224f36a21SVolodymyr Sapsai
31324f36a21SVolodymyr Sapsai  umbrella "llvm/ProfileData"
31424f36a21SVolodymyr Sapsai  module * { export * }
31524f36a21SVolodymyr Sapsai
31624f36a21SVolodymyr Sapsai  textual header "llvm/ProfileData/InstrProfData.inc"
31724f36a21SVolodymyr Sapsai  textual header "llvm/ProfileData/MemProfData.inc"
31824f36a21SVolodymyr Sapsai  textual header "llvm/ProfileData/MIBEntryDef.inc"
31924f36a21SVolodymyr Sapsai}
32024f36a21SVolodymyr Sapsai
32124f36a21SVolodymyr Sapsai// FIXME: Mislayered?
32224f36a21SVolodymyr Sapsaimodule LLVM_Support_TargetRegistry {
32324f36a21SVolodymyr Sapsai  requires cplusplus
32424f36a21SVolodymyr Sapsai  header "llvm/Support/TargetRegistry.h"
32524f36a21SVolodymyr Sapsai  export *
32624f36a21SVolodymyr Sapsai}
32724f36a21SVolodymyr Sapsai
32824f36a21SVolodymyr Sapsaimodule LLVM_TableGen {
32924f36a21SVolodymyr Sapsai  requires cplusplus
33024f36a21SVolodymyr Sapsai  umbrella "llvm/TableGen"
33124f36a21SVolodymyr Sapsai  module * { export * }
33224f36a21SVolodymyr Sapsai}
33324f36a21SVolodymyr Sapsai
33424f36a21SVolodymyr Sapsaimodule LLVM_Transforms {
33524f36a21SVolodymyr Sapsai  requires cplusplus
33624f36a21SVolodymyr Sapsai  umbrella "llvm/Transforms"
33724f36a21SVolodymyr Sapsai
33824f36a21SVolodymyr Sapsai  module * { export * }
33924f36a21SVolodymyr Sapsai
34024f36a21SVolodymyr Sapsai  // Requires DEBUG_TYPE to be defined by including file.
34124f36a21SVolodymyr Sapsai  exclude header "llvm/Transforms/Utils/InstructionWorklist.h"
34224f36a21SVolodymyr Sapsai}
34324f36a21SVolodymyr Sapsai
34424f36a21SVolodymyr Sapsaiextern module LLVM_Extern_Utils_DataTypes "module.extern.modulemap"
34524f36a21SVolodymyr Sapsai
34624f36a21SVolodymyr Sapsai// Build the module with the tablegen-generated files needed by the
34724f36a21SVolodymyr Sapsai// TargetParser module before building the TargetParser module itself.
34824f36a21SVolodymyr Sapsaimodule TargetParserGen {
3496c369cf9STomas Matheson  module AArch64TargetParserDef {
350f33e2369SQiongsi Wu    textual header "llvm/TargetParser/AArch64CPUFeatures.inc"
351*dcc141bcSCyndy Ishida    textual header "llvm/TargetParser/AArch64FeatPriorities.inc"
3526c369cf9STomas Matheson    header "llvm/TargetParser/AArch64TargetParser.h"
3536c369cf9STomas Matheson    extern module LLVM_Extern_TargetParser_Gen "module.extern.modulemap"
3546c369cf9STomas Matheson    export *
3556c369cf9STomas Matheson  }
35624f36a21SVolodymyr Sapsai  module RISCVTargetParserDef {
35724f36a21SVolodymyr Sapsai    header "llvm/TargetParser/RISCVTargetParser.h"
35824f36a21SVolodymyr Sapsai    extern module LLVM_Extern_TargetParser_Gen "module.extern.modulemap"
35924f36a21SVolodymyr Sapsai    export *
36024f36a21SVolodymyr Sapsai  }
36124f36a21SVolodymyr Sapsai}
36224f36a21SVolodymyr Sapsai
36324f36a21SVolodymyr Sapsai// A module covering ADT/ and Support/. These are intertwined and
36424f36a21SVolodymyr Sapsai// codependent, and notionally form a single module.
36524f36a21SVolodymyr Sapsaimodule LLVM_Utils {
36624f36a21SVolodymyr Sapsai  module ADT {
36724f36a21SVolodymyr Sapsai    requires cplusplus
36824f36a21SVolodymyr Sapsai
36924f36a21SVolodymyr Sapsai    umbrella "llvm/ADT"
37024f36a21SVolodymyr Sapsai    module * { export * }
37124f36a21SVolodymyr Sapsai  }
37224f36a21SVolodymyr Sapsai
37324f36a21SVolodymyr Sapsai  module Demangle {
37424f36a21SVolodymyr Sapsai    requires cplusplus
37524f36a21SVolodymyr Sapsai
37624f36a21SVolodymyr Sapsai    umbrella "llvm/Demangle"
37724f36a21SVolodymyr Sapsai    module * { export * }
37824f36a21SVolodymyr Sapsai
37924f36a21SVolodymyr Sapsai    textual header "llvm/Demangle/ItaniumNodes.def"
38024f36a21SVolodymyr Sapsai  }
38124f36a21SVolodymyr Sapsai
38224f36a21SVolodymyr Sapsai  module Support {
38324f36a21SVolodymyr Sapsai    requires cplusplus
38424f36a21SVolodymyr Sapsai
38524f36a21SVolodymyr Sapsai    umbrella "llvm/Support"
38624f36a21SVolodymyr Sapsai    module * { export * }
38724f36a21SVolodymyr Sapsai
38824f36a21SVolodymyr Sapsai    // Exclude this; it should only be used on Windows.
38924f36a21SVolodymyr Sapsai    exclude header "llvm/Support/Windows/WindowsSupport.h"
39024f36a21SVolodymyr Sapsai
39124f36a21SVolodymyr Sapsai    // Exclude these; they are fundamentally non-modular.
39224f36a21SVolodymyr Sapsai    exclude header "llvm/Support/PluginLoader.h"
39324f36a21SVolodymyr Sapsai    exclude header "llvm/Support/Solaris/sys/regset.h"
39424f36a21SVolodymyr Sapsai    textual header "llvm/Support/TargetOpcodes.def"
39524f36a21SVolodymyr Sapsai
39624f36a21SVolodymyr Sapsai  }
39724f36a21SVolodymyr Sapsai
39824f36a21SVolodymyr Sapsai  module TargetParser {
39924f36a21SVolodymyr Sapsai    requires cplusplus
40024f36a21SVolodymyr Sapsai
40124f36a21SVolodymyr Sapsai    umbrella "llvm/TargetParser"
40224f36a21SVolodymyr Sapsai    module * { export * }
40324f36a21SVolodymyr Sapsai
40424f36a21SVolodymyr Sapsai    // These are intended for textual inclusion.
40524f36a21SVolodymyr Sapsai    textual header "llvm/TargetParser/ARMTargetParser.def"
40624f36a21SVolodymyr Sapsai    textual header "llvm/TargetParser/CSKYTargetParser.def"
40724f36a21SVolodymyr Sapsai    textual header "llvm/TargetParser/X86TargetParser.def"
40824f36a21SVolodymyr Sapsai    textual header "llvm/TargetParser/LoongArchTargetParser.def"
409649ecf88SAdrian Prantl    textual header "llvm/TargetParser/PPCTargetParser.def"
41024f36a21SVolodymyr Sapsai  }
41124f36a21SVolodymyr Sapsai
41224f36a21SVolodymyr Sapsai  // This part of the module is usable from both C and C++ code.
41324f36a21SVolodymyr Sapsai  module ConvertUTF {
41424f36a21SVolodymyr Sapsai    header "llvm/Support/ConvertUTF.h"
41524f36a21SVolodymyr Sapsai    export *
41624f36a21SVolodymyr Sapsai  }
41724f36a21SVolodymyr Sapsai}
41824f36a21SVolodymyr Sapsai
41924f36a21SVolodymyr Sapsai// This is used for a $src == $build compilation. Otherwise we use
42024f36a21SVolodymyr Sapsai// LLVM_Support_DataTypes_Build, defined in a module map that is
42124f36a21SVolodymyr Sapsai// copied into the build area.
42224f36a21SVolodymyr Sapsaimodule LLVM_Support_DataTypes_Src {
42324f36a21SVolodymyr Sapsai  header "llvm/Support/DataTypes.h"
42424f36a21SVolodymyr Sapsai  export *
42524f36a21SVolodymyr Sapsai}
42624f36a21SVolodymyr Sapsai
42724f36a21SVolodymyr Sapsaimodule LLVM_WindowsManifest {
42824f36a21SVolodymyr Sapsai  requires cplusplus
42924f36a21SVolodymyr Sapsai  umbrella "llvm/WindowsManifest"
43024f36a21SVolodymyr Sapsai  module * { export * }
43124f36a21SVolodymyr Sapsai}
432f33e2369SQiongsi Wu
433f33e2369SQiongsi Wumodule LLVM_SandboxIR {
434f33e2369SQiongsi Wu  requires cplusplus
435f33e2369SQiongsi Wu
436f33e2369SQiongsi Wu  umbrella "llvm/SandboxIR"
437f33e2369SQiongsi Wu  module * { export * }
438f33e2369SQiongsi Wu
439f33e2369SQiongsi Wu  textual header "llvm/SandboxIR/Values.def"
440f33e2369SQiongsi Wu}
441