【问题标题】:How can I find the flag dependency or conflict in LLVM?如何在 LLVM 中找到标志依赖或冲突?
【发布时间】:2021-07-01 06:57:24
【问题描述】:

据我所知,GCC 有这个网站来找出使用 while 优化的不同标志之间的关系。 GCC example website。就像 fpartialInlining 只有在 findirectInlining 开启时才有用。

我认为在clang中也会发生同样的事情,换句话说,我认为不同的pass在LLVM(CLANG)中可能存在这种依赖/冲突关系。

但是在检查了开发人员提供的所有文档后,我发现它只是说明了这些通行证中的功能。 LLVM PASS DOC

所以我认为我的问题可以分为两部分:

  1. LLVM PASS 中是否存在依赖关系或不存在此类依赖关系/冲突
  2. 如果有,我怎样才能找到它们。

【问题讨论】:

    标签: clang llvm flags


    【解决方案1】:

    在使用 clang 编译任何 c 或 c++ 代码时,您可以通过 clang 找到哪些通道正在使用哪些优化级别,并尝试找出依赖关系。例如:

    clang -O2 --target=riscv32 -mllvm -debug-pass=Structure example.c
    

    (您也可以使用-debug-pass=Arguments 代替-debug-pass=Structure。这取决于可读性。)

    这将给出 clang 在 2. riscv32 目标的优化级别使用的通道。如果您不指定目标,它会将默认设置为您的主机目标,并请记住,一些使用的通道更改与相同优化级别的不同目标相关。

    【讨论】:

      猜你喜欢
      • 2014-12-16
      • 2017-05-08
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      • 2019-12-24
      相关资源
      最近更新 更多