llvm.org GIT mirror llvm / 8c9c55f
Add more documentation advertising the -view-*-dags options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56073 91177308-0d34-0410-b5e6-96231b3b80d8 Dan Gohman 12 years ago
1 changed file(s) with 21 addition(s) and 10 deletion(s). Raw diff Collapse all Expand all
856856 rest of the code generation passes are run.

857857
858858

One great way to visualize what is going on here is to take advantage of a

859 few LLC command line options. In particular, the -view-isel-dags
860 option pops up a window with the SelectionDAG input to the Select phase for all
861 of the code compiled (if you only get errors printed to the console while using
862 this, you probably need to configure
863 your system to add support for it). The -view-sched-dags option
864 views the SelectionDAG output from the Select phase and input to the Scheduler
865 phase. The -view-sunit-dags option views the ScheduleDAG, which is
866 based on the final SelectionDAG, with nodes that must be scheduled as a unit
867 bundled together into a single node, and with immediate operands and other
868 nodes that aren't relevent for scheduling omitted.
859 few LLC command line options. The following options pop up a window displaying
860 the SelectionDAG at specific times (if you only get errors printed to the console
861 while using this, you probably
862 need to configure your system to
863 add support for it).

864
865
866
  • -view-dag-combine1-dags displays the DAG after being built, before
  • 867 the first optimization pass.
    868
  • -view-legalize-dags displays the DAG before Legalization.
  • 869
  • -view-dag-combine2-dags displays the DAG before the second
  • 870 optimization pass.
    871
  • -view-isel-dags displays the DAG before the Select phase.
  • 872
  • -view-sched-dags displays the DAG before Scheduling.
  • 873
    874
    875

    The -view-sunit-dags displays the Scheduler's dependency graph.

    876 This graph is based on the final SelectionDAG, with nodes that must be
    877 scheduled together bundled into a single scheduling-unit node, and with
    878 immediate operands and other nodes that aren't relevent for scheduling
    879 omitted.
    869880

    870881
    871882