[LLVMdev] some superoptimizer results (original) (raw)

John Regehr regehr at cs.utah.edu
Wed Jul 22 21:27:32 PDT 2015


I just noticed: most of the results in this batch seem to be about exploiting [zs]ext i1 having cost 1 in order to replace a select of cost 3. Could you do a run where select has cost 1 and [zs]ext i1 (and trunc to i1) has cost 2 or 3?

I tried this (or something quite similar) earlier and it caused Souper to introduce a lot of selects. So the problem is that Souper's preferences become skewed too far in the other direction.

How about for the next run I give everything (except maybe div/rem) cost 1? Then the only thing Souper will tell us about is when it can eliminate instructions, which seems to be a generally desirable thing.

As I said in the blog post, in the next batch Souper will exploit known bits. I'm excited to see what kind of results come out of Philip's value-tracking-dom-conditions.

John



More information about the llvm-dev mailing list