[LLVMdev] Quirk in switch lowering
Eric Christopher
echristo at gmail.com
Sat Jan 11 10:38:19 PST 2014
I'd be interested in giving it a shot if you'd like some performance
testing done.
-eric
On Sat Jan 11 2014 at 8:56:18 AM, Jasper Neumann <jasper.neumann at web.de>
wrote:
> Hello Anton!
>
> > Some of the behavior seen there was for a purpose,
> > like the heuristics to overcome different problems.
> > I have to remember all the details :)
>
> I have read your article "Improving Switch Lowering for The LLVM
> Compiler System" and thought that the selection mechanism works out
> well; by chance however I found that this mechanism does not work as
> designed if labels are sufficiently sparse and can effectively create an
> else-if chain because separated (single) marginal (i.e. first and last)
> labels have a too high weight.
> The central point might be: What is the density of a single label?
> It might also be that the logarithmic metric is not always working well.
>
> My simple modification however seems to be a solution to this special
> problem; until now I have not found any malicious secondary effects
> (collateral damages).
>
> By the way: I have submitted the patch to llvm-commits at cs.uiuc.edu few
> minutes ago; perhaps you are the person with the best knowledge for this
> problem.
>
> I'm currently working on switch lowering using hashing which can fully
> replace the jump table method. It works quite good by now but I will
> have to prepare a ton of documentation and test stuff. Some of the
> remaining problems can easily be solved later.
> Is anybody interested in beta-testing my patches therefor?
>
> Best regards
> Jasper Neumann
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140111/9923fe49/attachment.html>
More information about the llvm-dev
mailing list