diff options
Diffstat (limited to 'include/llvm/module.modulemap')
-rw-r--r-- | include/llvm/module.modulemap | 96 |
1 files changed, 78 insertions, 18 deletions
diff --git a/include/llvm/module.modulemap b/include/llvm/module.modulemap index d74ada6faa619..cc1895011dc33 100644 --- a/include/llvm/module.modulemap +++ b/include/llvm/module.modulemap @@ -3,9 +3,6 @@ module LLVM_Analysis { umbrella "Analysis" module * { export * } - // FIXME: Why is this excluded? - exclude header "Analysis/BlockFrequencyInfoImpl.h" - // This is intended for (repeated) textual inclusion. textual header "Analysis/TargetLibraryInfo.def" } @@ -37,12 +34,9 @@ module LLVM_Backend { module Target { umbrella "Target" module * { export * } - } - // FIXME: Where should this go? - module Analysis_BlockFrequencyInfoImpl { - header "Analysis/BlockFrequencyInfoImpl.h" - export * + // This is intended for (repeated) textual inclusion. + textual header "Target/TargetOpcodes.def" } } @@ -90,6 +84,17 @@ module LLVM_DebugInfo_PDB_DIA { module * { export * } } +module LLVM_DebugInfo_CodeView { + requires cplusplus + + umbrella "DebugInfo/CodeView" + module * { export * } + + // These are intended for (repeated) textual inclusion. + textual header "DebugInfo/CodeView/TypeRecords.def" + textual header "DebugInfo/CodeView/CVSymbolTypes.def" +} + module LLVM_ExecutionEngine { requires cplusplus @@ -101,21 +106,64 @@ module LLVM_ExecutionEngine { // Exclude these; they're intended to be included into only a single // translation unit (or none) and aren't part of this module. - exclude header "ExecutionEngine/JIT.h" exclude header "ExecutionEngine/MCJIT.h" exclude header "ExecutionEngine/Interpreter.h" exclude header "ExecutionEngine/OrcMCJITReplacement.h" } -module LLVM_IR { - requires cplusplus +module LLVM_Pass { + module Pass { + // PassSupport.h and PassAnalysisSupport.h are made available only through + // Pass.h. + header "Pass.h" + header "PassSupport.h" + header "PassAnalysisSupport.h" + export * + } - // FIXME: Is this the right place for these? - module Pass { header "Pass.h" export * } - module PassSupport { header "PassSupport.h" export * } - module PassAnalysisSupport { header "PassAnalysisSupport.h" export * } module PassRegistry { header "PassRegistry.h" export * } module InitializePasses { header "InitializePasses.h" export * } +} + +module LLVM_intrinsic_gen { + requires cplusplus + + // Delay building the modules containing dependencies to Attributes.h and + // Intrinsics.h because they need to be generated by tablegen first. + + // Attributes.h + module IR_Argument { header "IR/Argument.h" export * } + module IR_Attributes { header "IR/Attributes.h" export * } + module IR_CallSite { header "IR/CallSite.h" export * } + module IR_ConstantFolder { header "IR/ConstantFolder.h" export * } + module IR_NoFolder { header "IR/NoFolder.h" export * } + module IR_Module { header "IR/Module.h" export * } + module IR_ModuleSummaryIndex { header "IR/ModuleSummaryIndex.h" export * } + module IR_Function { header "IR/Function.h" export * } + module IR_InstrTypes { header "IR/InstrTypes.h" export * } + module IR_Instructions { header "IR/Instructions.h" export * } + + + // Intrinsics.h + module IR_CFG { header "IR/CFG.h" export * } + module IR_ConstantRange { header "IR/ConstantRange.h" export * } + module IR_Dominators { header "IR/Dominators.h" export * } + module IR_IRBuilder { header "IR/IRBuilder.h" export * } + module IR_PassManager { header "IR/PassManager.h" export * } + module IR_PredIteratorCache { header "IR/PredIteratorCache.h" export * } + module IR_Verifier { header "IR/Verifier.h" export * } + module IR_InstIterator { header "IR/InstIterator.h" export * } + module IR_InstVisitor { header "IR/InstVisitor.h" export * } + module IR_Intrinsics { header "IR/Intrinsics.h" export * } + module IR_IntrinsicInst { header "IR/IntrinsicInst.h" export * } + module IR_PatternMatch { header "IR/PatternMatch.h" export * } + module IR_Statepoint { header "IR/Statepoint.h" export * } + + export * +} + +module LLVM_IR { + requires cplusplus umbrella "IR" module * { export * } @@ -154,6 +202,16 @@ module LLVM_Object { } module LLVM_Option { requires cplusplus umbrella "Option" module * { export * } } + +module LLVM_ProfileData { + requires cplusplus + + umbrella "ProfileData" + module * { export * } + + textual header "ProfileData/InstrProfData.inc" +} + module LLVM_TableGen { requires cplusplus umbrella "TableGen" module * { export * } } module LLVM_Transforms { @@ -184,9 +242,6 @@ module LLVM_Utils { // Exclude this; it's only included on Solaris. exclude header "Support/Solaris.h" - // Exclude this; it's only included on AIX and fundamentally non-modular. - exclude header "Support/AIXDataTypesFix.h" - // Exclude this; it's fundamentally non-modular. exclude header "Support/PluginLoader.h" @@ -195,12 +250,17 @@ module LLVM_Utils { // These are intended for textual inclusion. textual header "Support/ARMTargetParser.def" + textual header "Support/AArch64TargetParser.def" textual header "Support/Dwarf.def" + textual header "Support/MachO.def" textual header "Support/ELFRelocs/AArch64.def" + textual header "Support/ELFRelocs/AMDGPU.def" textual header "Support/ELFRelocs/ARM.def" textual header "Support/ELFRelocs/AVR.def" + textual header "Support/ELFRelocs/BPF.def" textual header "Support/ELFRelocs/Hexagon.def" textual header "Support/ELFRelocs/i386.def" + textual header "Support/ELFRelocs/Lanai.def" textual header "Support/ELFRelocs/Mips.def" textual header "Support/ELFRelocs/PowerPC64.def" textual header "Support/ELFRelocs/PowerPC.def" |