as others already pointed out, I committed the first piece of such an infrastructure in LLVM commit 202474 and clang commit 202475. This is
mostly the backend and printing infrastructure.

Thanks, Tobias. �I've browsed the two patches and I think they're going to be exactly what I need. IIUC, the patches add two new LLVM instructions remark and note. These are inserted in the IL by the passes and the compiler emits them as diagnostic if the right -W flag is enabled?
">

(original) (raw)




On Thu, Mar 6, 2014 at 12:22 PM, Diego Novillo <dnovillo@google.com> wrote:
On Thu, Mar 6, 2014 at 2:44 PM, Tobias Grosser <tobias@grosser.es> wrote:

as others already pointed out, I committed the first piece of such an infrastructure in LLVM commit 202474 and clang commit 202475\. This is
mostly the backend and printing infrastructure.

Thanks, Tobias. �I've browsed the two patches and I think they're going to be exactly what I need. IIUC, the patches add two new LLVM instructions remark and note. These are inserted in the IL by the passes and the compiler emits them as diagnostic if the right -W flag is enabled?

One question I have from the Clang patch. If I compile with -Weverything, will this enable all warnings \*and\* remarks? In this context, I only want to enable all remarks. �In fact, I want to enable a family of remarks: the optimization remarks.

There will be other modifiers to these remarks as well:

  1. Report \*missed\* optimizations, instead of the successful ones.
  2. Increase verbosity of the report. This would be done using note nodes, I expect. But we may want varying degrees of verbosity.
  3. Group families of optimizations. For example, i want to report on all loop-related optimizations.
  4. IIRC, GCC's -fopt-info will also allow you to collect the reports into a separate text file. Not sure how useful I find this feature myself.

Re. 4, to name a few that can be handy sometimes: 1) not contaminate stderr; 2) per TU report; 3) Per opt-group report etc. ��

Also in GCC's original design, per-pass report filtering was supported, but that was considered too developer oriented.

David

Thanks. Diego.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
LLVM Developers mailing list
LLVMdev@cs.uiuc.edu � � � � http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev