[PATCH] D18634: Don't IPO over functions that can be de-refined

Sanjoy Das via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 31 10:32:24 PDT 2016



Mehdi Amini wrote:

 > If you want this level of abstraction (and it would be a good thing
 > I think), I'm saying you can't achieve this based purely on the
 > linkage type (I hope I'm stating the obvious here, since you wrote
 > that you wanted some function with a linkage type in 2) to be
 > considered as 1) based on an attribute).

 > So we need something higher-level that
 > `predicate(LinkageType)`. Independently of the actual place location.

I can remove the `static` variants of the predicates, and have them be
directly on `llvm::Function`, if that's what you're going for.  Right
now they'll still be a function of the linkage type, but that would be
an implementation detail.

 > Maybe we need a new "IPAInfo" kind of class, that would implement a
 > bunch of `predicate(GlobalValue *GV)`?

A new class for this would be overkill, IMO.


-- Sanjoy


More information about the llvm-commits mailing list