I'd be interested in giving it a shot if you'd like some performance testing done.<div><br></div><div>-eric<br><br><div>On Sat Jan 11 2014 at 8:56:18 AM, Jasper Neumann <<a href="mailto:jasper.neumann@web.de">jasper.neumann@web.de</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Anton!<br>
<br>
 > Some of the behavior seen there was for a purpose,<br>
 > like the heuristics to overcome different problems.<br>
 > I have to remember all the details :)<br>
<br>
I have read your article "Improving Switch Lowering for The LLVM<br>
Compiler System" and thought that the selection mechanism works out<br>
well; by chance however I found that this mechanism does not work as<br>
designed if labels are sufficiently sparse and can effectively create an<br>
else-if chain because separated (single) marginal (i.e. first and last)<br>
labels have a too high weight.<br>
The central point might be: What is the density of a single label?<br>
It might also be that the logarithmic metric is not always working well.<br>
<br>
My simple modification however seems to be a solution to this special<br>
problem; until now I have not found any malicious secondary effects<br>
(collateral damages).<br>
<br>
By the way: I have submitted the patch to <a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a> few<br>
minutes ago; perhaps you are the person with the best knowledge for this<br>
problem.<br>
<br>
I'm currently working on switch lowering using hashing which can fully<br>
replace the jump table method. It works quite good by now but I will<br>
have to prepare a ton of documentation and test stuff. Some of the<br>
remaining problems can easily be solved later.<br>
Is anybody interested in beta-testing my patches therefor?<br>
<br>
Best regards<br>
Jasper Neumann<br>
______________________________<u></u>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/llvmdev</a><br>
</blockquote></div>