[llvm-dev] InstSimplify and computeKnownBits

Daniel Berlin via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 17 12:17:17 PDT 2017

On Mon, Apr 17, 2017 at 10:22 AM, Craig Topper <craig.topper at gmail.com>

> Today, InstSimplify calls computeKnownBits to try to fold to a constant
> ONLY if it can't find any other simplifications for an instruction.
> I think this means if we are able to find an earlier simplification we are
> LESS aggressive about creating a constant because we won't even look at
> known bits.

Not necessarily.
It may create more or less constants right now, not just strictly less.
InstSimplify is not complete in it's transformations, so in some cases, the
symbolic form is going to result in more simplified operations than the
non-symbolic form.

Now, how often does this happen?
Again, hard to say. I would guess infrequently :)
But it's definitely the case that because it is not complete, it is not a
100% improvement all the time to try to make as many constants as possible.
If it *was* complete, there would be for sure.

This seems surprising to me.

> Should we be looking at known bits always, or should we remove this save
> the compile time? How often does this allow us to simplify to a constant?

It may be cheaper, compile time wise , to compute known bits non-lazily and
look at it always than trying to  use it always.
As for how often it allows us to simplify to a constant, dunno, we should
just track it.
Add a statistic, see how it does :)

> ~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170417/1d0bd828/attachment.html>

More information about the llvm-dev mailing list