<feed xmlns='http://www.w3.org/2005/Atom'>
<title>go/src/cmd/compile/internal/test/testdata/pgo/devirtualize/devirt.pprof.node_map, branch main</title>
<subtitle>Fork of Go programming language with my patches.</subtitle>
<id>http://git.kilabit.info/go/atom?h=main</id>
<link rel='self' href='http://git.kilabit.info/go/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/'/>
<updated>2024-03-27T20:20:01Z</updated>
<entry>
<title>cmd/compile,cmd/preprofile: move logic to shared common package</title>
<updated>2024-03-27T20:20:01Z</updated>
<author>
<name>Michael Pratt</name>
<email>mpratt@google.com</email>
</author>
<published>2024-03-04T18:29:39Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=63deaf00ea6058d1422f0b435e475666cba5743e'/>
<id>urn:sha1:63deaf00ea6058d1422f0b435e475666cba5743e</id>
<content type='text'>
The processing performed in cmd/preprofile is a simple version of the
same initial processing performed by cmd/compile/internal/pgo. Refactor
this processing into the new IR-independent cmd/internal/pgo package.

Now cmd/preprofile and cmd/compile run the same code for initial
processing of a pprof profile, guaranteeing that they always stay in
sync.

Since it is now trivial, this CL makes one change to the serialization
format: the entries are ordered by weight. This allows us to avoid
sorting ByWeight on deserialization.

Impact on PGO parsing when compiling cmd/compile with PGO:

* Without preprocessing: PGO parsing ~13.7% of CPU time
* With preprocessing (unsorted): ~2.9% of CPU time (sorting ~1.7%)
* With preprocessing (sorted): ~1.3% of CPU time

The remaining 1.3% of CPU time approximately breaks down as:

* ~0.5% parsing the preprocessed profile
* ~0.7% building weighted IR call graph
  * ~0.5% walking function IR to find direct calls
  * ~0.2% performing lookups for indirect calls targets

For #58102.

Change-Id: Iaba425ea30b063ca195fb2f7b29342961c8a64c2
Reviewed-on: https://go-review.googlesource.com/c/go/+/569337
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Auto-Submit: Michael Pratt &lt;mpratt@google.com&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
</content>
</entry>
<entry>
<title>cmd/compile: update the incorrect assignment of call site offset.</title>
<updated>2024-02-15T21:30:35Z</updated>
<author>
<name>Jin Lin</name>
<email>jinl@uber.com</email>
</author>
<published>2024-02-08T20:52:07Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=185f31bf303b265b3a7b573a5fca613ca40bf503'/>
<id>urn:sha1:185f31bf303b265b3a7b573a5fca613ca40bf503</id>
<content type='text'>
The call site calculation in the previous version is incorrect. For
the PGO preprocess file, the compiler should directly use the call
site offset value. Additionly, this change refactors the preprocess
tool to clean up unused fields including startline, the flat and the
cum.

Change-Id: I7bffed3215d4c016d9a9e4034bfd373bf50ab43f
Reviewed-on: https://go-review.googlesource.com/c/go/+/562795
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: Michael Pratt &lt;mpratt@google.com&gt;
</content>
</entry>
</feed>
