[PATCH] Introduce GlobalAlias::mayBeResolved().

Peter Collingbourne peter at pcc.me.uk
Mon Apr 1 14:47:54 PDT 2013


On Mon, Apr 01, 2013 at 02:19:41PM -0700, Anton Korobeynikov wrote:
> 
>   I'm not sure that changing mayBeOverriden() to mayBeResolved() everywhere is fine. E.g. change to getUnderlyingObject() might not be correct. Ditto for SCEV / Inliner changes.

In an earlier version of this patch I only made the change in a
handful of places.  In the end I decided that the best thing to do
would be to make the change everywhere given that:

a) While making the change everywhere is always safe as far as I can
   tell (it would only result in missed optimisation opportunities),
   choosing to not make the change somewhere is not necessarily so.
   I don't understand every pass well enough to know that in 100%
   of cases the pass won't rewrite alias references according to the
   result of the function and I can't be sure that people who modify
   the code in the future will understand this distinction.

b) The circumstances in which an alias's visibility differs from the
   aliasee are uncommon and therefore there wouldn't be many missed
   optimisation opportunities.

Thanks,
-- 
Peter



More information about the llvm-commits mailing list