[all-commits] [llvm/llvm-project] 821dd3: [FileCheck] Allow literal '['s before "[[var...]]"

Jay Foad via All-commits all-commits at lists.llvm.org
Thu Jan 13 01:52:45 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 821dd3b0e5b7811857e0fd0d1e9fca5ae2546cb4
      https://github.com/llvm/llvm-project/commit/821dd3b0e5b7811857e0fd0d1e9fca5ae2546cb4
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2022-01-13 (Thu, 13 Jan 2022)

  Changed paths:
    M llvm/lib/FileCheck/FileCheck.cpp
    M llvm/test/CodeGen/Mips/msa/3r-s.ll
    M llvm/test/CodeGen/Mips/msa/basic_operations_float.ll
    M llvm/test/FileCheck/regex-brackets.txt

  Log Message:
  -----------
  [FileCheck] Allow literal '['s before "[[var...]]"

Change FileCheck to accept patterns like "[[[var...]]" and treat the
excess open brackets at the start as literals.

This makes the patterns for matching assembler output with literal
brackets much cleaner. For example an AMDGPU pattern that used to be
written like:

  buffer_store_dwordx2 v{{\[}}[[LO]]:[[HI]]{{\]}}

can now be:

  buffer_store_dwordx2 v[[[LO]]:[[HI]]]

(Even before this patch the final close bracket did not need to be
wrapped in {{}}, but people tended to do it anyway for symmetry.)

This does not introduce any ambiguity since "[[" was always followed by
an identifier or '@' or '#', so "[[[" was always an error.

I've included a few test updates in this patch just for illustration and
testing. There are a couple of hundred tests that could be updated as a
follow up, mostly in test/CodeGen/.

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

Change-Id: Ia6bc6f65cb69734821c911f54a43fe1c673bcca7




More information about the All-commits mailing list