module.modulemap 13 KB

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