{"action":"created","issue":{"url":"https://api.github.com/repos/golang/go/issues/14934","repository_url":"https://api.github.com/repos/golang/go","labels_url":"https://api.github.com/repos/golang/go/issues/14934/labels{/name}","comments_url":"https://api.github.com/repos/golang/go/issues/14934/comments","events_url":"https://api.github.com/repos/golang/go/issues/14934/events","html_url":"https://github.com/golang/go/issues/14934","id":143070162,"number":14934,"title":"cmd/compile: \"go test\" taking ~38x longer on Go tip than on Go 1.4","user":{"login":"mewmew","id":1414531,"avatar_url":"https://avatars.githubusercontent.com/u/1414531?v=3","gravatar_id":"","url":"https://api.github.com/users/mewmew","html_url":"https://github.com/mewmew","followers_url":"https://api.github.com/users/mewmew/followers","following_url":"https://api.github.com/users/mewmew/following{/other_user}","gists_url":"https://api.github.com/users/mewmew/gists{/gist_id}","starred_url":"https://api.github.com/users/mewmew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mewmew/subscriptions","organizations_url":"https://api.github.com/users/mewmew/orgs","repos_url":"https://api.github.com/users/mewmew/repos","events_url":"https://api.github.com/users/mewmew/events{/privacy}","received_events_url":"https://api.github.com/users/mewmew/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/golang/go/labels/ToolSpeed","name":"ToolSpeed","color":"ededed"}],"state":"open","locked":false,"assignee":{"login":"dr2chase","id":1928999,"avatar_url":"https://avatars.githubusercontent.com/u/1928999?v=3","gravatar_id":"","url":"https://api.github.com/users/dr2chase","html_url":"https://github.com/dr2chase","followers_url":"https://api.github.com/users/dr2chase/followers","following_url":"https://api.github.com/users/dr2chase/following{/other_user}","gists_url":"https://api.github.com/users/dr2chase/gists{/gist_id}","starred_url":"https://api.github.com/users/dr2chase/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dr2chase/subscriptions","organizations_url":"https://api.github.com/users/dr2chase/orgs","repos_url":"https://api.github.com/users/dr2chase/repos","events_url":"https://api.github.com/users/dr2chase/events{/privacy}","received_events_url":"https://api.github.com/users/dr2chase/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/golang/go/milestones/31","html_url":"https://github.com/golang/go/milestones/Go1.7","labels_url":"https://api.github.com/repos/golang/go/milestones/31/labels","id":1414133,"number":31,"title":"Go1.7","description":"","creator":{"login":"bradfitz","id":2621,"avatar_url":"https://avatars.githubusercontent.com/u/2621?v=3","gravatar_id":"","url":"https://api.github.com/users/bradfitz","html_url":"https://github.com/bradfitz","followers_url":"https://api.github.com/users/bradfitz/followers","following_url":"https://api.github.com/users/bradfitz/following{/other_user}","gists_url":"https://api.github.com/users/bradfitz/gists{/gist_id}","starred_url":"https://api.github.com/users/bradfitz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bradfitz/subscriptions","organizations_url":"https://api.github.com/users/bradfitz/orgs","repos_url":"https://api.github.com/users/bradfitz/repos","events_url":"https://api.github.com/users/bradfitz/events{/privacy}","received_events_url":"https://api.github.com/users/bradfitz/received_events","type":"User","site_admin":false},"open_issues":284,"closed_issues":301,"state":"open","created_at":"2015-11-16T16:57:07Z","updated_at":"2016-04-29T05:09:40Z","due_on":"2016-07-31T07:00:00Z","closed_at":null},"comments":28,"created_at":"2016-03-23T20:24:11Z","updated_at":"2016-04-29T12:45:10Z","closed_at":null,"body":"1. What version of Go are you using (`go version`)?\r\n\r\nFor Go tip\r\n\r\n```\r\n[~]$ go version\r\ngo version devel +0659cf6 Wed Mar 23 19:22:53 2016 +0000 linux/amd64\r\n```\r\n\r\nand for Go 1.4\r\n\r\n```\r\n[~]$ go version\r\ngo version go1.4.3 linux/amd64\r\n```\r\n\r\n2. What operating system and processor architecture are you using (`go env`)?\r\n\r\nFor Go tip\r\n\r\n```\r\n[/tmp/gotip/src/github.com/mewmew/uc/uc/gocc/lexer]$ go env\r\nGOARCH=\"amd64\"\r\nGOBIN=\"\"\r\nGOEXE=\"\"\r\nGOHOSTARCH=\"amd64\"\r\nGOHOSTOS=\"linux\"\r\nGOOS=\"linux\"\r\nGOPATH=\"/tmp/gotip\"\r\nGORACE=\"\"\r\nGOROOT=\"/home/u/go\"\r\nGOTOOLDIR=\"/home/u/go/pkg/tool/linux_amd64\"\r\nCC=\"gcc\"\r\nGOGCCFLAGS=\"-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build981577852=/tmp/go-build -gno-record-gcc-switches\"\r\nCXX=\"g++\"\r\nCGO_ENABLED=\"1\"\r\n```\r\n\r\nand for Go 1.4\r\n\r\n```\r\n[/tmp/go14/src/github.com/mewmew/uc/uc/gocc/lexer]$ go env\r\nGOARCH=\"amd64\"\r\nGOBIN=\"\"\r\nGOCHAR=\"6\"\r\nGOEXE=\"\"\r\nGOHOSTARCH=\"amd64\"\r\nGOHOSTOS=\"linux\"\r\nGOOS=\"linux\"\r\nGOPATH=\"/tmp/go14\"\r\nGORACE=\"\"\r\nGOROOT=\"/home/u/go1.4\"\r\nGOTOOLDIR=\"/home/u/go1.4/pkg/tool/linux_amd64\"\r\nCC=\"gcc\"\r\nGOGCCFLAGS=\"-fPIC -m64 -pthread -fmessage-length=0\"\r\nCXX=\"g++\"\r\nCGO_ENABLED=\"1\"\r\n```\r\n\r\n3. What did you do?\r\nIf possible, provide a recipe for reproducing the error.\r\nA complete runnable program is good.\r\nA link on play.golang.org is best.\r\n\r\nFor Go tip\r\n\r\n```\r\n[~]$ export GOPATH=/tmp/gotip\r\n[~]$ go get github.com/mewmew/uc\r\n[~]$ go get github.com/goccmack/gocc\r\n[~]$ export PATH=${GOPATH}/bin:${PATH}\r\n[~]$ cd ${GOPATH}/src/github.com/mewmew/uc\r\n[/tmp/gotip/src/github.com/mewmew/uc]$ git checkout 9557c0010cde8953d0719ab5df170b8cfbdc3a3f\r\n[/tmp/gotip/src/github.com/mewmew/uc]$ cd uc/gocc\r\n[/tmp/gotip/src/github.com/mewmew/uc/uc/gocc]$ make gen\r\n[/tmp/gotip/src/github.com/mewmew/uc/uc/gocc]$ cd lexer\r\n[/tmp/gotip/src/github.com/mewmew/uc/uc/gocc/lexer]$ time go test\r\n2016/03/23 21:05:38 path: ../../testdata/incorrect/lexer/bad.c\r\n2016/03/23 21:05:38 path: ../../testdata/incorrect/lexer/good.c\r\n2016/03/23 21:05:38 path: ../../testdata/incorrect/lexer/long-char.c\r\n2016/03/23 21:05:38 path: ../../testdata/incorrect/lexer/ugly.c\r\n2016/03/23 21:05:38 path: ../../testdata/quiet/lexer/l01.c\r\n2016/03/23 21:05:38 path: ../../testdata/quiet/lexer/l02.c\r\n2016/03/23 21:05:38 path: ../../testdata/quiet/lexer/l03.c\r\n2016/03/23 21:05:38 path: ../../testdata/quiet/lexer/l04.c\r\n2016/03/23 21:05:38 path: ../../testdata/quiet/lexer/l05.c\r\n2016/03/23 21:05:38 path: ../../testdata/quiet/lexer/l06.c\r\nPASS\r\nok  \tgithub.com/mewmew/uc/uc/gocc/lexer\t0.002s\r\n\r\nreal\t0m20.810s\r\nuser\t0m33.817s\r\nsys\t0m0.977s\r\n[/tmp/gotip/src/github.com/mewmew/uc/uc/gocc/lexer]$ time go install\r\n\r\nreal\t0m0.120s\r\nuser\t0m0.113s\r\nsys\t0m0.023s\r\n[/tmp/gotip/src/github.com/mewmew/uc/uc/gocc/lexer]$ time go test\r\n2016/03/23 21:06:18 path: ../../testdata/incorrect/lexer/bad.c\r\n2016/03/23 21:06:18 path: ../../testdata/incorrect/lexer/good.c\r\n2016/03/23 21:06:18 path: ../../testdata/incorrect/lexer/long-char.c\r\n2016/03/23 21:06:18 path: ../../testdata/incorrect/lexer/ugly.c\r\n2016/03/23 21:06:18 path: ../../testdata/quiet/lexer/l01.c\r\n2016/03/23 21:06:18 path: ../../testdata/quiet/lexer/l02.c\r\n2016/03/23 21:06:18 path: ../../testdata/quiet/lexer/l03.c\r\n2016/03/23 21:06:18 path: ../../testdata/quiet/lexer/l04.c\r\n2016/03/23 21:06:18 path: ../../testdata/quiet/lexer/l05.c\r\n2016/03/23 21:06:18 path: ../../testdata/quiet/lexer/l06.c\r\nPASS\r\nok  \tgithub.com/mewmew/uc/uc/gocc/lexer\t0.001s\r\n\r\nreal\t0m20.752s\r\nuser\t0m34.110s\r\nsys\t0m0.953s\r\n[/tmp/gotip/src/github.com/mewmew/uc/uc/gocc/lexer]$ time go test -i\r\n\r\nreal\t0m0.057s\r\nuser\t0m0.030s\r\nsys\t0m0.020s\r\n[/tmp/gotip/src/github.com/mewmew/uc/uc/gocc/lexer]$ time go test\r\n2016/03/23 21:07:15 path: ../../testdata/incorrect/lexer/bad.c\r\n2016/03/23 21:07:15 path: ../../testdata/incorrect/lexer/good.c\r\n2016/03/23 21:07:15 path: ../../testdata/incorrect/lexer/long-char.c\r\n2016/03/23 21:07:15 path: ../../testdata/incorrect/lexer/ugly.c\r\n2016/03/23 21:07:15 path: ../../testdata/quiet/lexer/l01.c\r\n2016/03/23 21:07:15 path: ../../testdata/quiet/lexer/l02.c\r\n2016/03/23 21:07:15 path: ../../testdata/quiet/lexer/l03.c\r\n2016/03/23 21:07:15 path: ../../testdata/quiet/lexer/l04.c\r\n2016/03/23 21:07:15 path: ../../testdata/quiet/lexer/l05.c\r\n2016/03/23 21:07:15 path: ../../testdata/quiet/lexer/l06.c\r\nPASS\r\nok  \tgithub.com/mewmew/uc/uc/gocc/lexer\t0.002s\r\n\r\nreal\t0m20.751s\r\nuser\t0m33.750s\r\nsys\t0m1.007s\r\n```\r\n\r\nand for Go 1.4\r\n\r\n```\r\n[~]$ export GOPATH=/tmp/go14\r\n[~]$ go get github.com/mewmew/uc\r\n[~]$ go get github.com/goccmack/gocc\r\n[~]$ export PATH=${GOPATH}/bin:${PATH}\r\n[~]$ cd ${GOPATH}/src/github.com/mewmew/uc\r\n[/tmp/go14/src/github.com/mewmew/uc]$ git checkout 9557c0010cde8953d0719ab5df170b8cfbdc3a3f\r\n[/tmp/go14/src/github.com/mewmew/uc]$ cd uc/gocc\r\n[/tmp/go14/src/github.com/mewmew/uc/uc/gocc]$ make gen\r\n[/tmp/go14/src/github.com/mewmew/uc/uc/gocc]$ cd lexer\r\n[/tmp/go14/src/github.com/mewmew/uc/uc/gocc/lexer]$ time go test\r\n2016/03/23 21:05:42 path: ../../testdata/incorrect/lexer/bad.c\r\n2016/03/23 21:05:42 path: ../../testdata/incorrect/lexer/good.c\r\n2016/03/23 21:05:42 path: ../../testdata/incorrect/lexer/long-char.c\r\n2016/03/23 21:05:42 path: ../../testdata/incorrect/lexer/ugly.c\r\n2016/03/23 21:05:42 path: ../../testdata/quiet/lexer/l01.c\r\n2016/03/23 21:05:42 path: ../../testdata/quiet/lexer/l02.c\r\n2016/03/23 21:05:42 path: ../../testdata/quiet/lexer/l03.c\r\n2016/03/23 21:05:42 path: ../../testdata/quiet/lexer/l04.c\r\n2016/03/23 21:05:42 path: ../../testdata/quiet/lexer/l05.c\r\n2016/03/23 21:05:42 path: ../../testdata/quiet/lexer/l06.c\r\nPASS\r\nok  \tgithub.com/mewmew/uc/uc/gocc/lexer\t0.002s\r\n\r\nreal\t0m0.588s\r\nuser\t0m0.503s\r\nsys\t0m0.053s\r\n[/tmp/go14/src/github.com/mewmew/uc/uc/gocc/lexer]$ time go install\r\n\r\nreal\t0m0.053s\r\nuser\t0m0.040s\r\nsys\t0m0.007s\r\n[/tmp/go14/src/github.com/mewmew/uc/uc/gocc/lexer]$ time go test\r\n2016/03/23 21:06:43 path: ../../testdata/incorrect/lexer/bad.c\r\n2016/03/23 21:06:43 path: ../../testdata/incorrect/lexer/good.c\r\n2016/03/23 21:06:43 path: ../../testdata/incorrect/lexer/long-char.c\r\n2016/03/23 21:06:43 path: ../../testdata/incorrect/lexer/ugly.c\r\n2016/03/23 21:06:43 path: ../../testdata/quiet/lexer/l01.c\r\n2016/03/23 21:06:43 path: ../../testdata/quiet/lexer/l02.c\r\n2016/03/23 21:06:43 path: ../../testdata/quiet/lexer/l03.c\r\n2016/03/23 21:06:43 path: ../../testdata/quiet/lexer/l04.c\r\n2016/03/23 21:06:43 path: ../../testdata/quiet/lexer/l05.c\r\n2016/03/23 21:06:43 path: ../../testdata/quiet/lexer/l06.c\r\nPASS\r\nok  \tgithub.com/mewmew/uc/uc/gocc/lexer\t0.002s\r\n\r\nreal\t0m0.547s\r\nuser\t0m0.483s\r\nsys\t0m0.057s\r\n[/tmp/go14/src/github.com/mewmew/uc/uc/gocc/lexer]$ time go test -i\r\n\r\nreal\t0m0.034s\r\nuser\t0m0.033s\r\nsys\t0m0.000s\r\n[/tmp/go14/src/github.com/mewmew/uc/uc/gocc/lexer]$ time go test\r\n2016/03/23 21:06:52 path: ../../testdata/incorrect/lexer/bad.c\r\n2016/03/23 21:06:52 path: ../../testdata/incorrect/lexer/good.c\r\n2016/03/23 21:06:52 path: ../../testdata/incorrect/lexer/long-char.c\r\n2016/03/23 21:06:52 path: ../../testdata/incorrect/lexer/ugly.c\r\n2016/03/23 21:06:52 path: ../../testdata/quiet/lexer/l01.c\r\n2016/03/23 21:06:52 path: ../../testdata/quiet/lexer/l02.c\r\n2016/03/23 21:06:52 path: ../../testdata/quiet/lexer/l03.c\r\n2016/03/23 21:06:52 path: ../../testdata/quiet/lexer/l04.c\r\n2016/03/23 21:06:52 path: ../../testdata/quiet/lexer/l05.c\r\n2016/03/23 21:06:52 path: ../../testdata/quiet/lexer/l06.c\r\nPASS\r\nok  \tgithub.com/mewmew/uc/uc/gocc/lexer\t0.002s\r\n\r\nreal\t0m0.545s\r\nuser\t0m0.503s\r\nsys\t0m0.037s\r\n```\r\n\r\n4. What did you expect to see?\r\n\r\nThe time take by `go test github.com/mewmew/uc/uc/gocc/lexer` taking roughly the same amount of time to run when using Go tip and Go 1.4.\r\n\r\n5. What did you see instead?\r\n\r\n\"go test\" took roughly 20 seconds on Go tip and 0.5 seconds on Go 1.4.\r\n\r\nAlso note that the `compile` command used between 25% to 60% of the CPU, during the 20 second duration.\r\n\r\n![CPU usage](https://i.imgur.com/cvCMtN3.png)"},"comment":{"url":"https://api.github.com/repos/golang/go/issues/comments/215701280","html_url":"https://github.com/golang/go/issues/14934#issuecomment-215701280","issue_url":"https://api.github.com/repos/golang/go/issues/14934","id":215701280,"user":{"login":"dr2chase","id":1928999,"avatar_url":"https://avatars.githubusercontent.com/u/1928999?v=3","gravatar_id":"","url":"https://api.github.com/users/dr2chase","html_url":"https://github.com/dr2chase","followers_url":"https://api.github.com/users/dr2chase/followers","following_url":"https://api.github.com/users/dr2chase/following{/other_user}","gists_url":"https://api.github.com/users/dr2chase/gists{/gist_id}","starred_url":"https://api.github.com/users/dr2chase/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dr2chase/subscriptions","organizations_url":"https://api.github.com/users/dr2chase/orgs","repos_url":"https://api.github.com/users/dr2chase/repos","events_url":"https://api.github.com/users/dr2chase/events{/privacy}","received_events_url":"https://api.github.com/users/dr2chase/received_events","type":"User","site_admin":false},"created_at":"2016-04-29T12:45:10Z","updated_at":"2016-04-29T12:45:10Z","body":"Sparse phi insertion helps.\r\nDoesn't get back all the performance, but lots better than it was.\r\n(Timings on a Macbook Air laptop running on battery)\r\n```\r\nexport GO_SSA_PHI_LOC_CUTOFF=0 # use sparse everywhere\r\ntime go test\r\n...\r\nreal\t0m13.318s\r\nuser\t0m14.309s\r\nsys\t0m0.863s\r\n```\r\n\r\n```\r\nexport GO_SSA_PHI_LOC_CUTOFF=-1 # use sparse nowhere\r\ntime go test\r\n...\r\nreal\t0m33.241s\r\nuser\t0m39.499s\r\nsys\t0m2.954s\r\n```\r\n\r\n```\r\nexport GO_SSA_PHI_LOC_CUTOFF=2500000 # default threshold 2.5million (#vars*#blocks)\r\ntime go test\r\n...\r\nreal\t0m13.448s\r\nuser\t0m14.335s\r\nsys\t0m0.955s\r\n```\r\n\r\nNew profiles from compiling lexer_test.  `locatePotentialPhiFunctions` is still doing a lot of work even when sparse and there might be some upside hiding there, but the big pig is now register allocation and all the memory that it allocates.  I've annotated regalloc (and stack alloc) with R and phi location with P\r\n```\r\n(pprof) top 30\r\n10450ms of 12120ms total (86.22%)\r\nDropped 249 nodes (cum <= 60.60ms)\r\nShowing top 30 nodes out of 109 (cum >= 180ms)\r\n      flat  flat%   sum%        cum   cum%\r\n    4050ms 33.42% 33.42%     4300ms 35.48%  runtime.(*mcentral).grow\r\n    1130ms  9.32% 42.74%     2020ms 16.67%  runtime.scanobject\r\n     510ms  4.21% 46.95%      510ms  4.21%  runtime.memclr\r\n     470ms  3.88% 50.83%      680ms  5.61%  cmd/compile/internal/ssa.(*regAllocState).computeLive R\r\n     470ms  3.88% 54.70%      470ms  3.88%  cmd/compile/internal/ssa.copyelimValue\r\n     430ms  3.55% 58.25%     4420ms 36.47%  cmd/compile/internal/ssa.(*regAllocState).regalloc R\r\n     400ms  3.30% 61.55%      400ms  3.30%  runtime.heapBitsForObject\r\n     300ms  2.48% 64.03%      490ms  4.04%  runtime.greyobject\r\n     280ms  2.31% 66.34%      280ms  2.31%  runtime.usleep\r\n     240ms  1.98% 68.32%      240ms  1.98%  runtime.memmove\r\n     210ms  1.73% 70.05%      210ms  1.73%  cmd/compile/internal/ssa.(*sparseSet).addAll R?\r\n     200ms  1.65% 71.70%      230ms  1.90%  runtime.evacuate\r\n     190ms  1.57% 73.27%      190ms  1.57%  runtime.duffcopy\r\n     180ms  1.49% 74.75%      620ms  5.12%  runtime.mapassign1\r\n     140ms  1.16% 75.91%      190ms  1.57%  cmd/compile/internal/ssa.(*Block).removePred\r\n     120ms  0.99% 76.90%      200ms  1.65%  runtime.(*mheap).allocSpanLocked\r\n     100ms  0.83% 77.72%      100ms  0.83%  cmd/compile/internal/ssa.(*Value).resetArgs\r\n     100ms  0.83% 78.55%      780ms  6.44%  cmd/compile/internal/ssa.(*node32).insert P\r\n      90ms  0.74% 79.29%      140ms  1.16%  cmd/compile/internal/ssa.(*node32).glb P\r\n      90ms  0.74% 80.03%       90ms  0.74%  cmd/compile/internal/ssa.(*regAllocState).addUse R\r\n      90ms  0.74% 80.78%       90ms  0.74%  runtime/internal/atomic.Or8\r\n      80ms  0.66% 81.44%     1470ms 12.13%  cmd/compile/internal/gc.(*state).locatePotentialPhiFunctions P\r\n      80ms  0.66% 82.10%       80ms  0.66%  cmd/compile/internal/ssa.(*Func).freeValue\r\n      80ms  0.66% 82.76%     2720ms 22.44%  cmd/compile/internal/ssa.(*edgeState).setup R\r\n      80ms  0.66% 83.42%      550ms  4.54%  cmd/compile/internal/ssa.deadcode\r\n      80ms  0.66% 84.08%      100ms  0.83%  cmd/compile/internal/ssa.phielimValue\r\n      80ms  0.66% 84.74%      260ms  2.15%  runtime.interhash\r\n      70ms  0.58% 85.31%       70ms  0.58%  runtime.aeshash64\r\n      60ms   0.5% 85.81%      110ms  0.91%  runtime.ifaceeq\r\n      50ms  0.41% 86.22%      180ms  1.49%  cmd/compile/internal/ssa.(*Func).setHome\r\n```\r\n```\r\n(pprof) top 10\r\n7644243 of 7968348 total (95.93%)\r\nDropped 184 nodes (cum <= 39841)\r\nShowing top 10 nodes out of 37 (cum >= 103353)\r\n      flat  flat%   sum%        cum   cum%\r\n   4655276 58.42% 58.42%    4655276 58.42%  cmd/compile/internal/ssa.(*edgeState).set R\r\n   1261053 15.83% 74.25%    1261053 15.83%  cmd/compile/internal/ssa.(*Func).newValue\r\n    573464  7.20% 81.44%    1083992 13.60%  cmd/compile/internal/gc.(*state).locatePotentialPhiFunctions P\r\n    458766  5.76% 87.20%     494125  6.20%  cmd/compile/internal/ssa.(*SparseTreeMapper).Insert P\r\n    327695  4.11% 91.31%     327695  4.11%  cmd/compile/internal/ssa.(*Value).AddArgs\r\n    131077  1.64% 92.96%     131077  1.64%  cmd/compile/internal/gc.Nod\r\n    103957  1.30% 94.26%    4799453 60.23%  cmd/compile/internal/ssa.(*regAllocState).regalloc R\r\n    100187  1.26% 95.52%    1327832 16.66%  cmd/compile/internal/gc.(*state).lookupVarOutgoing P\r\n     16384  0.21% 95.73%     510509  6.41%  cmd/compile/internal/gc.(*phimap).Insert P\r\n     16384  0.21% 95.93%     103353  1.30%  cmd/compile/internal/gc.walkexpr\r\n```\r\n```\r\n1151.23MB of 1239.99MB total (92.84%)\r\nDropped 165 nodes (cum <= 6.20MB)\r\nShowing top 20 nodes out of 56 (cum >= 48.53MB)\r\n      flat  flat%   sum%        cum   cum%\r\n  156.30MB 12.60% 12.60%   498.03MB 40.16%  cmd/compile/internal/ssa.(*regAllocState).regalloc R\r\n  154.71MB 12.48% 25.08%   154.71MB 12.48%  cmd/compile/internal/ssa.(*Func).newValue\r\n  133.28MB 10.75% 35.83%   135.59MB 10.94%  cmd/compile/internal/ssa.(*regAllocState).computeLive R\r\n  106.17MB  8.56% 44.39%   106.17MB  8.56%  cmd/compile/internal/ssa.(*Func).setHome\r\n   93.66MB  7.55% 51.95%   257.41MB 20.76%  cmd/compile/internal/gc.(*state).lookupVarOutgoing P\r\n   56.57MB  4.56% 56.51%    57.12MB  4.61%  cmd/compile/internal/ssa.(*stackAllocState).stackalloc R\r\n   53.74MB  4.33% 60.84%    53.74MB  4.33%  cmd/compile/internal/ssa.(*stackAllocState).buildInterferenceGraph R\r\n   51.98MB  4.19% 65.03%    52.50MB  4.23%  cmd/compile/internal/ssa.(*stackAllocState).computeLive R\r\n   46.57MB  3.76% 68.79%   182.17MB 14.69%  cmd/compile/internal/ssa.(*regAllocState).init R\r\n   45.83MB  3.70% 72.49%    45.83MB  3.70%  cmd/compile/internal/ssa.cse\r\n   42.01MB  3.39% 75.87%    42.01MB  3.39%  cmd/compile/internal/ssa.schedule\r\n   36.20MB  2.92% 78.79%   142.45MB 11.49%  cmd/compile/internal/ssa.(*stackAllocState).init R\r\n      36MB  2.90% 81.70%       36MB  2.90%  cmd/compile/internal/ssa.(*edgeState).set R\r\n   34.03MB  2.74% 84.44%    34.03MB  2.74%  cmd/compile/internal/ssa.(*node32).insert P\r\n   27.16MB  2.19% 86.63%    27.16MB  2.19%  cmd/compile/internal/ssa.(*Func).newSparseSet R?\r\n   18.04MB  1.45% 88.09%    70.21MB  5.66%  cmd/compile/internal/gc.(*state).locatePotentialPhiFunctions P\r\n   15.13MB  1.22% 89.31%    15.13MB  1.22%  cmd/compile/internal/gc.(*state).addNamedValue\r\n      15MB  1.21% 90.52%       15MB  1.21%  cmd/compile/internal/ssa.(*Value).AddArgs\r\n   14.85MB  1.20% 91.71%    14.85MB  1.20%  cmd/compile/internal/ssa.tighten\r\n      14MB  1.13% 92.84%    48.53MB  3.91%  cmd/compile/internal/ssa.(*SparseTreeMapper).Insert P\r\n```\r\n"}}