1*06c3fb27SDimitry Andricmodule LLVM_C { 2*06c3fb27SDimitry Andric umbrella "llvm-c" 3*06c3fb27SDimitry Andric module * { export * } 4*06c3fb27SDimitry Andric} 5*06c3fb27SDimitry Andric 6*06c3fb27SDimitry Andricmodule LLVM_Analysis { 7*06c3fb27SDimitry Andric requires cplusplus 8*06c3fb27SDimitry Andric umbrella "llvm/Analysis" 9*06c3fb27SDimitry Andric module * { export * } 10*06c3fb27SDimitry Andric 11*06c3fb27SDimitry Andric // This is intended for (repeated) textual inclusion. 12*06c3fb27SDimitry Andric textual header "llvm/Analysis/ScalarFuncs.def" 13*06c3fb27SDimitry Andric textual header "llvm/Analysis/TargetLibraryInfo.def" 14*06c3fb27SDimitry Andric textual header "llvm/Analysis/VecFuncs.def" 15*06c3fb27SDimitry Andric} 16*06c3fb27SDimitry Andric 17*06c3fb27SDimitry Andricmodule LLVM_AsmParser { 18*06c3fb27SDimitry Andric requires cplusplus 19*06c3fb27SDimitry Andric umbrella "llvm/AsmParser" 20*06c3fb27SDimitry Andric module * { export * } 21*06c3fb27SDimitry Andric} 22*06c3fb27SDimitry Andric 23*06c3fb27SDimitry Andricmodule LLVM_CodeGenTypes { 24*06c3fb27SDimitry Andric requires cplusplus 25*06c3fb27SDimitry Andric 26*06c3fb27SDimitry Andric module LLT { 27*06c3fb27SDimitry Andric header "llvm/CodeGen/LowLevelType.h" export * 28*06c3fb27SDimitry Andric } 29*06c3fb27SDimitry Andric module MVT { 30*06c3fb27SDimitry Andric header "llvm/CodeGen/MachineValueType.h" export * 31*06c3fb27SDimitry Andric extern module LLVM_Extern_CodeGenTypes_Gen "module.extern.modulemap" 32*06c3fb27SDimitry Andric } 33*06c3fb27SDimitry Andric} 34*06c3fb27SDimitry Andric 35*06c3fb27SDimitry Andric// A module covering CodeGen/ and Target/. These are intertwined 36*06c3fb27SDimitry Andric// and codependent, and thus notionally form a single module. 37*06c3fb27SDimitry Andricmodule LLVM_Backend { 38*06c3fb27SDimitry Andric requires cplusplus 39*06c3fb27SDimitry Andric 40*06c3fb27SDimitry Andric module CodeGen { 41*06c3fb27SDimitry Andric umbrella "llvm/CodeGen" 42*06c3fb27SDimitry Andric module * { export * } 43*06c3fb27SDimitry Andric 44*06c3fb27SDimitry Andric // Exclude these; they're intended to be included into only a single 45*06c3fb27SDimitry Andric // translation unit (or none) and aren't part of this module. 46*06c3fb27SDimitry Andric exclude header "llvm/CodeGen/LinkAllAsmWriterComponents.h" 47*06c3fb27SDimitry Andric exclude header "llvm/CodeGen/LinkAllCodegenComponents.h" 48*06c3fb27SDimitry Andric 49*06c3fb27SDimitry Andric exclude header "llvm/CodeGen/CodeGenPassBuilder.h" 50*06c3fb27SDimitry Andric 51*06c3fb27SDimitry Andric // These are intended for (repeated) textual inclusion. 52*06c3fb27SDimitry Andric textual header "llvm/CodeGen/DIEValue.def" 53*06c3fb27SDimitry Andric textual header "llvm/CodeGen/MachinePassRegistry.def" 54*06c3fb27SDimitry Andric } 55*06c3fb27SDimitry Andric} 56*06c3fb27SDimitry Andric 57*06c3fb27SDimitry Andric// FIXME: Make this as a submodule of LLVM_Backend again. 58*06c3fb27SDimitry Andric// Doing so causes a linker error in clang-format. 59*06c3fb27SDimitry Andricmodule LLVM_Backend_Target { 60*06c3fb27SDimitry Andric umbrella "llvm/Target" 61*06c3fb27SDimitry Andric module * { export * } 62*06c3fb27SDimitry Andric} 63*06c3fb27SDimitry Andric 64*06c3fb27SDimitry Andricmodule LLVM_Bitcode { 65*06c3fb27SDimitry Andric requires cplusplus 66*06c3fb27SDimitry Andric umbrella "llvm/Bitcode" 67*06c3fb27SDimitry Andric module * { export * } 68*06c3fb27SDimitry Andric} 69*06c3fb27SDimitry Andric 70*06c3fb27SDimitry Andricmodule LLVM_Bitstream { 71*06c3fb27SDimitry Andric requires cplusplus 72*06c3fb27SDimitry Andric umbrella "llvm/Bitstream" 73*06c3fb27SDimitry Andric module * { export * } 74*06c3fb27SDimitry Andric} 75*06c3fb27SDimitry Andric 76*06c3fb27SDimitry Andricmodule LLVM_BinaryFormat { 77*06c3fb27SDimitry Andric requires cplusplus 78*06c3fb27SDimitry Andric umbrella "llvm/BinaryFormat" module * { export * } 79*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/Dwarf.def" 80*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/DXContainerConstants.def" 81*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/DynamicTags.def" 82*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/MachO.def" 83*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/MinidumpConstants.def" 84*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/Swift.def" 85*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/AArch64.def" 86*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/AMDGPU.def" 87*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/ARM.def" 88*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/ARC.def" 89*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/AVR.def" 90*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/BPF.def" 91*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/CSKY.def" 92*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/Hexagon.def" 93*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/i386.def" 94*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/Lanai.def" 95*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/LoongArch.def" 96*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/M68k.def" 97*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/Mips.def" 98*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/MSP430.def" 99*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/PowerPC64.def" 100*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/PowerPC.def" 101*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/RISCV.def" 102*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/Sparc.def" 103*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/SystemZ.def" 104*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/VE.def" 105*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/x86_64.def" 106*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/ELFRelocs/Xtensa.def" 107*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/WasmRelocs.def" 108*06c3fb27SDimitry Andric textual header "llvm/BinaryFormat/MsgPack.def" 109*06c3fb27SDimitry Andric} 110*06c3fb27SDimitry Andric 111*06c3fb27SDimitry Andricmodule LLVM_Config { 112*06c3fb27SDimitry Andric requires cplusplus 113*06c3fb27SDimitry Andric umbrella "llvm/Config" 114*06c3fb27SDimitry Andric extern module LLVM_Extern_Config_Def "module.extern.modulemap" 115*06c3fb27SDimitry Andric module * { export * } 116*06c3fb27SDimitry Andric} 117*06c3fb27SDimitry Andric 118*06c3fb27SDimitry Andricmodule LLVM_DebugInfo { 119*06c3fb27SDimitry Andric requires cplusplus 120*06c3fb27SDimitry Andric module DIContext { header "llvm/DebugInfo/DIContext.h" export * } 121*06c3fb27SDimitry Andric} 122*06c3fb27SDimitry Andric 123*06c3fb27SDimitry Andricmodule LLVM_DebugInfo_DWARF { 124*06c3fb27SDimitry Andric requires cplusplus 125*06c3fb27SDimitry Andric 126*06c3fb27SDimitry Andric umbrella "llvm/DebugInfo/DWARF" 127*06c3fb27SDimitry Andric module * { export * } 128*06c3fb27SDimitry Andric} 129*06c3fb27SDimitry Andric 130*06c3fb27SDimitry Andricmodule LLVM_DebugInfo_PDB { 131*06c3fb27SDimitry Andric requires cplusplus 132*06c3fb27SDimitry Andric 133*06c3fb27SDimitry Andric umbrella "llvm/DebugInfo/PDB" 134*06c3fb27SDimitry Andric module * { export * } 135*06c3fb27SDimitry Andric 136*06c3fb27SDimitry Andric // Separate out this subdirectory; it's an optional component that depends on 137*06c3fb27SDimitry Andric // a separate library which might not be available. 138*06c3fb27SDimitry Andric // 139*06c3fb27SDimitry Andric // FIXME: There should be a better way to specify this. 140*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIADataStream.h" 141*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h" 142*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumFrameData.h" 143*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumInjectedSources.h" 144*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h" 145*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSectionContribs.h" 146*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h" 147*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h" 148*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAEnumTables.h" 149*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAError.h" 150*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAFrameData.h" 151*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h" 152*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIALineNumber.h" 153*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIARawSymbol.h" 154*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIASectionContrib.h" 155*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIASession.h" 156*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIASourceFile.h" 157*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIASupport.h" 158*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIATable.h" 159*06c3fb27SDimitry Andric exclude header "llvm/DebugInfo/PDB/DIA/DIAUtils.h" 160*06c3fb27SDimitry Andric} 161*06c3fb27SDimitry Andric 162*06c3fb27SDimitry Andricmodule LLVM_DebugInfo_PDB_DIA { 163*06c3fb27SDimitry Andric requires cplusplus 164*06c3fb27SDimitry Andric 165*06c3fb27SDimitry Andric umbrella "llvm/DebugInfo/PDB/DIA" 166*06c3fb27SDimitry Andric module * { export * } 167*06c3fb27SDimitry Andric} 168*06c3fb27SDimitry Andric 169*06c3fb27SDimitry Andricmodule LLVM_DebugInfo_MSF { 170*06c3fb27SDimitry Andric requires cplusplus 171*06c3fb27SDimitry Andric 172*06c3fb27SDimitry Andric umbrella "llvm/DebugInfo/MSF" 173*06c3fb27SDimitry Andric module * { export * } 174*06c3fb27SDimitry Andric} 175*06c3fb27SDimitry Andric 176*06c3fb27SDimitry Andricmodule LLVM_DebugInfo_CodeView { 177*06c3fb27SDimitry Andric requires cplusplus 178*06c3fb27SDimitry Andric 179*06c3fb27SDimitry Andric umbrella "llvm/DebugInfo/CodeView" 180*06c3fb27SDimitry Andric module * { export * } 181*06c3fb27SDimitry Andric 182*06c3fb27SDimitry Andric // These are intended for (repeated) textual inclusion. 183*06c3fb27SDimitry Andric textual header "llvm/DebugInfo/CodeView/CodeViewRegisters.def" 184*06c3fb27SDimitry Andric textual header "llvm/DebugInfo/CodeView/CodeViewTypes.def" 185*06c3fb27SDimitry Andric textual header "llvm/DebugInfo/CodeView/CodeViewSymbols.def" 186*06c3fb27SDimitry Andric} 187*06c3fb27SDimitry Andric 188*06c3fb27SDimitry Andricmodule LLVM_DWARFLinker { 189*06c3fb27SDimitry Andric requires cplusplus 190*06c3fb27SDimitry Andric 191*06c3fb27SDimitry Andric umbrella "llvm/DWARFLinker" 192*06c3fb27SDimitry Andric module * { export * } 193*06c3fb27SDimitry Andric} 194*06c3fb27SDimitry Andric 195*06c3fb27SDimitry Andricmodule LLVM_ExecutionEngine { 196*06c3fb27SDimitry Andric requires cplusplus 197*06c3fb27SDimitry Andric 198*06c3fb27SDimitry Andric umbrella "llvm/ExecutionEngine" 199*06c3fb27SDimitry Andric module * { export * } 200*06c3fb27SDimitry Andric 201*06c3fb27SDimitry Andric // Exclude this; it's an optional component of the ExecutionEngine. 202*06c3fb27SDimitry Andric exclude header "llvm/ExecutionEngine/OProfileWrapper.h" 203*06c3fb27SDimitry Andric 204*06c3fb27SDimitry Andric // Exclude these; they're intended to be included into only a single 205*06c3fb27SDimitry Andric // translation unit (or none) and aren't part of this module. 206*06c3fb27SDimitry Andric exclude header "llvm/ExecutionEngine/MCJIT.h" 207*06c3fb27SDimitry Andric exclude header "llvm/ExecutionEngine/Interpreter.h" 208*06c3fb27SDimitry Andric 209*06c3fb27SDimitry Andric // Exclude headers from LLVM_OrcSupport. 210*06c3fb27SDimitry Andric exclude header "llvm/ExecutionEngine/Orc/Shared/OrcError.h" 211*06c3fb27SDimitry Andric} 212*06c3fb27SDimitry Andric 213*06c3fb27SDimitry Andricmodule LLVM_FileCheck { 214*06c3fb27SDimitry Andric requires cplusplus 215*06c3fb27SDimitry Andric 216*06c3fb27SDimitry Andric umbrella "llvm/FileCheck" 217*06c3fb27SDimitry Andric module * { export * } 218*06c3fb27SDimitry Andric} 219*06c3fb27SDimitry Andric 220*06c3fb27SDimitry Andricmodule LLVM_Frontend_OpenMP { 221*06c3fb27SDimitry Andric requires cplusplus 222*06c3fb27SDimitry Andric 223*06c3fb27SDimitry Andric umbrella "llvm/Frontend/OpenMP" 224*06c3fb27SDimitry Andric module * { export * } 225*06c3fb27SDimitry Andric 226*06c3fb27SDimitry Andric exclude header "llvm/Frontend/OpenMP/OMPKinds.def" 227*06c3fb27SDimitry Andric} 228*06c3fb27SDimitry Andric 229*06c3fb27SDimitry Andric// Orc utilities that don't depend only on Support (not ExecutionEngine or 230*06c3fb27SDimitry Andric// IR). This is a workaround for ExecutionEngine's broken layering, and will 231*06c3fb27SDimitry Andric// be removed in the future. 232*06c3fb27SDimitry Andricmodule LLVM_OrcSupport { 233*06c3fb27SDimitry Andric requires cplusplus 234*06c3fb27SDimitry Andric 235*06c3fb27SDimitry Andric header "llvm/ExecutionEngine/Orc/Shared/OrcError.h" 236*06c3fb27SDimitry Andric 237*06c3fb27SDimitry Andric export * 238*06c3fb27SDimitry Andric} 239*06c3fb27SDimitry Andric 240*06c3fb27SDimitry Andricmodule LLVM_Pass { 241*06c3fb27SDimitry Andric module Pass { 242*06c3fb27SDimitry Andric // PassSupport.h and PassAnalysisSupport.h are made available only through 243*06c3fb27SDimitry Andric // Pass.h. 244*06c3fb27SDimitry Andric header "llvm/Pass.h" 245*06c3fb27SDimitry Andric textual header "llvm/PassSupport.h" 246*06c3fb27SDimitry Andric textual header "llvm/PassAnalysisSupport.h" 247*06c3fb27SDimitry Andric export * 248*06c3fb27SDimitry Andric } 249*06c3fb27SDimitry Andric 250*06c3fb27SDimitry Andric module PassRegistry { header "llvm/PassRegistry.h" export * } 251*06c3fb27SDimitry Andric module InitializePasses { header "llvm/InitializePasses.h" export * } 252*06c3fb27SDimitry Andric} 253*06c3fb27SDimitry Andric 254*06c3fb27SDimitry Andricmodule LLVM_IR { 255*06c3fb27SDimitry Andric requires cplusplus 256*06c3fb27SDimitry Andric 257*06c3fb27SDimitry Andric umbrella "llvm/IR" 258*06c3fb27SDimitry Andric module * { export * } 259*06c3fb27SDimitry Andric 260*06c3fb27SDimitry Andric extern module LLVM_Extern_IR_Attributes_Gen "module.extern.modulemap" 261*06c3fb27SDimitry Andric extern module LLVM_Extern_IR_Intrinsics_Gen "module.extern.modulemap" 262*06c3fb27SDimitry Andric extern module LLVM_Extern_IR_Intrinsics_Enum "module.extern.modulemap" 263*06c3fb27SDimitry Andric 264*06c3fb27SDimitry Andric // These are intended for (repeated) textual inclusion. 265*06c3fb27SDimitry Andric textual header "llvm/IR/ConstrainedOps.def" 266*06c3fb27SDimitry Andric textual header "llvm/IR/DebugInfoFlags.def" 267*06c3fb27SDimitry Andric textual header "llvm/IR/Instruction.def" 268*06c3fb27SDimitry Andric textual header "llvm/IR/Metadata.def" 269*06c3fb27SDimitry Andric textual header "llvm/IR/FixedMetadataKinds.def" 270*06c3fb27SDimitry Andric textual header "llvm/IR/Value.def" 271*06c3fb27SDimitry Andric textual header "llvm/IR/VPIntrinsics.def" 272*06c3fb27SDimitry Andric textual header "llvm/IR/RuntimeLibcalls.def" 273*06c3fb27SDimitry Andric} 274*06c3fb27SDimitry Andric 275*06c3fb27SDimitry Andricmodule LLVM_IRReader { 276*06c3fb27SDimitry Andric requires cplusplus 277*06c3fb27SDimitry Andric umbrella "llvm/IRReader" 278*06c3fb27SDimitry Andric module * { export * } 279*06c3fb27SDimitry Andric} 280*06c3fb27SDimitry Andric 281*06c3fb27SDimitry Andricmodule LLVM_LineEditor { 282*06c3fb27SDimitry Andric requires cplusplus 283*06c3fb27SDimitry Andric umbrella "llvm/LineEditor" 284*06c3fb27SDimitry Andric module * { export * } 285*06c3fb27SDimitry Andric} 286*06c3fb27SDimitry Andric 287*06c3fb27SDimitry Andricmodule LLVM_LTO { 288*06c3fb27SDimitry Andric requires cplusplus 289*06c3fb27SDimitry Andric umbrella "llvm/LTO" 290*06c3fb27SDimitry Andric module * { export * } 291*06c3fb27SDimitry Andric} 292*06c3fb27SDimitry Andric 293*06c3fb27SDimitry Andricmodule LLVM_MC { 294*06c3fb27SDimitry Andric requires cplusplus 295*06c3fb27SDimitry Andric 296*06c3fb27SDimitry Andric umbrella "llvm/MC" 297*06c3fb27SDimitry Andric module * { export * } 298*06c3fb27SDimitry Andric} 299*06c3fb27SDimitry Andric 300*06c3fb27SDimitry Andricmodule LLVM_Object { 301*06c3fb27SDimitry Andric requires cplusplus 302*06c3fb27SDimitry Andric umbrella "llvm/Object" 303*06c3fb27SDimitry Andric module * { export * } 304*06c3fb27SDimitry Andric} 305*06c3fb27SDimitry Andric 306*06c3fb27SDimitry Andricmodule LLVM_Option { 307*06c3fb27SDimitry Andric requires cplusplus 308*06c3fb27SDimitry Andric umbrella "llvm/Option" 309*06c3fb27SDimitry Andric module * { export * } 310*06c3fb27SDimitry Andric} 311*06c3fb27SDimitry Andric 312*06c3fb27SDimitry Andricmodule LLVM_ProfileData { 313*06c3fb27SDimitry Andric requires cplusplus 314*06c3fb27SDimitry Andric 315*06c3fb27SDimitry Andric umbrella "llvm/ProfileData" 316*06c3fb27SDimitry Andric module * { export * } 317*06c3fb27SDimitry Andric 318*06c3fb27SDimitry Andric textual header "llvm/ProfileData/InstrProfData.inc" 319*06c3fb27SDimitry Andric textual header "llvm/ProfileData/MemProfData.inc" 320*06c3fb27SDimitry Andric textual header "llvm/ProfileData/MIBEntryDef.inc" 321*06c3fb27SDimitry Andric} 322*06c3fb27SDimitry Andric 323*06c3fb27SDimitry Andric// FIXME: Mislayered? 324*06c3fb27SDimitry Andricmodule LLVM_Support_TargetRegistry { 325*06c3fb27SDimitry Andric requires cplusplus 326*06c3fb27SDimitry Andric header "llvm/Support/TargetRegistry.h" 327*06c3fb27SDimitry Andric export * 328*06c3fb27SDimitry Andric} 329*06c3fb27SDimitry Andric 330*06c3fb27SDimitry Andricmodule LLVM_TableGen { 331*06c3fb27SDimitry Andric requires cplusplus 332*06c3fb27SDimitry Andric umbrella "llvm/TableGen" 333*06c3fb27SDimitry Andric module * { export * } 334*06c3fb27SDimitry Andric} 335*06c3fb27SDimitry Andric 336*06c3fb27SDimitry Andricmodule LLVM_Transforms { 337*06c3fb27SDimitry Andric requires cplusplus 338*06c3fb27SDimitry Andric umbrella "llvm/Transforms" 339*06c3fb27SDimitry Andric 340*06c3fb27SDimitry Andric module * { export * } 341*06c3fb27SDimitry Andric 342*06c3fb27SDimitry Andric // Requires DEBUG_TYPE to be defined by including file. 343*06c3fb27SDimitry Andric exclude header "llvm/Transforms/Utils/InstructionWorklist.h" 344*06c3fb27SDimitry Andric} 345*06c3fb27SDimitry Andric 346*06c3fb27SDimitry Andricextern module LLVM_Extern_Utils_DataTypes "module.extern.modulemap" 347*06c3fb27SDimitry Andric 348*06c3fb27SDimitry Andric// Build the module with the tablegen-generated files needed by the 349*06c3fb27SDimitry Andric// TargetParser module before building the TargetParser module itself. 350*06c3fb27SDimitry Andricmodule TargetParserGen { 351*06c3fb27SDimitry Andric module RISCVTargetParserDef { 352*06c3fb27SDimitry Andric header "llvm/TargetParser/RISCVTargetParser.h" 353*06c3fb27SDimitry Andric extern module LLVM_Extern_TargetParser_Gen "module.extern.modulemap" 354*06c3fb27SDimitry Andric export * 355*06c3fb27SDimitry Andric } 356*06c3fb27SDimitry Andric} 357*06c3fb27SDimitry Andric 358*06c3fb27SDimitry Andric// A module covering ADT/ and Support/. These are intertwined and 359*06c3fb27SDimitry Andric// codependent, and notionally form a single module. 360*06c3fb27SDimitry Andricmodule LLVM_Utils { 361*06c3fb27SDimitry Andric module ADT { 362*06c3fb27SDimitry Andric requires cplusplus 363*06c3fb27SDimitry Andric 364*06c3fb27SDimitry Andric umbrella "llvm/ADT" 365*06c3fb27SDimitry Andric module * { export * } 366*06c3fb27SDimitry Andric } 367*06c3fb27SDimitry Andric 368*06c3fb27SDimitry Andric module Demangle { 369*06c3fb27SDimitry Andric requires cplusplus 370*06c3fb27SDimitry Andric 371*06c3fb27SDimitry Andric umbrella "llvm/Demangle" 372*06c3fb27SDimitry Andric module * { export * } 373*06c3fb27SDimitry Andric 374*06c3fb27SDimitry Andric textual header "llvm/Demangle/ItaniumNodes.def" 375*06c3fb27SDimitry Andric } 376*06c3fb27SDimitry Andric 377*06c3fb27SDimitry Andric module Support { 378*06c3fb27SDimitry Andric requires cplusplus 379*06c3fb27SDimitry Andric 380*06c3fb27SDimitry Andric umbrella "llvm/Support" 381*06c3fb27SDimitry Andric module * { export * } 382*06c3fb27SDimitry Andric 383*06c3fb27SDimitry Andric // Exclude this; deprecated. 384*06c3fb27SDimitry Andric exclude header "llvm/Support/Host.h" 385*06c3fb27SDimitry Andric 386*06c3fb27SDimitry Andric // Exclude this; it should only be used on Windows. 387*06c3fb27SDimitry Andric exclude header "llvm/Support/Windows/WindowsSupport.h" 388*06c3fb27SDimitry Andric 389*06c3fb27SDimitry Andric // Exclude these; they are fundamentally non-modular. 390*06c3fb27SDimitry Andric exclude header "llvm/Support/PluginLoader.h" 391*06c3fb27SDimitry Andric exclude header "llvm/Support/Solaris/sys/regset.h" 392*06c3fb27SDimitry Andric textual header "llvm/Support/TargetOpcodes.def" 393*06c3fb27SDimitry Andric 394*06c3fb27SDimitry Andric } 395*06c3fb27SDimitry Andric 396*06c3fb27SDimitry Andric module TargetParser { 397*06c3fb27SDimitry Andric requires cplusplus 398*06c3fb27SDimitry Andric 399*06c3fb27SDimitry Andric umbrella "llvm/TargetParser" 400*06c3fb27SDimitry Andric module * { export * } 401*06c3fb27SDimitry Andric 402*06c3fb27SDimitry Andric // These are intended for textual inclusion. 403*06c3fb27SDimitry Andric textual header "llvm/TargetParser/ARMTargetParser.def" 404*06c3fb27SDimitry Andric textual header "llvm/TargetParser/CSKYTargetParser.def" 405*06c3fb27SDimitry Andric textual header "llvm/TargetParser/X86TargetParser.def" 406*06c3fb27SDimitry Andric textual header "llvm/TargetParser/LoongArchTargetParser.def" 407*06c3fb27SDimitry Andric } 408*06c3fb27SDimitry Andric 409*06c3fb27SDimitry Andric // This part of the module is usable from both C and C++ code. 410*06c3fb27SDimitry Andric module ConvertUTF { 411*06c3fb27SDimitry Andric header "llvm/Support/ConvertUTF.h" 412*06c3fb27SDimitry Andric export * 413*06c3fb27SDimitry Andric } 414*06c3fb27SDimitry Andric} 415*06c3fb27SDimitry Andric 416*06c3fb27SDimitry Andric// This is used for a $src == $build compilation. Otherwise we use 417*06c3fb27SDimitry Andric// LLVM_Support_DataTypes_Build, defined in a module map that is 418*06c3fb27SDimitry Andric// copied into the build area. 419*06c3fb27SDimitry Andricmodule LLVM_Support_DataTypes_Src { 420*06c3fb27SDimitry Andric header "llvm/Support/DataTypes.h" 421*06c3fb27SDimitry Andric export * 422*06c3fb27SDimitry Andric} 423*06c3fb27SDimitry Andric 424*06c3fb27SDimitry Andricmodule LLVM_WindowsManifest { 425*06c3fb27SDimitry Andric requires cplusplus 426*06c3fb27SDimitry Andric umbrella "llvm/WindowsManifest" 427*06c3fb27SDimitry Andric module * { export * } 428*06c3fb27SDimitry Andric} 429