llc没有调试或-view-dag-combine1-dags选项

时间:2018-07-11 18:35:22

标签: llvm llc

我已经通过软件包管理器在计算机上安装了llc程序(当然,我安装了6.0.0版本的LLVM)。另外,我有从源头构建的。我想要的是查看由llvm生成的DAG。但是,不幸的是,两个版本的-debug都没有-view-dag-combine1-dagsllc等选项。这使我发疯,因为它无处不在,该标志应该对我有帮助,但是如果我没有这些标志,则未提及该怎么办。在帮助和帮助中,没有这样的选择。我已经安装了graphviz,dot和gv,这应该不是问题。

已编译的llc的版本。

./llc -version
LLVM (http://llvm.org/):
LLVM version 7.0.0svn
Optimized build.
Default target: x86_64-unknown-linux-gnu
Host CPU: broadwell

Registered Targets:
   and targets...

我已经用RelWithDebugInfo标志构建了它,也许我应该已经用Debug标志构建了它?还是在cmake中有我应该启用的标志?我相信我已经在Google上搜索了很多,但找不到任何信息。

2 个答案:

答案 0 :(得分:2)

使用我的调试版本执行llc --help-hidden | grep view-dag会导致:

  

-filter-view-dags =-   仅显示名称与所有名称都匹配的基本块   查看-*-dags选项
  -view-dag-combine-lt-dags-在帖子合法化dag组合之前,弹出一个窗口以显示dags   通过
  -view-dag-combine1-dags-在第一个dag组合通过之前弹出一个窗口以显示dags
  -view-dag-combine2-dags-在第二个dag组合通过之前弹出一个窗口以显示dags

如果您查看llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp,则该命令行选项位于#ifndef NDEBUG预处理程序语句之间,因此仅当您具有调试版本时才显示这些选项。

CMAKE_BUILD_TYPE更改为Debug并重新编译就足够了。

答案 1 :(得分:0)

我做到了,而且奏效了。

<form method=POST %}">
    {% csrf_token %}
     <div style="background-color:lightgreen">
        <h1>
            {% if has_written %}
                You have already written the exam
            {% else %}
                CHOOSE THE CORRECT ANSWER
            {% endif %}

        </h1>
    </div>
    <input type="hidden" name="exam" value={{ object.id }}>
    {% for question in object.question_set.all|shuffle %}
        <article class="media content-section">
            <div class="media-body">
                <div class="article-metadata">
                    {{ forloop.counter }} &emsp; {{ question }}
                    {% comment %}
                    <!-- <small class="text-muted">{{ exam.start_date|date:"F d, Y"}}</small> -->
                    {% endcomment %}
                </div>
                    {% for value in question.get_fields %}
                        <input type="radio" id="{{ forloop.parentloop.counter }}{{ forloop.counter }}" name="{{ question.id }}" value="{{ value }}" required="True">
                        <label for="{{ forloop.parentloop.counter }}{{ forloop.counter }}" > {{ value }} </label> <br>
                    {% endfor %}
            </div>
        </article>
    {% endfor %}
    {% if has_written %}
    {% else %}
    <div class="row spacer">
        <div class="col-4 offset-2">
            <button type="submit" class="btn btn-block btn-primary">Submit</button>
        </div>
    </div>
    {% endif %}
</form>

您可以检查:https://github.com/llvm/llvm-project/blob/master/llvm/docs/CMake.rst#id5

,如果您想检查DAG,那么也许可以帮到您。

此处:https://stackoverflow.com/a/52095047/12365658