[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