From 8bdb7dbe57193057941aad79bb57c09a6df2e004 Mon Sep 17 00:00:00 2001 From: Daniel Berlin Date: Mon, 13 Apr 2015 22:36:38 +0000 Subject: [PATCH] Allow printing functions with an optional annotationwriter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234807 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/IR/Function.h | 4 ++++ lib/IR/AsmWriter.cpp | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/include/llvm/IR/Function.h b/include/llvm/IR/Function.h index acbabdda79f..e94bf1fbe00 100644 --- a/include/llvm/IR/Function.h +++ b/include/llvm/IR/Function.h @@ -453,6 +453,10 @@ public: Constant *getPrologueData() const; void setPrologueData(Constant *PrologueData); + /// Print the function to an output stream with an optional + /// AssemblyAnnotationWriter. + void print(raw_ostream &OS, AssemblyAnnotationWriter *AAW = nullptr) const; + /// viewCFG - This function is meant for use from the debugger. You can just /// say 'call F->viewCFG()' and a ghostview window should pop up from the /// program, displaying the CFG of the current function with the code for each diff --git a/lib/IR/AsmWriter.cpp b/lib/IR/AsmWriter.cpp index f3ca13db5dd..fd09d47c745 100644 --- a/lib/IR/AsmWriter.cpp +++ b/lib/IR/AsmWriter.cpp @@ -3059,6 +3059,13 @@ void AssemblyWriter::printUseLists(const Function *F) { // External Interface declarations //===----------------------------------------------------------------------===// +void Function::print(raw_ostream &ROS, AssemblyAnnotationWriter *AAW) const { + SlotTracker SlotTable(this->getParent()); + formatted_raw_ostream OS(ROS); + AssemblyWriter W(OS, SlotTable, this->getParent(), AAW); + W.printFunction(this); +} + void Module::print(raw_ostream &ROS, AssemblyAnnotationWriter *AAW) const { SlotTracker SlotTable(this); formatted_raw_ostream OS(ROS); -- 2.11.0