[llvm-dev] [VSXFMAMutate] OldFMAReg may be wrongly rewritten

Tim Shen via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 22 13:06:26 PST 2016

On Fri, Feb 19, 2016 at 5:10 PM Tim Shen <timshen at google.com> wrote:

> I wonder if we can fix this by making the transformation simpler, that is,
> instead of doing:

I wrote a prototype (see attach) for this idea, it actually improves some
of the test cases (e.g. fma-assoc.ll: test_FMADD_ASSOC1), but pessimize
several other cases (e.g. test_FMADD_ASSOC_EXT1).

I'm not sure what to do at this point, I have several options:
1) This pass simply omits the optimization for certain cases ("certain"
needs to be defined).
2) This pass should never mutate anything out of the block, and may add a
copy at the end of the block, if the value is live-out.
3) tune the transformation as I attempted, to make it simpler, working, and
producing better result? It seems interesting to get the improvement as my
prototype shown without hurting other test cases, but it needs a bit
thinking and I'd like to fix the compiler crash soon.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160222/d1260f2d/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: a.diff
Type: application/octet-stream
Size: 3964 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160222/d1260f2d/attachment.obj>

More information about the llvm-dev mailing list