106c3fb27SDimitry Andricmodule LLVM_C { 206c3fb27SDimitry Andric umbrella "llvm-c" 306c3fb27SDimitry Andric module * { export * } 406c3fb27SDimitry Andric} 506c3fb27SDimitry Andric 606c3fb27SDimitry Andricmodule LLVM_Analysis { 706c3fb27SDimitry Andric requires cplusplus 806c3fb27SDimitry Andric umbrella "llvm/Analysis" 906c3fb27SDimitry Andric module * { export * } 1006c3fb27SDimitry Andric 1106c3fb27SDimitry Andric // This is intended for (repeated) textual inclusion. 1206c3fb27SDimitry Andric textual header "llvm/Analysis/ScalarFuncs.def" 1306c3fb27SDimitry Andric textual header "llvm/Analysis/TargetLibraryInfo.def" 1406c3fb27SDimitry Andric textual header "llvm/Analysis/VecFuncs.def" 1506c3fb27SDimitry Andric} 1606c3fb27SDimitry Andric 1706c3fb27SDimitry Andricmodule LLVM_AsmParser { 1806c3fb27SDimitry Andric requires cplusplus 1906c3fb27SDimitry Andric umbrella "llvm/AsmParser" 2006c3fb27SDimitry Andric module * { export * } 2106c3fb27SDimitry Andric} 2206c3fb27SDimitry Andric 2306c3fb27SDimitry Andricmodule LLVM_CodeGenTypes { 2406c3fb27SDimitry Andric requires cplusplus 2506c3fb27SDimitry Andric 2606c3fb27SDimitry Andric module LLT { 270fca6ea1SDimitry Andric header "llvm/CodeGenTypes/LowLevelType.h" export * 2806c3fb27SDimitry Andric } 2906c3fb27SDimitry Andric module MVT { 300fca6ea1SDimitry Andric header "llvm/CodeGenTypes/MachineValueType.h" export * 3106c3fb27SDimitry Andric extern module LLVM_Extern_CodeGenTypes_Gen "module.extern.modulemap" 3206c3fb27SDimitry Andric } 3306c3fb27SDimitry Andric} 3406c3fb27SDimitry Andric 3506c3fb27SDimitry Andric// A module covering CodeGen/ and Target/. These are intertwined 3606c3fb27SDimitry Andric// and codependent, and thus notionally form a single module. 3706c3fb27SDimitry Andricmodule LLVM_Backend { 3806c3fb27SDimitry Andric requires cplusplus 3906c3fb27SDimitry Andric 4006c3fb27SDimitry Andric module CodeGen { 4106c3fb27SDimitry Andric umbrella "llvm/CodeGen" 4206c3fb27SDimitry Andric module * { export * } 4306c3fb27SDimitry Andric 4406c3fb27SDimitry Andric // Exclude these; they're intended to be included into only a single 4506c3fb27SDimitry Andric // translation unit (or none) and aren't part of this module. 4606c3fb27SDimitry Andric exclude header "llvm/CodeGen/LinkAllAsmWriterComponents.h" 4706c3fb27SDimitry Andric exclude header "llvm/CodeGen/LinkAllCodegenComponents.h" 4806c3fb27SDimitry Andric 4906c3fb27SDimitry Andric // These are intended for (repeated) textual inclusion. 5006c3fb27SDimitry Andric textual header "llvm/CodeGen/DIEValue.def" 5106c3fb27SDimitry Andric } 5206c3fb27SDimitry Andric} 5306c3fb27SDimitry Andric 5406c3fb27SDimitry Andric// FIXME: Make this as a submodule of LLVM_Backend again. 5506c3fb27SDimitry Andric// Doing so causes a linker error in clang-format. 5606c3fb27SDimitry Andricmodule LLVM_Backend_Target { 5706c3fb27SDimitry Andric umbrella "llvm/Target" 5806c3fb27SDimitry Andric module * { export * } 5906c3fb27SDimitry Andric} 6006c3fb27SDimitry Andric 6106c3fb27SDimitry Andricmodule LLVM_Bitcode { 6206c3fb27SDimitry Andric requires cplusplus 6306c3fb27SDimitry Andric umbrella "llvm/Bitcode" 6406c3fb27SDimitry Andric module * { export * } 6506c3fb27SDimitry Andric} 6606c3fb27SDimitry Andric 6706c3fb27SDimitry Andricmodule LLVM_Bitstream { 6806c3fb27SDimitry Andric requires cplusplus 6906c3fb27SDimitry Andric umbrella "llvm/Bitstream" 7006c3fb27SDimitry Andric module * { export * } 7106c3fb27SDimitry Andric} 7206c3fb27SDimitry Andric 7306c3fb27SDimitry Andricmodule LLVM_BinaryFormat { 7406c3fb27SDimitry Andric requires cplusplus 7506c3fb27SDimitry Andric umbrella "llvm/BinaryFormat" module * { export * } 7606c3fb27SDimitry Andric textual header "llvm/BinaryFormat/Dwarf.def" 7706c3fb27SDimitry Andric textual header "llvm/BinaryFormat/DXContainerConstants.def" 7806c3fb27SDimitry Andric textual header "llvm/BinaryFormat/DynamicTags.def" 7906c3fb27SDimitry Andric textual header "llvm/BinaryFormat/MachO.def" 8006c3fb27SDimitry Andric textual header "llvm/BinaryFormat/MinidumpConstants.def" 8106c3fb27SDimitry Andric textual header "llvm/BinaryFormat/Swift.def" 8206c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/AArch64.def" 8306c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/AMDGPU.def" 8406c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/ARM.def" 8506c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/ARC.def" 8606c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/AVR.def" 8706c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/BPF.def" 8806c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/CSKY.def" 8906c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/Hexagon.def" 9006c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/i386.def" 9106c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/Lanai.def" 9206c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/LoongArch.def" 9306c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/M68k.def" 9406c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/Mips.def" 9506c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/MSP430.def" 9606c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/PowerPC64.def" 9706c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/PowerPC.def" 9806c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/RISCV.def" 99*700637cbSDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/RISCV_nonstandard.def" 10006c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/Sparc.def" 10106c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/SystemZ.def" 10206c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/VE.def" 10306c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/x86_64.def" 10406c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/Xtensa.def" 10506c3fb27SDimitry Andric textual header "llvm/BinaryFormat/WasmRelocs.def" 10606c3fb27SDimitry Andric textual header "llvm/BinaryFormat/MsgPack.def" 10706c3fb27SDimitry Andric} 10806c3fb27SDimitry Andric 10906c3fb27SDimitry Andricmodule LLVM_Config { 11006c3fb27SDimitry Andric requires cplusplus 11106c3fb27SDimitry Andric umbrella "llvm/Config" 11206c3fb27SDimitry Andric extern module LLVM_Extern_Config_Def "module.extern.modulemap" 11306c3fb27SDimitry Andric module * { export * } 11406c3fb27SDimitry Andric} 11506c3fb27SDimitry Andric 11606c3fb27SDimitry Andricmodule LLVM_DebugInfo { 11706c3fb27SDimitry Andric requires cplusplus 11806c3fb27SDimitry Andric module DIContext { header "llvm/DebugInfo/DIContext.h" export * } 11906c3fb27SDimitry Andric} 12006c3fb27SDimitry Andric 12106c3fb27SDimitry Andricmodule LLVM_DebugInfo_DWARF { 12206c3fb27SDimitry Andric requires cplusplus 12306c3fb27SDimitry Andric 12406c3fb27SDimitry Andric umbrella "llvm/DebugInfo/DWARF" 12506c3fb27SDimitry Andric module * { export * } 12606c3fb27SDimitry Andric} 12706c3fb27SDimitry Andric 128*700637cbSDimitry Andricmodule LLVM_DebugInfo_DWARF_LowLevel { 129*700637cbSDimitry Andric requires cplusplus 130*700637cbSDimitry Andric 131*700637cbSDimitry Andric umbrella "llvm/DebugInfo/DWARF/LowLevel" 132*700637cbSDimitry Andric module * { export * } 133*700637cbSDimitry Andric} 134*700637cbSDimitry Andric 13506c3fb27SDimitry Andricmodule LLVM_DebugInfo_PDB { 13606c3fb27SDimitry Andric requires cplusplus 13706c3fb27SDimitry Andric 13806c3fb27SDimitry Andric umbrella "llvm/DebugInfo/PDB" 13906c3fb27SDimitry Andric module * { export * } 14006c3fb27SDimitry Andric 14106c3fb27SDimitry Andric // Separate out this subdirectory; it's an optional component that depends on 14206c3fb27SDimitry Andric // a separate library which might not be available. 14306c3fb27SDimitry Andric // 14406c3fb27SDimitry Andric // FIXME: There should be a better way to specify this. 14506c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIADataStream.h" 14606c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h" 14706c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h" 14806c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h" 14906c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h" 15006c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h" 15106c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h" 15206c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h" 15306c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumTables.h" 15406c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAError.h" 15506c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAFrameData.h" 15606c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h" 15706c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIALineNumber.h" 15806c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIARawSymbol.h" 15906c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIASectionContrib.h" 16006c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIASession.h" 16106c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIASourceFile.h" 16206c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIASupport.h" 16306c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIATable.h" 16406c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAUtils.h" 16506c3fb27SDimitry Andric} 16606c3fb27SDimitry Andric 16706c3fb27SDimitry Andricmodule LLVM_DebugInfo_PDB_DIA { 16806c3fb27SDimitry Andric requires cplusplus 16906c3fb27SDimitry Andric 17006c3fb27SDimitry Andric umbrella "llvm/DebugInfo/PDB/DIA" 17106c3fb27SDimitry Andric module * { export * } 17206c3fb27SDimitry Andric} 17306c3fb27SDimitry Andric 17406c3fb27SDimitry Andricmodule LLVM_DebugInfo_MSF { 17506c3fb27SDimitry Andric requires cplusplus 17606c3fb27SDimitry Andric 17706c3fb27SDimitry Andric umbrella "llvm/DebugInfo/MSF" 17806c3fb27SDimitry Andric module * { export * } 17906c3fb27SDimitry Andric} 18006c3fb27SDimitry Andric 18106c3fb27SDimitry Andricmodule LLVM_DebugInfo_CodeView { 18206c3fb27SDimitry Andric requires cplusplus 18306c3fb27SDimitry Andric 18406c3fb27SDimitry Andric umbrella "llvm/DebugInfo/CodeView" 18506c3fb27SDimitry Andric module * { export * } 18606c3fb27SDimitry Andric 18706c3fb27SDimitry Andric // These are intended for (repeated) textual inclusion. 188*700637cbSDimitry Andric textual header "llvm/DebugInfo/CodeView/CodeViewLanguages.def" 18906c3fb27SDimitry Andric textual header "llvm/DebugInfo/CodeView/CodeViewRegisters.def" 19006c3fb27SDimitry Andric textual header "llvm/DebugInfo/CodeView/CodeViewSymbols.def" 191*700637cbSDimitry Andric textual header "llvm/DebugInfo/CodeView/CodeViewTypes.def" 19206c3fb27SDimitry Andric} 19306c3fb27SDimitry Andric 19406c3fb27SDimitry Andricmodule LLVM_DWARFLinker { 19506c3fb27SDimitry Andric requires cplusplus 19606c3fb27SDimitry Andric 19706c3fb27SDimitry Andric umbrella "llvm/DWARFLinker" 19806c3fb27SDimitry Andric module * { export * } 19906c3fb27SDimitry Andric} 20006c3fb27SDimitry Andric 20106c3fb27SDimitry Andricmodule LLVM_ExecutionEngine { 20206c3fb27SDimitry Andric requires cplusplus 20306c3fb27SDimitry Andric 20406c3fb27SDimitry Andric umbrella "llvm/ExecutionEngine" 20506c3fb27SDimitry Andric module * { export * } 20606c3fb27SDimitry Andric 20706c3fb27SDimitry Andric // Exclude this; it's an optional component of the ExecutionEngine. 20806c3fb27SDimitry Andric exclude header "llvm/ExecutionEngine/OProfileWrapper.h" 20906c3fb27SDimitry Andric 21006c3fb27SDimitry Andric // Exclude these; they're intended to be included into only a single 21106c3fb27SDimitry Andric // translation unit (or none) and aren't part of this module. 21206c3fb27SDimitry Andric exclude header "llvm/ExecutionEngine/MCJIT.h" 21306c3fb27SDimitry Andric exclude header "llvm/ExecutionEngine/Interpreter.h" 21406c3fb27SDimitry Andric 21506c3fb27SDimitry Andric // Exclude headers from LLVM_OrcSupport. 21606c3fb27SDimitry Andric exclude header "llvm/ExecutionEngine/Orc/Shared/OrcError.h" 21706c3fb27SDimitry Andric} 21806c3fb27SDimitry Andric 21906c3fb27SDimitry Andricmodule LLVM_FileCheck { 22006c3fb27SDimitry Andric requires cplusplus 22106c3fb27SDimitry Andric 22206c3fb27SDimitry Andric umbrella "llvm/FileCheck" 22306c3fb27SDimitry Andric module * { export * } 22406c3fb27SDimitry Andric} 22506c3fb27SDimitry Andric 22606c3fb27SDimitry Andricmodule LLVM_Frontend_OpenMP { 22706c3fb27SDimitry Andric requires cplusplus 22806c3fb27SDimitry Andric 22906c3fb27SDimitry Andric umbrella "llvm/Frontend/OpenMP" 23006c3fb27SDimitry Andric module * { export * } 23106c3fb27SDimitry Andric 23206c3fb27SDimitry Andric exclude header "llvm/Frontend/OpenMP/OMPKinds.def" 23306c3fb27SDimitry Andric} 23406c3fb27SDimitry Andric 23506c3fb27SDimitry Andric// Orc utilities that don't depend only on Support (not ExecutionEngine or 23606c3fb27SDimitry Andric// IR). This is a workaround for ExecutionEngine's broken layering, and will 23706c3fb27SDimitry Andric// be removed in the future. 23806c3fb27SDimitry Andricmodule LLVM_OrcSupport { 23906c3fb27SDimitry Andric requires cplusplus 24006c3fb27SDimitry Andric 24106c3fb27SDimitry Andric header "llvm/ExecutionEngine/Orc/Shared/OrcError.h" 24206c3fb27SDimitry Andric 24306c3fb27SDimitry Andric export * 24406c3fb27SDimitry Andric} 24506c3fb27SDimitry Andric 24606c3fb27SDimitry Andricmodule LLVM_Pass { 24706c3fb27SDimitry Andric module Pass { 24806c3fb27SDimitry Andric // PassSupport.h and PassAnalysisSupport.h are made available only through 24906c3fb27SDimitry Andric // Pass.h. 25006c3fb27SDimitry Andric header "llvm/Pass.h" 25106c3fb27SDimitry Andric textual header "llvm/PassSupport.h" 25206c3fb27SDimitry Andric textual header "llvm/PassAnalysisSupport.h" 25306c3fb27SDimitry Andric export * 25406c3fb27SDimitry Andric } 25506c3fb27SDimitry Andric 25606c3fb27SDimitry Andric module PassRegistry { header "llvm/PassRegistry.h" export * } 25706c3fb27SDimitry Andric module InitializePasses { header "llvm/InitializePasses.h" export * } 25806c3fb27SDimitry Andric} 25906c3fb27SDimitry Andric 26006c3fb27SDimitry Andricmodule LLVM_IR { 26106c3fb27SDimitry Andric requires cplusplus 26206c3fb27SDimitry Andric 26306c3fb27SDimitry Andric umbrella "llvm/IR" 26406c3fb27SDimitry Andric module * { export * } 26506c3fb27SDimitry Andric 26606c3fb27SDimitry Andric extern module LLVM_Extern_IR_Attributes_Gen "module.extern.modulemap" 26706c3fb27SDimitry Andric extern module LLVM_Extern_IR_Intrinsics_Gen "module.extern.modulemap" 26806c3fb27SDimitry Andric extern module LLVM_Extern_IR_Intrinsics_Enum "module.extern.modulemap" 26906c3fb27SDimitry Andric 27006c3fb27SDimitry Andric // These are intended for (repeated) textual inclusion. 27106c3fb27SDimitry Andric textual header "llvm/IR/ConstrainedOps.def" 27206c3fb27SDimitry Andric textual header "llvm/IR/DebugInfoFlags.def" 27306c3fb27SDimitry Andric textual header "llvm/IR/Instruction.def" 27406c3fb27SDimitry Andric textual header "llvm/IR/Metadata.def" 27506c3fb27SDimitry Andric textual header "llvm/IR/FixedMetadataKinds.def" 27606c3fb27SDimitry Andric textual header "llvm/IR/Value.def" 27706c3fb27SDimitry Andric textual header "llvm/IR/VPIntrinsics.def" 27806c3fb27SDimitry Andric} 27906c3fb27SDimitry Andric 28006c3fb27SDimitry Andricmodule LLVM_IRReader { 28106c3fb27SDimitry Andric requires cplusplus 28206c3fb27SDimitry Andric umbrella "llvm/IRReader" 28306c3fb27SDimitry Andric module * { export * } 28406c3fb27SDimitry Andric} 28506c3fb27SDimitry Andric 28606c3fb27SDimitry Andricmodule LLVM_LineEditor { 28706c3fb27SDimitry Andric requires cplusplus 28806c3fb27SDimitry Andric umbrella "llvm/LineEditor" 28906c3fb27SDimitry Andric module * { export * } 29006c3fb27SDimitry Andric} 29106c3fb27SDimitry Andric 29206c3fb27SDimitry Andricmodule LLVM_LTO { 29306c3fb27SDimitry Andric requires cplusplus 29406c3fb27SDimitry Andric umbrella "llvm/LTO" 29506c3fb27SDimitry Andric module * { export * } 29606c3fb27SDimitry Andric} 29706c3fb27SDimitry Andric 29806c3fb27SDimitry Andricmodule LLVM_MC { 29906c3fb27SDimitry Andric requires cplusplus 30006c3fb27SDimitry Andric 30106c3fb27SDimitry Andric umbrella "llvm/MC" 30206c3fb27SDimitry Andric module * { export * } 30306c3fb27SDimitry Andric} 30406c3fb27SDimitry Andric 30506c3fb27SDimitry Andricmodule LLVM_Object { 30606c3fb27SDimitry Andric requires cplusplus 30706c3fb27SDimitry Andric umbrella "llvm/Object" 30806c3fb27SDimitry Andric module * { export * } 30906c3fb27SDimitry Andric} 31006c3fb27SDimitry Andric 31106c3fb27SDimitry Andricmodule LLVM_Option { 31206c3fb27SDimitry Andric requires cplusplus 31306c3fb27SDimitry Andric umbrella "llvm/Option" 31406c3fb27SDimitry Andric module * { export * } 31506c3fb27SDimitry Andric} 31606c3fb27SDimitry Andric 31706c3fb27SDimitry Andricmodule LLVM_ProfileData { 31806c3fb27SDimitry Andric requires cplusplus 31906c3fb27SDimitry Andric 32006c3fb27SDimitry Andric umbrella "llvm/ProfileData" 32106c3fb27SDimitry Andric module * { export * } 32206c3fb27SDimitry Andric 32306c3fb27SDimitry Andric textual header "llvm/ProfileData/InstrProfData.inc" 32406c3fb27SDimitry Andric textual header "llvm/ProfileData/MemProfData.inc" 32506c3fb27SDimitry Andric textual header "llvm/ProfileData/MIBEntryDef.inc" 32606c3fb27SDimitry Andric} 32706c3fb27SDimitry Andric 32806c3fb27SDimitry Andric// FIXME: Mislayered? 32906c3fb27SDimitry Andricmodule LLVM_Support_TargetRegistry { 33006c3fb27SDimitry Andric requires cplusplus 33106c3fb27SDimitry Andric header "llvm/Support/TargetRegistry.h" 33206c3fb27SDimitry Andric export * 33306c3fb27SDimitry Andric} 33406c3fb27SDimitry Andric 33506c3fb27SDimitry Andricmodule LLVM_TableGen { 33606c3fb27SDimitry Andric requires cplusplus 33706c3fb27SDimitry Andric umbrella "llvm/TableGen" 33806c3fb27SDimitry Andric module * { export * } 33906c3fb27SDimitry Andric} 34006c3fb27SDimitry Andric 34106c3fb27SDimitry Andricmodule LLVM_Transforms { 34206c3fb27SDimitry Andric requires cplusplus 34306c3fb27SDimitry Andric umbrella "llvm/Transforms" 34406c3fb27SDimitry Andric 34506c3fb27SDimitry Andric module * { export * } 34606c3fb27SDimitry Andric 34706c3fb27SDimitry Andric // Requires DEBUG_TYPE to be defined by including file. 34806c3fb27SDimitry Andric exclude header "llvm/Transforms/Utils/InstructionWorklist.h" 34906c3fb27SDimitry Andric} 35006c3fb27SDimitry Andric 35106c3fb27SDimitry Andricextern module LLVM_Extern_Utils_DataTypes "module.extern.modulemap" 35206c3fb27SDimitry Andric 35306c3fb27SDimitry Andric// Build the module with the tablegen-generated files needed by the 35406c3fb27SDimitry Andric// TargetParser module before building the TargetParser module itself. 35506c3fb27SDimitry Andricmodule TargetParserGen { 3560fca6ea1SDimitry Andric module AArch64TargetParserDef { 357*700637cbSDimitry Andric textual header "llvm/TargetParser/AArch64CPUFeatures.inc" 358*700637cbSDimitry Andric textual header "llvm/TargetParser/AArch64FeatPriorities.inc" 3590fca6ea1SDimitry Andric header "llvm/TargetParser/AArch64TargetParser.h" 3600fca6ea1SDimitry Andric extern module LLVM_Extern_TargetParser_Gen "module.extern.modulemap" 3610fca6ea1SDimitry Andric export * 3620fca6ea1SDimitry Andric } 36306c3fb27SDimitry Andric module RISCVTargetParserDef { 36406c3fb27SDimitry Andric header "llvm/TargetParser/RISCVTargetParser.h" 36506c3fb27SDimitry Andric extern module LLVM_Extern_TargetParser_Gen "module.extern.modulemap" 36606c3fb27SDimitry Andric export * 36706c3fb27SDimitry Andric } 36806c3fb27SDimitry Andric} 36906c3fb27SDimitry Andric 37006c3fb27SDimitry Andric// A module covering ADT/ and Support/. These are intertwined and 37106c3fb27SDimitry Andric// codependent, and notionally form a single module. 37206c3fb27SDimitry Andricmodule LLVM_Utils { 37306c3fb27SDimitry Andric module ADT { 37406c3fb27SDimitry Andric requires cplusplus 37506c3fb27SDimitry Andric 37606c3fb27SDimitry Andric umbrella "llvm/ADT" 37706c3fb27SDimitry Andric module * { export * } 37806c3fb27SDimitry Andric } 37906c3fb27SDimitry Andric 38006c3fb27SDimitry Andric module Demangle { 38106c3fb27SDimitry Andric requires cplusplus 38206c3fb27SDimitry Andric 38306c3fb27SDimitry Andric umbrella "llvm/Demangle" 38406c3fb27SDimitry Andric module * { export * } 38506c3fb27SDimitry Andric 38606c3fb27SDimitry Andric textual header "llvm/Demangle/ItaniumNodes.def" 38706c3fb27SDimitry Andric } 38806c3fb27SDimitry Andric 38906c3fb27SDimitry Andric module Support { 39006c3fb27SDimitry Andric requires cplusplus 39106c3fb27SDimitry Andric 39206c3fb27SDimitry Andric umbrella "llvm/Support" 39306c3fb27SDimitry Andric module * { export * } 39406c3fb27SDimitry Andric 39506c3fb27SDimitry Andric // Exclude this; it should only be used on Windows. 39606c3fb27SDimitry Andric exclude header "llvm/Support/Windows/WindowsSupport.h" 39706c3fb27SDimitry Andric 39806c3fb27SDimitry Andric // Exclude these; they are fundamentally non-modular. 39906c3fb27SDimitry Andric exclude header "llvm/Support/PluginLoader.h" 40006c3fb27SDimitry Andric exclude header "llvm/Support/Solaris/sys/regset.h" 40106c3fb27SDimitry Andric textual header "llvm/Support/TargetOpcodes.def" 40206c3fb27SDimitry Andric 40306c3fb27SDimitry Andric } 40406c3fb27SDimitry Andric 40506c3fb27SDimitry Andric module TargetParser { 40606c3fb27SDimitry Andric requires cplusplus 40706c3fb27SDimitry Andric 40806c3fb27SDimitry Andric umbrella "llvm/TargetParser" 40906c3fb27SDimitry Andric module * { export * } 41006c3fb27SDimitry Andric 41106c3fb27SDimitry Andric // These are intended for textual inclusion. 41206c3fb27SDimitry Andric textual header "llvm/TargetParser/ARMTargetParser.def" 41306c3fb27SDimitry Andric textual header "llvm/TargetParser/CSKYTargetParser.def" 41406c3fb27SDimitry Andric textual header "llvm/TargetParser/X86TargetParser.def" 41506c3fb27SDimitry Andric textual header "llvm/TargetParser/LoongArchTargetParser.def" 4160fca6ea1SDimitry Andric textual header "llvm/TargetParser/PPCTargetParser.def" 41706c3fb27SDimitry Andric } 41806c3fb27SDimitry Andric 41906c3fb27SDimitry Andric // This part of the module is usable from both C and C++ code. 42006c3fb27SDimitry Andric module ConvertUTF { 42106c3fb27SDimitry Andric header "llvm/Support/ConvertUTF.h" 42206c3fb27SDimitry Andric export * 42306c3fb27SDimitry Andric } 42406c3fb27SDimitry Andric} 42506c3fb27SDimitry Andric 42606c3fb27SDimitry Andric// This is used for a $src == $build compilation. Otherwise we use 42706c3fb27SDimitry Andric// LLVM_Support_DataTypes_Build, defined in a module map that is 42806c3fb27SDimitry Andric// copied into the build area. 42906c3fb27SDimitry Andricmodule LLVM_Support_DataTypes_Src { 43006c3fb27SDimitry Andric header "llvm/Support/DataTypes.h" 43106c3fb27SDimitry Andric export * 43206c3fb27SDimitry Andric} 43306c3fb27SDimitry Andric 43406c3fb27SDimitry Andricmodule LLVM_WindowsManifest { 43506c3fb27SDimitry Andric requires cplusplus 43606c3fb27SDimitry Andric umbrella "llvm/WindowsManifest" 43706c3fb27SDimitry Andric module * { export * } 43806c3fb27SDimitry Andric} 439*700637cbSDimitry Andric 440*700637cbSDimitry Andricmodule LLVM_SandboxIR { 441*700637cbSDimitry Andric requires cplusplus 442*700637cbSDimitry Andric 443*700637cbSDimitry Andric umbrella "llvm/SandboxIR" 444*700637cbSDimitry Andric module * { export * } 445*700637cbSDimitry Andric 446*700637cbSDimitry Andric textual header "llvm/SandboxIR/Values.def" 447*700637cbSDimitry Andric} 448