forked from OSchip/llvm-project
[modules] "Specialize" a function by actually specializing a function template
rather than by adding an overload and hoping that it's declared before the code that calls it. (In a modules build, it isn't.) llvm-svn: 207133
This commit is contained in:
parent
7ceec07cf6
commit
0d9ec713e7
|
@ -59,11 +59,6 @@ private:
|
|||
void getAnalysisUsage(AnalysisUsage&) const override;
|
||||
};
|
||||
|
||||
/// Specialize WriteGraph, the standard implementation won't work.
|
||||
raw_ostream &WriteGraph(raw_ostream &O, const EdgeBundles &G,
|
||||
bool ShortNames = false,
|
||||
const Twine &Title = "");
|
||||
|
||||
} // end namespace llvm
|
||||
|
||||
#endif
|
||||
|
|
|
@ -69,15 +69,11 @@ bool EdgeBundles::runOnMachineFunction(MachineFunction &mf) {
|
|||
return false;
|
||||
}
|
||||
|
||||
/// view - Visualize the annotated bipartite CFG with Graphviz.
|
||||
void EdgeBundles::view() const {
|
||||
ViewGraph(*this, "EdgeBundles");
|
||||
}
|
||||
|
||||
/// Specialize WriteGraph, the standard implementation won't work.
|
||||
raw_ostream &llvm::WriteGraph(raw_ostream &O, const EdgeBundles &G,
|
||||
bool ShortNames,
|
||||
const Twine &Title) {
|
||||
template<>
|
||||
raw_ostream &llvm::WriteGraph<>(raw_ostream &O, const EdgeBundles &G,
|
||||
bool ShortNames,
|
||||
const Twine &Title) {
|
||||
const MachineFunction *MF = G.getMachineFunction();
|
||||
|
||||
O << "digraph {\n";
|
||||
|
@ -95,3 +91,8 @@ raw_ostream &llvm::WriteGraph(raw_ostream &O, const EdgeBundles &G,
|
|||
O << "}\n";
|
||||
return O;
|
||||
}
|
||||
|
||||
/// view - Visualize the annotated bipartite CFG with Graphviz.
|
||||
void EdgeBundles::view() const {
|
||||
ViewGraph(*this, "EdgeBundles");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue