module.modulemap 14 KB

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