summaryrefslogtreecommitdiffstats
path: root/llgo
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2016-04-08 22:42:22 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2016-04-08 22:42:22 +0000
commitb24f4fb6171eaf2caa8f3cf6adcf11821ec1d27c (patch)
treeb814cc9651aa08d877d84d875c8cb220ed5aab1f /llgo
parent86e8cc8a9b0689ebb1a797bf7070bea092408653 (diff)
downloadbcm5719-llvm-b24f4fb6171eaf2caa8f3cf6adcf11821ec1d27c.tar.gz
bcm5719-llvm-b24f4fb6171eaf2caa8f3cf6adcf11821ec1d27c.zip
benchcomp: Add a mode for analyzing rule execution time in ninja log files.
llvm-svn: 265860
Diffstat (limited to 'llgo')
-rw-r--r--llgo/utils/benchcomp/main.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/llgo/utils/benchcomp/main.go b/llgo/utils/benchcomp/main.go
index 94acafc9db8..a050f7bdd5f 100644
--- a/llgo/utils/benchcomp/main.go
+++ b/llgo/utils/benchcomp/main.go
@@ -110,6 +110,34 @@ func benchnums(path, stat string) map[string]float64 {
return m
}
+func ninja_logs(path string) map[string]float64 {
+ m := make(map[string]float64)
+
+ fh, err := os.Open(path)
+ if err != nil {
+ panic(err.Error())
+ }
+
+ scanner := bufio.NewScanner(fh)
+ for scanner.Scan() {
+ elems := strings.Split(scanner.Text(), "\t")
+ if len(elems) < 4 {
+ continue
+ }
+ begin, err := strconv.ParseInt(elems[0], 10, 64)
+ if err != nil {
+ continue
+ }
+ end, err := strconv.ParseInt(elems[1], 10, 64)
+ if err != nil {
+ panic(err.Error())
+ }
+ m[elems[3]] = float64(end-begin)
+ }
+
+ return m
+}
+
func main() {
var cmp func(string) map[string]float64
switch os.Args[1] {
@@ -128,6 +156,9 @@ func main() {
cmp = func(path string) map[string]float64 {
return benchnums(path, "allocs/op")
}
+
+ case "ninja_logs":
+ cmp = ninja_logs
}
syms1 := cmp(os.Args[2])
OpenPOWER on IntegriCloud