]>
Commit | Line | Data |
---|---|---|
1a4d82fc JJ |
1 | module LLVM_Analysis { |
2 | requires cplusplus | |
3 | umbrella "Analysis" | |
4 | module * { export * } | |
5 | exclude header "Analysis/BlockFrequencyInfoImpl.h" | |
6 | } | |
7 | ||
8 | module LLVM_AsmParser { requires cplusplus umbrella "AsmParser" module * { export * } } | |
9 | ||
10 | // A module covering CodeGen/ and Target/. These are intertwined | |
11 | // and codependent, and thus notionally form a single module. | |
12 | module LLVM_Backend { | |
13 | requires cplusplus | |
14 | ||
15 | module CodeGen { | |
16 | umbrella "CodeGen" | |
17 | module * { export * } | |
18 | ||
19 | // FIXME: Why is this excluded? | |
20 | exclude header "CodeGen/MachineValueType.h" | |
21 | ||
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/CommandFlags.h" | |
25 | exclude header "CodeGen/LinkAllAsmWriterComponents.h" | |
26 | exclude header "CodeGen/LinkAllCodegenComponents.h" | |
27 | } | |
28 | ||
29 | module Target { | |
30 | umbrella "Target" | |
31 | module * { export * } | |
32 | } | |
33 | ||
34 | // FIXME: Where should this go? | |
35 | module Analysis_BlockFrequencyInfoImpl { | |
36 | header "Analysis/BlockFrequencyInfoImpl.h" | |
37 | export * | |
38 | } | |
39 | } | |
40 | ||
41 | module LLVM_Bitcode { requires cplusplus umbrella "Bitcode" module * { export * } } | |
42 | module LLVM_Config { requires cplusplus umbrella "Config" module * { export * } } | |
43 | module LLVM_DebugInfo { requires cplusplus umbrella "DebugInfo" module * { export * } } | |
44 | module LLVM_ExecutionEngine { | |
45 | requires cplusplus | |
46 | ||
47 | umbrella "ExecutionEngine" | |
48 | module * { export * } | |
49 | ||
50 | // Exclude this; it's an optional component of the ExecutionEngine. | |
51 | exclude header "ExecutionEngine/OProfileWrapper.h" | |
52 | ||
53 | // Exclude these; they're intended to be included into only a single | |
54 | // translation unit (or none) and aren't part of this module. | |
55 | exclude header "ExecutionEngine/JIT.h" | |
56 | exclude header "ExecutionEngine/MCJIT.h" | |
57 | exclude header "ExecutionEngine/Interpreter.h" | |
58 | } | |
59 | ||
60 | module LLVM_IR { | |
61 | requires cplusplus | |
62 | ||
63 | // FIXME: Is this the right place for these? | |
64 | module Pass { header "Pass.h" export * } | |
65 | module PassSupport { header "PassSupport.h" export * } | |
66 | module PassAnalysisSupport { header "PassAnalysisSupport.h" export * } | |
67 | module PassRegistry { header "PassRegistry.h" export * } | |
68 | module InitializePasses { header "InitializePasses.h" export * } | |
69 | ||
70 | umbrella "IR" | |
71 | module * { export * } | |
72 | ||
73 | // We cannot have llvm/PassManager.h and llvm/IR/PassManager.h in the same TU, | |
74 | // so we can't include llvm/IR/PassManager.h in the IR module. | |
75 | exclude header "IR/PassManager.h" | |
76 | exclude header "IR/LegacyPassManager.h" | |
77 | ||
85aaf69f SL |
78 | // These are intended for (repeated) textual inclusion. |
79 | textual header "IR/Instruction.def" | |
80 | textual header "IR/Metadata.def" | |
1a4d82fc JJ |
81 | } |
82 | ||
83 | module LLVM_LegacyPassManager { | |
84 | requires cplusplus | |
85 | module CompatInterface { header "PassManager.h" export * } | |
86 | module Implementation { header "IR/LegacyPassManager.h" export * } | |
87 | } | |
88 | ||
89 | module LLVM_IR_PassManager { | |
90 | requires cplusplus | |
91 | // FIXME PR19358: This doesn't work! conflict LLVM_LegacyPassManager, "cannot use legacy pass manager and new pass manager in same file" | |
92 | header "IR/PassManager.h" | |
93 | export * | |
94 | } | |
95 | ||
96 | module LLVM_IRReader { requires cplusplus umbrella "IRReader" module * { export * } } | |
97 | module LLVM_LineEditor { requires cplusplus umbrella "LineEditor" module * { export * } } | |
98 | module LLVM_LTO { requires cplusplus umbrella "LTO" module * { export * } } | |
99 | ||
100 | module LLVM_MC { | |
101 | requires cplusplus | |
102 | ||
103 | // FIXME: Mislayered? | |
104 | module Support_TargetRegistry { | |
105 | header "Support/TargetRegistry.h" | |
106 | export * | |
107 | } | |
108 | ||
109 | umbrella "MC" | |
110 | module * { export * } | |
111 | ||
112 | // Exclude this; it's fundamentally non-modular. | |
113 | exclude header "MC/MCTargetOptionsCommandFlags.h" | |
114 | } | |
115 | ||
116 | module LLVM_Object { | |
117 | requires cplusplus | |
118 | umbrella "Object" | |
119 | module * { export * } | |
120 | } | |
121 | ||
122 | module LLVM_Option { requires cplusplus umbrella "Option" module * { export * } } | |
123 | module LLVM_TableGen { requires cplusplus umbrella "TableGen" module * { export * } } | |
124 | ||
125 | module LLVM_Transforms { | |
126 | requires cplusplus | |
127 | umbrella "Transforms" | |
128 | module * { export * } | |
129 | ||
130 | // FIXME: Excluded because it does bad things with the legacy pass manager. | |
131 | exclude header "Transforms/IPO/PassManagerBuilder.h" | |
132 | } | |
133 | ||
134 | // A module covering ADT/ and Support/. These are intertwined and | |
135 | // codependent, and notionally form a single module. | |
136 | module LLVM_Utils { | |
137 | module ADT { | |
138 | requires cplusplus | |
139 | ||
140 | umbrella "ADT" | |
141 | module * { export * } | |
142 | } | |
143 | ||
144 | module Support { | |
145 | requires cplusplus | |
146 | ||
147 | umbrella "Support" | |
148 | module * { export * } | |
149 | ||
150 | // Exclude this; it's only included on Solaris. | |
151 | exclude header "Support/Solaris.h" | |
152 | ||
153 | // Exclude this; it's only included on AIX and fundamentally non-modular. | |
154 | exclude header "Support/AIXDataTypesFix.h" | |
155 | ||
1a4d82fc JJ |
156 | // Exclude this; it's fundamentally non-modular. |
157 | exclude header "Support/PluginLoader.h" | |
158 | ||
159 | // Exclude this; it's a weirdly-factored part of llvm-gcov and conflicts | |
160 | // with the Analysis module (which also defines an llvm::GCOVOptions). | |
161 | exclude header "Support/GCOV.h" | |
162 | ||
163 | // FIXME: Mislayered? | |
164 | exclude header "Support/TargetRegistry.h" | |
85aaf69f SL |
165 | |
166 | // These are intended for textual inclusion. | |
167 | textual header "Support/ELFRelocs/AArch64.def" | |
168 | textual header "Support/ELFRelocs/ARM.def" | |
169 | textual header "Support/ELFRelocs/Hexagon.def" | |
170 | textual header "Support/ELFRelocs/i386.def" | |
171 | textual header "Support/ELFRelocs/Mips.def" | |
172 | textual header "Support/ELFRelocs/PowerPC64.def" | |
173 | textual header "Support/ELFRelocs/PowerPC.def" | |
174 | textual header "Support/ELFRelocs/Sparc.def" | |
175 | textual header "Support/ELFRelocs/SystemZ.def" | |
176 | textual header "Support/ELFRelocs/x86_64.def" | |
1a4d82fc JJ |
177 | } |
178 | } | |
179 | ||
180 | module LLVM_CodeGen_MachineValueType { | |
181 | requires cplusplus | |
182 | header "CodeGen/MachineValueType.h" | |
183 | export * | |
184 | } | |
185 | ||
186 | // This is used for a $src == $build compilation. Otherwise we use | |
187 | // LLVM_Support_DataTypes_Build, defined in a module map that is | |
188 | // copied into the build area. | |
189 | module LLVM_Support_DataTypes_Src { | |
190 | header "llvm/Support/DataTypes.h" | |
191 | export * | |
192 | } |