Lines Matching refs:bugpoint

2 LLVM bugpoint tool: design and usage
11 ``bugpoint`` narrows down the source of problems in LLVM tools and passes. It
25 ``bugpoint`` is designed to be a useful tool without requiring any hooks into
28 appear to do stupid things or miss obvious simplifications. ``bugpoint`` is
32 that ``bugpoint`` is generally very quick unless debugging a miscompilation
38 ``bugpoint`` reads each ``.bc`` or ``.ll`` file specified on the command line
42 causes the verifier to abort), ``bugpoint`` starts the `crash debugger`_.
44 Otherwise, if the ``-output`` option was not specified, ``bugpoint`` runs the
46 generate a reference output. Once ``bugpoint`` has a reference output for the
48 selected code generator crashes, ``bugpoint`` starts the `crash debugger`_ on
54 output, ``bugpoint`` runs the test program after all of the LLVM passes have
57 `miscompilation debugger`_. Otherwise, there is no problem ``bugpoint`` can
65 If an optimizer or code generator crashes, ``bugpoint`` will try as hard as it
67 test program. First, ``bugpoint`` figures out which combination of optimizer
71 Next, ``bugpoint`` tries removing functions from the test program, to reduce its
75 reduce the size of the function as much as possible. Finally, ``bugpoint``
77 failure. At the end, ``bugpoint`` should tell you what passes crash, give you a
111 Advice for using bugpoint
114 ``bugpoint`` can be a remarkably useful tool, but it sometimes works in
117 * In the code generator and miscompilation debuggers, ``bugpoint`` only works
119 ``argv[0]``, the date, time, or any other "random" data, ``bugpoint`` may
124 * In the `crash debugger`_, ``bugpoint`` does not distinguish different crashes
125 during reduction. Thus, if new crash or miscompilation happens, ``bugpoint``
128 message, see ``-compile-command`` in :doc:`CommandGuide/bugpoint`.
134 * ``bugpoint`` is extremely useful when working on a new optimization: it helps
135 track down regressions quickly. To avoid having to relink ``bugpoint`` every
136 time you change your optimization however, have ``bugpoint`` dynamically load
139 * ``bugpoint`` can generate a lot of output and run for a long period of time.
145 $ bugpoint ... |& tee bugpoint.log
147 to get a copy of ``bugpoint``'s output in the file ``bugpoint.log``, as well
150 * ``bugpoint`` cannot debug problems with the LLVM linker. If ``bugpoint``
155 * ``bugpoint`` is useful for proactively finding bugs in LLVM. Invoking
156 ``bugpoint`` with the ``-find-bugs`` option will cause the list of specified
158 repeat until a bug is found or the user kills ``bugpoint``.
160 * ``bugpoint`` can produce IR which contains long names. Run ``opt
165 What to do when bugpoint isn't enough
168 Sometimes, ``bugpoint`` is not enough. In particular, InstCombine and
170 transformations. If the process of using bugpoint has left you with still too