From: Daniel Berlin Date: Mon, 13 Apr 2015 22:36:38 +0000 (+0000) Subject: Allow printing functions with an optional annotationwriter X-Git-Tag: android-x86-7.1-r4~49323 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=8bdb7dbe57193057941aad79bb57c09a6df2e004;p=android-x86%2Fexternal-llvm.git Allow printing functions with an optional annotationwriter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234807 91177308-0d34-0410-b5e6-96231b3b80d8 --- 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);