[all-commits] [llvm/llvm-project] 4fe0fc: [llvm-mca][JSON] Teach the PipelinePrinter how to ...

Andrea Di Biagio via All-commits all-commits at lists.llvm.org
Sat Jul 10 06:07:41 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4fe0fcd1c032091f60cabc70ee72a3b0f529a875
      https://github.com/llvm/llvm-project/commit/4fe0fcd1c032091f60cabc70ee72a3b0f529a875
  Author: Andrea Di Biagio <andrea.dibiagio at sony.com>
  Date:   2021-07-10 (Sat, 10 Jul 2021)

  Changed paths:
    A llvm/test/tools/llvm-mca/JSON/X86/instruction-tables-multiple-anonymous-regions.s
    M llvm/test/tools/llvm-mca/JSON/X86/instruction-tables-multiple-regions.s
    A llvm/test/tools/llvm-mca/JSON/X86/views-multiple-anonymous-regions.s
    M llvm/test/tools/llvm-mca/JSON/X86/views-multiple-region.s
    M llvm/test/tools/llvm-mca/JSON/X86/views.s
    M llvm/tools/llvm-mca/PipelinePrinter.cpp

  Log Message:
  -----------
  [llvm-mca][JSON] Teach the PipelinePrinter how to deal with anonymous code regions (PR51008)

This patch addresses the last remaining problems reported in PR51008.

Previous fixes for PR51008 worked under the wrong assumption that code regions
are always named (except maybe for the default region, which was automatically
named "main").

In reality, it is quite common for users to declare multiple anonymous regions.
So we cannot really use the region name as the key string of a JSON object.  In
practice, code region names are completely optional.

Using "main" for the default region was also problematic because there can be
another region with that same name.

This patch fixes these issues by introducing a json::array of regions.  Each
region has a "Name" field, which would default to the empty string for anonymous
regions.

Added a few more tests to verify that the JSON file format is still valid, and
that multiple anonymous regions all appear in the final output.




More information about the All-commits mailing list