Changes in directory llvm/lib/CodeGen/SelectionDAG:
SelectionDAGPrinter.cpp updated: 1.32 -> 1.33 --- Log message: For PR801: http://llvm.org/PR801 : Refactor the Graph writing code to use a common implementation which is now in lib/Support/GraphWriter.cpp. This completes the PR. Patch by Anton Korobeynikov. Thanks, Anton! --- Diffs of the changes: (+3 -91) SelectionDAGPrinter.cpp | 94 +----------------------------------------------- 1 files changed, 3 insertions(+), 91 deletions(-) Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp:1.32 llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp:1.33 --- llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp:1.32 Mon Jun 5 11:26:06 2006 +++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp Tue Jun 27 11:49:46 2006 @@ -19,8 +19,6 @@ #include "llvm/Target/MRegisterInfo.h" #include "llvm/Target/TargetMachine.h" #include "llvm/Support/GraphWriter.h" -#include "llvm/System/Path.h" -#include "llvm/System/Program.h" #include "llvm/ADT/StringExtras.h" #include "llvm/Config/config.h" #include <fstream> @@ -127,95 +125,9 @@ void SelectionDAG::viewGraph() { // This code is only for debugging! #ifndef NDEBUG - char pathsuff[9]; - - sprintf(pathsuff, "%06u", unsigned(rand())); - - sys::Path TempDir = sys::Path::GetTemporaryDirectory(); - sys::Path Filename = TempDir; - Filename.appendComponent("dag." + getMachineFunction().getFunction()->getName() + "." + pathsuff + ".dot"); - std::cerr << "Writing '" << Filename.toString() << "'... "; - std::ofstream F(Filename.toString().c_str()); - - if (!F) { - std::cerr << " error opening file for writing!\n"; - return; - } - - WriteGraph(F, this); - F.close(); - std::cerr << "\n"; - -#if HAVE_GRAPHVIZ - sys::Path Graphviz(LLVM_PATH_GRAPHVIZ); - std::vector<const char*> args; - args.push_back(Graphviz.c_str()); - args.push_back(Filename.c_str()); - args.push_back(0); - - std::cerr << "Running 'Graphviz' program... " << std::flush; - if (sys::Program::ExecuteAndWait(Graphviz, &args[0])) { - std::cerr << "Error viewing graph: 'Graphviz' not in path?\n"; - } else { - Filename.eraseFromDisk(); - return; - } -#elif (HAVE_GV && HAVE_DOT) - sys::Path PSFilename = TempDir; - PSFilename.appendComponent(std::string("dag.tempgraph") + "." + pathsuff + ".ps"); - - sys::Path dot(LLVM_PATH_DOT); - std::vector<const char*> args; - args.push_back(dot.c_str()); - args.push_back("-Tps"); - args.push_back("-Nfontname=Courier"); - args.push_back("-Gsize=7.5,10"); - args.push_back(Filename.c_str()); - args.push_back("-o"); - args.push_back(PSFilename.c_str()); - args.push_back(0); - - std::cerr << "Running 'dot' program... " << std::flush; - if (sys::Program::ExecuteAndWait(dot, &args[0])) { - std::cerr << "Error viewing graph: 'dot' not in path?\n"; - } else { - std::cerr << "\n"; - - sys::Path gv(LLVM_PATH_GV); - args.clear(); - args.push_back(gv.c_str()); - args.push_back(PSFilename.c_str()); - args.push_back(0); - - sys::Program::ExecuteAndWait(gv, &args[0]); - } - Filename.eraseFromDisk(); - PSFilename.eraseFromDisk(); - return; -#elif HAVE_DOTTY - sys::Path dotty(LLVM_PATH_DOTTY); - std::vector<const char*> args; - args.push_back(dotty.c_str()); - args.push_back(Filename.c_str()); - args.push_back(0); - - std::cerr << "Running 'dotty' program... " << std::flush; - if (sys::Program::ExecuteAndWait(dotty, &args[0])) { - std::cerr << "Error viewing graph: 'dotty' not in path?\n"; - } else { -#ifndef __MINGW32__ // Dotty spawns another app and doesn't wait until it returns - Filename.eraseFromDisk(); -#endif - return; - } -#endif - -#endif // NDEBUG + ViewGraph(this, "dag." + getMachineFunction().getFunction()->getName()); +#else std::cerr << "SelectionDAG::viewGraph is only available in debug builds on " << "systems with Graphviz or gv!\n"; - -#ifndef NDEBUG - Filename.eraseFromDisk(); - TempDir.eraseFromDisk(true); -#endif +#endif // NDEBUG } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits