Hi all, Currently all cases in switch statement are treated as having equal probabilities which causes suboptimal code as demonstrated in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59521 . This patch modifies expander to select pivot point for decision tree so that probabilities of cases on the left are roughly equal to probabilities on the right.
Patch survives bootstrap and regtesting on x64 but has some issues: * tests are fragile but I'm not sure how to make them better * I haven't done any performance measurements - would these be needed? I don't have access to SPEC these days, any other suggestions? Patch is jointly authored with Martin. -Y
pr59521-1.patch
Description: Binary data