diff options
| author | Vassil Vassilev <v.g.vassilev@gmail.com> | 2016-06-28 12:27:09 +0000 |
|---|---|---|
| committer | Vassil Vassilev <v.g.vassilev@gmail.com> | 2016-06-28 12:27:09 +0000 |
| commit | 92de57e7b2ec1745770d23acfb5967f9a679d064 (patch) | |
| tree | d58501ce6ed1207e0927732e03f95439db91c3b3 | |
| parent | 444746b483c981e1b648bd58eae5e93cbfecb568 (diff) | |
| download | bcm5719-llvm-92de57e7b2ec1745770d23acfb5967f9a679d064.tar.gz bcm5719-llvm-92de57e7b2ec1745770d23acfb5967f9a679d064.zip | |
[modules] Separate intrinsic_gen dependent headers from module LLVM_IR.
Some headers in IR depend on tablegen generated code. Modules builds triggered
generation of the LLVM_IR module (including headers dependant on intrinsic_gen),
imposing a unnecessary build dependency.
Reviewed by Richard Smith.
llvm-svn: 274006
| -rw-r--r-- | llvm/include/llvm/module.modulemap | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/llvm/include/llvm/module.modulemap b/llvm/include/llvm/module.modulemap index ba20334d544..d9b4bb5551b 100644 --- a/llvm/include/llvm/module.modulemap +++ b/llvm/include/llvm/module.modulemap @@ -114,6 +114,43 @@ module LLVM_Pass { 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 |

