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 { 27*0fca6ea1SDimitry Andric header "llvm/CodeGenTypes/LowLevelType.h" export * 2806c3fb27SDimitry Andric } 2906c3fb27SDimitry Andric module MVT { 30*0fca6ea1SDimitry 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" 9906c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/Sparc.def" 10006c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/SystemZ.def" 10106c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/VE.def" 10206c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/x86_64.def" 10306c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/Xtensa.def" 10406c3fb27SDimitry Andric textual header "llvm/BinaryFormat/WasmRelocs.def" 10506c3fb27SDimitry Andric textual header "llvm/BinaryFormat/MsgPack.def" 10606c3fb27SDimitry Andric} 10706c3fb27SDimitry Andric 10806c3fb27SDimitry Andricmodule LLVM_Config { 10906c3fb27SDimitry Andric requires cplusplus 11006c3fb27SDimitry Andric umbrella "llvm/Config" 11106c3fb27SDimitry Andric extern module LLVM_Extern_Config_Def "module.extern.modulemap" 11206c3fb27SDimitry Andric module * { export * } 11306c3fb27SDimitry Andric} 11406c3fb27SDimitry Andric 11506c3fb27SDimitry Andricmodule LLVM_DebugInfo { 11606c3fb27SDimitry Andric requires cplusplus 11706c3fb27SDimitry Andric module DIContext { header "llvm/DebugInfo/DIContext.h" export * } 11806c3fb27SDimitry Andric} 11906c3fb27SDimitry Andric 12006c3fb27SDimitry Andricmodule LLVM_DebugInfo_DWARF { 12106c3fb27SDimitry Andric requires cplusplus 12206c3fb27SDimitry Andric 12306c3fb27SDimitry Andric umbrella "llvm/DebugInfo/DWARF" 12406c3fb27SDimitry Andric module * { export * } 12506c3fb27SDimitry Andric} 12606c3fb27SDimitry Andric 12706c3fb27SDimitry Andricmodule LLVM_DebugInfo_PDB { 12806c3fb27SDimitry Andric requires cplusplus 12906c3fb27SDimitry Andric 13006c3fb27SDimitry Andric umbrella "llvm/DebugInfo/PDB" 13106c3fb27SDimitry Andric module * { export * } 13206c3fb27SDimitry Andric 13306c3fb27SDimitry Andric // Separate out this subdirectory; it's an optional component that depends on 13406c3fb27SDimitry Andric // a separate library which might not be available. 13506c3fb27SDimitry Andric // 13606c3fb27SDimitry Andric // FIXME: There should be a better way to specify this. 13706c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIADataStream.h" 13806c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h" 13906c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h" 14006c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h" 14106c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h" 14206c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h" 14306c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h" 14406c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h" 14506c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumTables.h" 14606c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAError.h" 14706c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAFrameData.h" 14806c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h" 14906c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIALineNumber.h" 15006c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIARawSymbol.h" 15106c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIASectionContrib.h" 15206c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIASession.h" 15306c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIASourceFile.h" 15406c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIASupport.h" 15506c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIATable.h" 15606c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAUtils.h" 15706c3fb27SDimitry Andric} 15806c3fb27SDimitry Andric 15906c3fb27SDimitry Andricmodule LLVM_DebugInfo_PDB_DIA { 16006c3fb27SDimitry Andric requires cplusplus 16106c3fb27SDimitry Andric 16206c3fb27SDimitry Andric umbrella "llvm/DebugInfo/PDB/DIA" 16306c3fb27SDimitry Andric module * { export * } 16406c3fb27SDimitry Andric} 16506c3fb27SDimitry Andric 16606c3fb27SDimitry Andricmodule LLVM_DebugInfo_MSF { 16706c3fb27SDimitry Andric requires cplusplus 16806c3fb27SDimitry Andric 16906c3fb27SDimitry Andric umbrella "llvm/DebugInfo/MSF" 17006c3fb27SDimitry Andric module * { export * } 17106c3fb27SDimitry Andric} 17206c3fb27SDimitry Andric 17306c3fb27SDimitry Andricmodule LLVM_DebugInfo_CodeView { 17406c3fb27SDimitry Andric requires cplusplus 17506c3fb27SDimitry Andric 17606c3fb27SDimitry Andric umbrella "llvm/DebugInfo/CodeView" 17706c3fb27SDimitry Andric module * { export * } 17806c3fb27SDimitry Andric 17906c3fb27SDimitry Andric // These are intended for (repeated) textual inclusion. 18006c3fb27SDimitry Andric textual header "llvm/DebugInfo/CodeView/CodeViewRegisters.def" 18106c3fb27SDimitry Andric textual header "llvm/DebugInfo/CodeView/CodeViewTypes.def" 18206c3fb27SDimitry Andric textual header "llvm/DebugInfo/CodeView/CodeViewSymbols.def" 18306c3fb27SDimitry Andric} 18406c3fb27SDimitry Andric 18506c3fb27SDimitry Andricmodule LLVM_DWARFLinker { 18606c3fb27SDimitry Andric requires cplusplus 18706c3fb27SDimitry Andric 18806c3fb27SDimitry Andric umbrella "llvm/DWARFLinker" 18906c3fb27SDimitry Andric module * { export * } 19006c3fb27SDimitry Andric} 19106c3fb27SDimitry Andric 19206c3fb27SDimitry Andricmodule LLVM_ExecutionEngine { 19306c3fb27SDimitry Andric requires cplusplus 19406c3fb27SDimitry Andric 19506c3fb27SDimitry Andric umbrella "llvm/ExecutionEngine" 19606c3fb27SDimitry Andric module * { export * } 19706c3fb27SDimitry Andric 19806c3fb27SDimitry Andric // Exclude this; it's an optional component of the ExecutionEngine. 19906c3fb27SDimitry Andric exclude header "llvm/ExecutionEngine/OProfileWrapper.h" 20006c3fb27SDimitry Andric 20106c3fb27SDimitry Andric // Exclude these; they're intended to be included into only a single 20206c3fb27SDimitry Andric // translation unit (or none) and aren't part of this module. 20306c3fb27SDimitry Andric exclude header "llvm/ExecutionEngine/MCJIT.h" 20406c3fb27SDimitry Andric exclude header "llvm/ExecutionEngine/Interpreter.h" 20506c3fb27SDimitry Andric 20606c3fb27SDimitry Andric // Exclude headers from LLVM_OrcSupport. 20706c3fb27SDimitry Andric exclude header "llvm/ExecutionEngine/Orc/Shared/OrcError.h" 20806c3fb27SDimitry Andric} 20906c3fb27SDimitry Andric 21006c3fb27SDimitry Andricmodule LLVM_FileCheck { 21106c3fb27SDimitry Andric requires cplusplus 21206c3fb27SDimitry Andric 21306c3fb27SDimitry Andric umbrella "llvm/FileCheck" 21406c3fb27SDimitry Andric module * { export * } 21506c3fb27SDimitry Andric} 21606c3fb27SDimitry Andric 21706c3fb27SDimitry Andricmodule LLVM_Frontend_OpenMP { 21806c3fb27SDimitry Andric requires cplusplus 21906c3fb27SDimitry Andric 22006c3fb27SDimitry Andric umbrella "llvm/Frontend/OpenMP" 22106c3fb27SDimitry Andric module * { export * } 22206c3fb27SDimitry Andric 22306c3fb27SDimitry Andric exclude header "llvm/Frontend/OpenMP/OMPKinds.def" 22406c3fb27SDimitry Andric} 22506c3fb27SDimitry Andric 22606c3fb27SDimitry Andric// Orc utilities that don't depend only on Support (not ExecutionEngine or 22706c3fb27SDimitry Andric// IR). This is a workaround for ExecutionEngine's broken layering, and will 22806c3fb27SDimitry Andric// be removed in the future. 22906c3fb27SDimitry Andricmodule LLVM_OrcSupport { 23006c3fb27SDimitry Andric requires cplusplus 23106c3fb27SDimitry Andric 23206c3fb27SDimitry Andric header "llvm/ExecutionEngine/Orc/Shared/OrcError.h" 23306c3fb27SDimitry Andric 23406c3fb27SDimitry Andric export * 23506c3fb27SDimitry Andric} 23606c3fb27SDimitry Andric 23706c3fb27SDimitry Andricmodule LLVM_Pass { 23806c3fb27SDimitry Andric module Pass { 23906c3fb27SDimitry Andric // PassSupport.h and PassAnalysisSupport.h are made available only through 24006c3fb27SDimitry Andric // Pass.h. 24106c3fb27SDimitry Andric header "llvm/Pass.h" 24206c3fb27SDimitry Andric textual header "llvm/PassSupport.h" 24306c3fb27SDimitry Andric textual header "llvm/PassAnalysisSupport.h" 24406c3fb27SDimitry Andric export * 24506c3fb27SDimitry Andric } 24606c3fb27SDimitry Andric 24706c3fb27SDimitry Andric module PassRegistry { header "llvm/PassRegistry.h" export * } 24806c3fb27SDimitry Andric module InitializePasses { header "llvm/InitializePasses.h" export * } 24906c3fb27SDimitry Andric} 25006c3fb27SDimitry Andric 25106c3fb27SDimitry Andricmodule LLVM_IR { 25206c3fb27SDimitry Andric requires cplusplus 25306c3fb27SDimitry Andric 25406c3fb27SDimitry Andric umbrella "llvm/IR" 25506c3fb27SDimitry Andric module * { export * } 25606c3fb27SDimitry Andric 25706c3fb27SDimitry Andric extern module LLVM_Extern_IR_Attributes_Gen "module.extern.modulemap" 25806c3fb27SDimitry Andric extern module LLVM_Extern_IR_Intrinsics_Gen "module.extern.modulemap" 25906c3fb27SDimitry Andric extern module LLVM_Extern_IR_Intrinsics_Enum "module.extern.modulemap" 26006c3fb27SDimitry Andric 26106c3fb27SDimitry Andric // These are intended for (repeated) textual inclusion. 26206c3fb27SDimitry Andric textual header "llvm/IR/ConstrainedOps.def" 26306c3fb27SDimitry Andric textual header "llvm/IR/DebugInfoFlags.def" 26406c3fb27SDimitry Andric textual header "llvm/IR/Instruction.def" 26506c3fb27SDimitry Andric textual header "llvm/IR/Metadata.def" 26606c3fb27SDimitry Andric textual header "llvm/IR/FixedMetadataKinds.def" 26706c3fb27SDimitry Andric textual header "llvm/IR/Value.def" 26806c3fb27SDimitry Andric textual header "llvm/IR/VPIntrinsics.def" 26906c3fb27SDimitry Andric textual header "llvm/IR/RuntimeLibcalls.def" 27006c3fb27SDimitry Andric} 27106c3fb27SDimitry Andric 27206c3fb27SDimitry Andricmodule LLVM_IRReader { 27306c3fb27SDimitry Andric requires cplusplus 27406c3fb27SDimitry Andric umbrella "llvm/IRReader" 27506c3fb27SDimitry Andric module * { export * } 27606c3fb27SDimitry Andric} 27706c3fb27SDimitry Andric 27806c3fb27SDimitry Andricmodule LLVM_LineEditor { 27906c3fb27SDimitry Andric requires cplusplus 28006c3fb27SDimitry Andric umbrella "llvm/LineEditor" 28106c3fb27SDimitry Andric module * { export * } 28206c3fb27SDimitry Andric} 28306c3fb27SDimitry Andric 28406c3fb27SDimitry Andricmodule LLVM_LTO { 28506c3fb27SDimitry Andric requires cplusplus 28606c3fb27SDimitry Andric umbrella "llvm/LTO" 28706c3fb27SDimitry Andric module * { export * } 28806c3fb27SDimitry Andric} 28906c3fb27SDimitry Andric 29006c3fb27SDimitry Andricmodule LLVM_MC { 29106c3fb27SDimitry Andric requires cplusplus 29206c3fb27SDimitry Andric 29306c3fb27SDimitry Andric umbrella "llvm/MC" 29406c3fb27SDimitry Andric module * { export * } 29506c3fb27SDimitry Andric} 29606c3fb27SDimitry Andric 29706c3fb27SDimitry Andricmodule LLVM_Object { 29806c3fb27SDimitry Andric requires cplusplus 29906c3fb27SDimitry Andric umbrella "llvm/Object" 30006c3fb27SDimitry Andric module * { export * } 30106c3fb27SDimitry Andric} 30206c3fb27SDimitry Andric 30306c3fb27SDimitry Andricmodule LLVM_Option { 30406c3fb27SDimitry Andric requires cplusplus 30506c3fb27SDimitry Andric umbrella "llvm/Option" 30606c3fb27SDimitry Andric module * { export * } 30706c3fb27SDimitry Andric} 30806c3fb27SDimitry Andric 30906c3fb27SDimitry Andricmodule LLVM_ProfileData { 31006c3fb27SDimitry Andric requires cplusplus 31106c3fb27SDimitry Andric 31206c3fb27SDimitry Andric umbrella "llvm/ProfileData" 31306c3fb27SDimitry Andric module * { export * } 31406c3fb27SDimitry Andric 31506c3fb27SDimitry Andric textual header "llvm/ProfileData/InstrProfData.inc" 31606c3fb27SDimitry Andric textual header "llvm/ProfileData/MemProfData.inc" 31706c3fb27SDimitry Andric textual header "llvm/ProfileData/MIBEntryDef.inc" 31806c3fb27SDimitry Andric} 31906c3fb27SDimitry Andric 32006c3fb27SDimitry Andric// FIXME: Mislayered? 32106c3fb27SDimitry Andricmodule LLVM_Support_TargetRegistry { 32206c3fb27SDimitry Andric requires cplusplus 32306c3fb27SDimitry Andric header "llvm/Support/TargetRegistry.h" 32406c3fb27SDimitry Andric export * 32506c3fb27SDimitry Andric} 32606c3fb27SDimitry Andric 32706c3fb27SDimitry Andricmodule LLVM_TableGen { 32806c3fb27SDimitry Andric requires cplusplus 32906c3fb27SDimitry Andric umbrella "llvm/TableGen" 33006c3fb27SDimitry Andric module * { export * } 33106c3fb27SDimitry Andric} 33206c3fb27SDimitry Andric 33306c3fb27SDimitry Andricmodule LLVM_Transforms { 33406c3fb27SDimitry Andric requires cplusplus 33506c3fb27SDimitry Andric umbrella "llvm/Transforms" 33606c3fb27SDimitry Andric 33706c3fb27SDimitry Andric module * { export * } 33806c3fb27SDimitry Andric 33906c3fb27SDimitry Andric // Requires DEBUG_TYPE to be defined by including file. 34006c3fb27SDimitry Andric exclude header "llvm/Transforms/Utils/InstructionWorklist.h" 34106c3fb27SDimitry Andric} 34206c3fb27SDimitry Andric 34306c3fb27SDimitry Andricextern module LLVM_Extern_Utils_DataTypes "module.extern.modulemap" 34406c3fb27SDimitry Andric 34506c3fb27SDimitry Andric// Build the module with the tablegen-generated files needed by the 34606c3fb27SDimitry Andric// TargetParser module before building the TargetParser module itself. 34706c3fb27SDimitry Andricmodule TargetParserGen { 348*0fca6ea1SDimitry Andric module AArch64TargetParserDef { 349*0fca6ea1SDimitry Andric header "llvm/TargetParser/AArch64TargetParser.h" 350*0fca6ea1SDimitry Andric extern module LLVM_Extern_TargetParser_Gen "module.extern.modulemap" 351*0fca6ea1SDimitry Andric export * 352*0fca6ea1SDimitry Andric } 35306c3fb27SDimitry Andric module RISCVTargetParserDef { 35406c3fb27SDimitry Andric header "llvm/TargetParser/RISCVTargetParser.h" 35506c3fb27SDimitry Andric extern module LLVM_Extern_TargetParser_Gen "module.extern.modulemap" 35606c3fb27SDimitry Andric export * 35706c3fb27SDimitry Andric } 35806c3fb27SDimitry Andric} 35906c3fb27SDimitry Andric 36006c3fb27SDimitry Andric// A module covering ADT/ and Support/. These are intertwined and 36106c3fb27SDimitry Andric// codependent, and notionally form a single module. 36206c3fb27SDimitry Andricmodule LLVM_Utils { 36306c3fb27SDimitry Andric module ADT { 36406c3fb27SDimitry Andric requires cplusplus 36506c3fb27SDimitry Andric 36606c3fb27SDimitry Andric umbrella "llvm/ADT" 36706c3fb27SDimitry Andric module * { export * } 36806c3fb27SDimitry Andric } 36906c3fb27SDimitry Andric 37006c3fb27SDimitry Andric module Demangle { 37106c3fb27SDimitry Andric requires cplusplus 37206c3fb27SDimitry Andric 37306c3fb27SDimitry Andric umbrella "llvm/Demangle" 37406c3fb27SDimitry Andric module * { export * } 37506c3fb27SDimitry Andric 37606c3fb27SDimitry Andric textual header "llvm/Demangle/ItaniumNodes.def" 37706c3fb27SDimitry Andric } 37806c3fb27SDimitry Andric 37906c3fb27SDimitry Andric module Support { 38006c3fb27SDimitry Andric requires cplusplus 38106c3fb27SDimitry Andric 38206c3fb27SDimitry Andric umbrella "llvm/Support" 38306c3fb27SDimitry Andric module * { export * } 38406c3fb27SDimitry Andric 38506c3fb27SDimitry Andric // Exclude this; it should only be used on Windows. 38606c3fb27SDimitry Andric exclude header "llvm/Support/Windows/WindowsSupport.h" 38706c3fb27SDimitry Andric 38806c3fb27SDimitry Andric // Exclude these; they are fundamentally non-modular. 38906c3fb27SDimitry Andric exclude header "llvm/Support/PluginLoader.h" 39006c3fb27SDimitry Andric exclude header "llvm/Support/Solaris/sys/regset.h" 39106c3fb27SDimitry Andric textual header "llvm/Support/TargetOpcodes.def" 39206c3fb27SDimitry Andric 39306c3fb27SDimitry Andric } 39406c3fb27SDimitry Andric 39506c3fb27SDimitry Andric module TargetParser { 39606c3fb27SDimitry Andric requires cplusplus 39706c3fb27SDimitry Andric 39806c3fb27SDimitry Andric umbrella "llvm/TargetParser" 39906c3fb27SDimitry Andric module * { export * } 40006c3fb27SDimitry Andric 40106c3fb27SDimitry Andric // These are intended for textual inclusion. 40206c3fb27SDimitry Andric textual header "llvm/TargetParser/ARMTargetParser.def" 40306c3fb27SDimitry Andric textual header "llvm/TargetParser/CSKYTargetParser.def" 40406c3fb27SDimitry Andric textual header "llvm/TargetParser/X86TargetParser.def" 40506c3fb27SDimitry Andric textual header "llvm/TargetParser/LoongArchTargetParser.def" 406*0fca6ea1SDimitry Andric textual header "llvm/TargetParser/PPCTargetParser.def" 40706c3fb27SDimitry Andric } 40806c3fb27SDimitry Andric 40906c3fb27SDimitry Andric // This part of the module is usable from both C and C++ code. 41006c3fb27SDimitry Andric module ConvertUTF { 41106c3fb27SDimitry Andric header "llvm/Support/ConvertUTF.h" 41206c3fb27SDimitry Andric export * 41306c3fb27SDimitry Andric } 41406c3fb27SDimitry Andric} 41506c3fb27SDimitry Andric 41606c3fb27SDimitry Andric// This is used for a $src == $build compilation. Otherwise we use 41706c3fb27SDimitry Andric// LLVM_Support_DataTypes_Build, defined in a module map that is 41806c3fb27SDimitry Andric// copied into the build area. 41906c3fb27SDimitry Andricmodule LLVM_Support_DataTypes_Src { 42006c3fb27SDimitry Andric header "llvm/Support/DataTypes.h" 42106c3fb27SDimitry Andric export * 42206c3fb27SDimitry Andric} 42306c3fb27SDimitry Andric 42406c3fb27SDimitry Andricmodule LLVM_WindowsManifest { 42506c3fb27SDimitry Andric requires cplusplus 42606c3fb27SDimitry Andric umbrella "llvm/WindowsManifest" 42706c3fb27SDimitry Andric module * { export * } 42806c3fb27SDimitry Andric} 429