[FileCheck] Support comment directives

Authored by jdenny on May 4 2020, 3:05 PM.


[FileCheck] Support comment directives

Sometimes you want to disable a FileCheck directive without removing
it entirely, or you want to write comments that mention a directive by
name. The COM: directive makes it easy to do this. For example,
you might have:

; X32: pinsrd_1:
; X32:    pinsrd $1, 4(%esp), %xmm0

; COM: FIXME: X64 isn't working correctly yet for this part of codegen, but
; COM: X64 will have something similar to X32:
; COM:
; COM:   X64: pinsrd_1:
; COM:   X64:    pinsrd $1, %edi, %xmm0

Without this patch, you need to use some combination of rewording and
directive syntax mangling to prevent FileCheck from recognizing the
commented occurrences of X32: and X64: above as directives.
Moreover, FileCheck diagnostics have been proposed that might complain
about the occurrences of X64 that don't have the trailing :
because they look like directive typos:


I think dodging all these problems can prove tedious for test authors,
and directive syntax mangling already makes the purpose of existing
test code unclear. COM: can avoid all these problems.

This patch also updates the small set of existing tests that define
COM as a check prefix:

  • clang/test/CodeGen/default-address-space.c
  • clang/test/CodeGenOpenCL/addr-space-struct-arg.cl
  • clang/test/Driver/hip-device-libs.hip
  • llvm/test/Assembler/drop-debug-info-nonzero-alloca.ll

I think lit should support COM: as well. Perhaps clang -verify
should too.

Reviewed By: jhenderson, thopre

Differential Revision: https://reviews.llvm.org/D79276


jdennyMay 13 2020, 8:29 AM
Differential Revision
D79276: [FileCheck] Support comment directives
rG1370757dd019: Revert "[BrachProbablityInfo] Set edge probabilities at once. NFC."