[PATCH] D14228: [FunctionAttrs] Identify norecurse functions

James Molloy via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 2 12:25:37 PST 2015


jmolloy added a comment.

Hi,

My understanding is that CGSCC behaves conservatively - if a function's address is taken, an edge is added from the "Externally called" node to that function. However, in our case we don't actually need to care what can *call* a function, we just need to know whether or not we have full knowledge about what that function *can call*. That's why we only mark functions norecurse if we've enumerated successfully all call edges and found them not to form a cycle or encounter the special "calls external" node in which case all bets are off.

James


Repository:
  rL LLVM

http://reviews.llvm.org/D14228





More information about the llvm-commits mailing list