【问题标题】:Print a dot file from llvm pass从 llvm pass 打印一个点文件
【发布时间】:2014-05-01 15:26:44
【问题描述】:

我知道,从您的 llvm 通行证中,您可以调用: viewCFG() 或 viewCFGOnly 来查看函数的图形化表示。这些会创建 .dot 文件并将其存储在 linux 下的 \tmp 文件夹中的某个位置。有没有办法指定.dot代码保存在哪个文件中?

【问题讨论】:

    标签: c++ c compiler-construction llvm llvm-ir


    【解决方案1】:

    取自: http://llvm.org/docs/doxygen/html/CFGPrinter_8cpp_source.html

       std::string Filename = "cfg." + F.getName().str() + ".dot";
       errs() << "Writing '" << Filename << "'...";
    
       std::string ErrorInfo;
       raw_fd_ostream File(Filename.c_str(), ErrorInfo, sys::fs::F_Text);
    
       if (ErrorInfo.empty())
         WriteGraph(File, (const Function*)&F);
       else
       errs() << "  error opening file for writing!";
       errs() << "\n";
       return false;
    

    使用 GraphWriter.h 接口

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      相关资源
      最近更新 更多