Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Jasper Neumann <jasper.neumann <at> web.de>
Subject: Re: Quirk in switch lowering
Newsgroups: gmane.comp.compilers.llvm.devel
Date: Saturday 11th January 2014 16:53:25 UTC (over 3 years ago)
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 [email protected] 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
 
CD: 4ms