On 01/26/2016 02:28 AM, Bin.Cheng wrote:
Yes, loop invariant now increased invariant cost if the invariant
can't be propagated into address expression.  Problem is we check
propagation by simply replacing use with def in memory reference then
verifying result insn with verify_changes.  Apparently more advanced
transforms are necessary, just like what combine does.
I am surprised that rtl_fwprop_addr doesn't handle this either, it's
an exact address expression propagation example.
So the question now becomes whether or not the work done by combine.c is dependent on knowledge that is specific to combine or is it just a series of transformations that we could make available (preferably moving it to simplify-rtx).

If we can factor the transformation out and shove it into simplify-rtx, then it could be used elsewhere.

jeff

Reply via email to