This is an archive of the discontinued LLVM Phabricator instance.

Analysis: Do not create call graph nodes for intrinsic functions.
AbandonedPublic

Authored by pcc on May 24 2016, 10:17 PM.

Details

Summary

Intrinsic functions do not participate in the call graph, so there is no
need to create call graph nodes for them.

This has the effect of inhibiting SCC-based function attribute inference for
intrinsic functions, which was previously incorrectly setting the readnone
attribute on the llvm.assume intrinsic as a result of propagating the AA
result introduced in D19730 to its attributes.

Diff Detail

Event Timeline

pcc updated this revision to Diff 58384.May 24 2016, 10:17 PM
pcc retitled this revision from to Analysis: Do not create call graph nodes for intrinsic functions..
pcc updated this object.
pcc added subscribers: llvm-commits, krasin.

You should probably note somewhere that assume is, in fact, readnone, we
just don't model it that way right now because it hasn't been changed to
use a real control dependency instead of a fake memory one.

:)

pcc added a comment.May 24 2016, 10:31 PM

That's already noted in the definition of llvm.assume I believe: http://llvm-cs.pcc.me.uk/include/llvm/IR/Intrinsics.td#324

pcc abandoned this revision.May 25 2016, 10:07 PM

Obsoleted by D20658