LLVM上的Simplescalar支持

时间:2012-02-10 05:28:42

标签: linux ubuntu profiling llvm

我想查看LLVM IR程序的配置文件。 simplescalar模拟器是否支持LLVM?还有其他模拟器可以做同样的事情吗?

1 个答案:

答案 0 :(得分:2)

如果Simplescalar支持ARM和x86 ELF二进制文件,它可以与LLVM编译的程序一起使用。

但是如果你想进行简单的分析(在真正的CPU上运行时,程序的每个部分需要多长时间),你可以查看更多已知的分析器,如:

  • google-perftools或
  • callgrind / cachegrind或
  • oprofile的。

您不能只运行LLVM IR,因为SimpleScalar或通常的分析器不支持LLVM的IR。 IR支持lli和其他llvm工具。

如果要分析使用哪些分支以及使用频率,可以对PGO进行LLVM分析(配置文件引导的优化)。有llvm-prof utilityutils/profile.pl脚本来分析LLVM IR程序。

如何utils/profile.pl source:

# Program:  profile.pl
#
# Synopsis: Insert instrumentation code into a program, run it with the JIT,
#           then print out a profile report.
#
# Syntax:   profile.pl [OPTIONS] bytecodefile <arguments>
#
# OPTIONS may include one or more of the following:
#     -block    - Enable basicblock profiling
#     -edge     - Enable edge profiling
#     -function - Enable function profiling
#     -o <filename> - Emit profiling information to the specified file, instead
#                     of llvmprof.out
#
# Any unrecognized options are passed into the invocation of llvm-prof

内部是

  1. 使用-insert-*-profiling次通过运行opt。输出是仪表IR
  2. 使用lli运行使用的IR(希望使用JIT)
  3. 启动llvm-prof将llvmprof.out转换为可读文本
  4. PS有一些关于LLLVM分析的研究论文:llvm.org/pubs/2010-04-NeustifterProfiling.pdf