[llvm] r274006 - [modules] Separate intrinsic_gen dependent headers from module LLVM_IR.

Vassil Vassilev via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 28 05:27:09 PDT 2016


Author: vvassilev
Date: Tue Jun 28 07:27:09 2016
New Revision: 274006

URL: http://llvm.org/viewvc/llvm-project?rev=274006&view=rev
Log:
[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.

Modified:
    llvm/trunk/include/llvm/module.modulemap

Modified: llvm/trunk/include/llvm/module.modulemap
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/module.modulemap?rev=274006&r1=274005&r2=274006&view=diff
==============================================================================
--- llvm/trunk/include/llvm/module.modulemap (original)
+++ llvm/trunk/include/llvm/module.modulemap Tue Jun 28 07:27:09 2016
@@ -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
 




More information about the llvm-commits mailing list