[llvm-commits] [llvm] r118923 - /llvm/trunk/lib/Transforms/Scalar/GVN.cpp

Chris Lattner clattner at apple.com
Fri Nov 12 16:27:59 PST 2010


On Nov 12, 2010, at 1:10 PM, Duncan Sands wrote:

> Author: baldrick
> Date: Fri Nov 12 15:10:24 2010
> New Revision: 118923
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=118923&view=rev
> Log:
> Have GVN simplify instructions as it goes.  For example, consider
> "%z = %x and %y".  If GVN can prove that %y equals %x, then it turns
> this into "%z = %x and %x".  With the new code, %z will be replaced
> with %x everywhere (and then deleted).  Previously %z would be value
> numbered too, which is a waste of time.  Also, while a clever value
> numbering algorithm would give %z the same value number as %x, our
> current one doesn't do so (at least I don't think it does).  The new
> logic has an essentially equivalent effect to what you would get if
> %z was given the same value number as %x, i.e. it should make value
> numbering smarter.  While there, get hold of target data once at the
> start rather than a gazillion times all over the place.

Awesome!  Please add a testcase though,

-Chris




More information about the llvm-commits mailing list