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