OSDN Git Service

Reland: [Timers] Use the pass argument name for JSON keys in time-passes
authorFrancis Visoiu Mistrih <francisvm@yahoo.com>
Wed, 13 Jun 2018 21:03:56 +0000 (21:03 +0000)
committerFrancis Visoiu Mistrih <francisvm@yahoo.com>
Wed, 13 Jun 2018 21:03:56 +0000 (21:03 +0000)
commit68d5d59240f4e6fbeaafbf01bb5ea37722ffc263
tree15d363b2c8b269b3e6fc894067e47ffbca5c41d6
parent77fc0e911916581ad68a06ee7319fd802f225a88
Reland: [Timers] Use the pass argument name for JSON keys in time-passes

When using clang --save-stats -mllvm -time-passes, both timers and stats
end up in the same json file.

We could end up with things like:

{
  "asm-printer.EmittedInsts": 1,
  "time.pass.Virtual Register Map.wall": 2.9015541076660156e-04,
  "time.pass.Virtual Register Map.user": 2.0500000000000379e-04,
  "time.pass.Virtual Register Map.sys": 8.5000000000001741e-05,
}

This patch makes use of the pass argument name (if available) in the
JSON key to end up with things like:

{
  "asm-printer.EmittedInsts": 1,
  "time.pass.virtregmap.wall": 2.9015541076660156e-04,
  "time.pass.virtregmap.user": 2.0500000000000379e-04,
  "time.pass.virtregmap.sys": 8.5000000000001741e-05,
}

This also helps avoiding to write another JSON printer to handle all the
cases that we could have in our pass names.

Fixed test instead of adding a new one originally from r334649.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334657 91177308-0d34-0410-b5e6-96231b3b80d8
lib/IR/LegacyPassManager.cpp
test/Other/statistic.ll