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

Duncan Sands baldrick at free.fr
Sat Nov 13 13:37:34 PST 2010


Hi Chris,

>> 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,

done in commit 119009 (testcase is purely artificial though).

Ciao,

Duncan.



More information about the llvm-commits mailing list