From 30616362d3a55592ec12abd7152af370ed1df709 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Fri, 14 Feb 2014 22:36:16 +0000 Subject: Add extern template instantiations of llvm::Calculate. 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. llvm-svn: 201440 --- llvm/lib/IR/Dominators.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'llvm/lib/IR/Dominators.cpp') diff --git a/llvm/lib/IR/Dominators.cpp b/llvm/lib/IR/Dominators.cpp index 8fa742f745a..baa6019098d 100644 --- a/llvm/lib/IR/Dominators.cpp +++ b/llvm/lib/IR/Dominators.cpp @@ -64,6 +64,16 @@ bool BasicBlockEdge::isSingleEdge() const { TEMPLATE_INSTANTIATION(class llvm::DomTreeNodeBase); TEMPLATE_INSTANTIATION(class llvm::DominatorTreeBase); +#define LLVM_COMMA , +TEMPLATE_INSTANTIATION(void llvm::Calculate( + DominatorTreeBase::NodeType> &DT + LLVM_COMMA Function &F)); +TEMPLATE_INSTANTIATION(void llvm::Calculate< + Function LLVM_COMMA Inverse >(DominatorTreeBase< + typename GraphTraits >::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! -- cgit v1.2.3