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.