On 03/26/14 17:44, Teresa Johnson wrote:
Recently I discovered that the profile updates being performed by jump
threading were incorrect in many cases, particularly in the case where
the threading path contains a joiner. Some of the duplicated
blocks/edges were not getting any counts, leading to incorrect
function splitting and other downstream optimizations, and there were
other insanities as well. After making a few attempts to fix the
handling I ended up completely redesigning the profile update code,
removing a few places throughout the code where it was attempting to
do some updates.
The profile updates in that code is a mess. It's never really been looked at in any systematic way, what's there is ad-hoc and usually in response to someone mentioning the profile data was incorrectly updated. As we rely more and more on that data the ad-hoc updating is going to cause us more and more pain.

So any work in this space is going to be greatly appreciated.

I'll have to look at this in some detail. But I wanted you to know I was aware of the work and it's in my queue.

Thanks!

jeff

Reply via email to