Hi, I was playing with it a bit more and built with -fno-profile-reorder-functions.
Here is -fno-profile-reorder-functions compared to first run https://treeherder.mozilla.org/perf.html#/compare?originalProject=try&originalRevision=3d537be0cb37458e7928f69a37efb2a6d6b85eae&newProject=try&newRevision=4543abfa08870391544b56d16dfcd530dac0dc30&framework=1 2.2% improvement on the page rendering is off noise but I would hope for bit more. Here is -fno-profile-reorder-functions compared to clustering https://treeherder.mozilla.org/perf.html#/compare?originalProject=try&originalRevision=3d537be0cb37458e7928f69a37efb2a6d6b85eae&newProject=try&newRevision=1c2d53b10b042aaaac15edbe7bd26e2740641840&framework=1 I am not sure if it is a noise. Either Fireox's talos is not good benchmark for code layout (which I would be surprised since it is quite sensitive to code size issues) or there are some problems. In general I think the patch is useful and mostly mainline ready except for detailes but it would be good to have some more evidence that it works as expected on large binaries besides tramp3d build time. There are number of ways where things may go wrong ranging from misupdated profiles, problems with function splitting, comdats and other issues. Was you able to benchmark some other benefits? I remember we discussed collecting traces from valgrind, perhaps we could test that they are looking good? Honza