{"action":"opened","issue":{"url":"https://api.github.com/repos/golang/go/issues/16169","repository_url":"https://api.github.com/repos/golang/go","labels_url":"https://api.github.com/repos/golang/go/issues/16169/labels{/name}","comments_url":"https://api.github.com/repos/golang/go/issues/16169/comments","events_url":"https://api.github.com/repos/golang/go/issues/16169/events","html_url":"https://github.com/golang/go/issues/16169","id":162025616,"number":16169,"title":"cmd/compile: per-phase compiler benchmarking","user":{"login":"mdempsky","id":38349,"avatar_url":"https://avatars.githubusercontent.com/u/38349?v=3","gravatar_id":"","url":"https://api.github.com/users/mdempsky","html_url":"https://github.com/mdempsky","followers_url":"https://api.github.com/users/mdempsky/followers","following_url":"https://api.github.com/users/mdempsky/following{/other_user}","gists_url":"https://api.github.com/users/mdempsky/gists{/gist_id}","starred_url":"https://api.github.com/users/mdempsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mdempsky/subscriptions","organizations_url":"https://api.github.com/users/mdempsky/orgs","repos_url":"https://api.github.com/users/mdempsky/repos","events_url":"https://api.github.com/users/mdempsky/events{/privacy}","received_events_url":"https://api.github.com/users/mdempsky/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/golang/go/milestones/39","html_url":"https://github.com/golang/go/milestones/Go1.8Early","labels_url":"https://api.github.com/repos/golang/go/milestones/39/labels","id":1709364,"number":39,"title":"Go1.8Early","description":"","creator":{"login":"griesemer","id":8528975,"avatar_url":"https://avatars.githubusercontent.com/u/8528975?v=3","gravatar_id":"","url":"https://api.github.com/users/griesemer","html_url":"https://github.com/griesemer","followers_url":"https://api.github.com/users/griesemer/followers","following_url":"https://api.github.com/users/griesemer/following{/other_user}","gists_url":"https://api.github.com/users/griesemer/gists{/gist_id}","starred_url":"https://api.github.com/users/griesemer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/griesemer/subscriptions","organizations_url":"https://api.github.com/users/griesemer/orgs","repos_url":"https://api.github.com/users/griesemer/repos","events_url":"https://api.github.com/users/griesemer/events{/privacy}","received_events_url":"https://api.github.com/users/griesemer/received_events","type":"User","site_admin":false},"open_issues":44,"closed_issues":0,"state":"open","created_at":"2016-04-15T16:30:52Z","updated_at":"2016-06-23T21:18:47Z","due_on":"2017-01-31T05:00:00Z","closed_at":null},"comments":0,"created_at":"2016-06-23T21:18:47Z","updated_at":"2016-06-23T21:18:47Z","closed_at":null,"body":"Right now we can use compilebench to measure the compiler's overall run time, and we can use -cpuprofile to measure fine-grained per-function/instruction profiles.  But with the interest in continuing to evolve/rewrite individual phases of the compiler, I think it would be nice to track the compiler's performance on a per-phase granularity.\r\n\r\nRough proposal sketch:\r\n\r\n  1. Add a flag to cmd/compile like -phasebench=prefix:outfile.\r\n  2. Add instrumentation to cmd/compile/internal/gc/main.go so that when phasebench is enabled, it will append [benchmark data formatted](https://github.com/golang/proposal/blob/master/design/14313-benchmark-format.md) entries to outfile of the form \"prefix-parse\", \"prefix-typecheck\", etc.\r\n  3. compilebench can then optionally make use of this new flag, and we can start tracking the more detailed information."}}
{"actor":{"display_login":"mdempsky"}}