This should be a small build time improvement in general and fixes
the build on OS X with -DBUILD_SHARED_LIBS=ON.
The issue is that not all users are including GenericDomTreeConstruction.h,
causing undefined references when ld64 managed to hide the
linkonce_odr symbols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201440
91177308-0d34-0410-b5e6-
96231b3b80d8
EXTERN_TEMPLATE_INSTANTIATION(class DomTreeNodeBase<BasicBlock>);
EXTERN_TEMPLATE_INSTANTIATION(class DominatorTreeBase<BasicBlock>);
+#define LLVM_COMMA ,
+EXTERN_TEMPLATE_INSTANTIATION(
+ void llvm::Calculate<Function LLVM_COMMA BasicBlock *>(
+ DominatorTreeBase<typename GraphTraits<BasicBlock *>::NodeType> &DT
+ LLVM_COMMA Function &F));
+EXTERN_TEMPLATE_INSTANTIATION(void llvm::Calculate<
+ Function LLVM_COMMA Inverse<BasicBlock *> >(DominatorTreeBase<
+ typename GraphTraits<Inverse<BasicBlock *> >::NodeType> &DT LLVM_COMMA
+ Function &F));
+#undef LLVM_COMMA
+
typedef DomTreeNodeBase<BasicBlock> DomTreeNode;
class BasicBlockEdge {
TEMPLATE_INSTANTIATION(class llvm::DomTreeNodeBase<BasicBlock>);
TEMPLATE_INSTANTIATION(class llvm::DominatorTreeBase<BasicBlock>);
+#define LLVM_COMMA ,
+TEMPLATE_INSTANTIATION(void llvm::Calculate<Function LLVM_COMMA BasicBlock *>(
+ DominatorTreeBase<typename GraphTraits<BasicBlock *>::NodeType> &DT
+ LLVM_COMMA Function &F));
+TEMPLATE_INSTANTIATION(void llvm::Calculate<
+ Function LLVM_COMMA Inverse<BasicBlock *> >(DominatorTreeBase<
+ typename GraphTraits<Inverse<BasicBlock *> >::NodeType> &DT LLVM_COMMA
+ Function &F));
+#undef LLVM_COMMA
+
// dominates - Return true if Def dominates a use in User. This performs
// the special checks necessary if Def and User are in the same basic block.
// Note that Def doesn't dominate a use in Def itself!