This is an archive of the discontinued LLVM Phabricator instance.

PowerPC: Add ImmArg to intrinsics
ClosedPublic

Authored by arsenm on Feb 18 2019, 8:03 AM.

Details

Reviewers
hfinkel
nemanjai
Summary

I found these by asserting in clang for any GCCBuiltin that doesn't
require mangling and requires a constant for the builtin. This means
that intrinsics are missing which don't use GCCBuiltin, don't have
builtins defined in clang, or were missing the constant annotation in
the builtin definition.

Diff Detail

Event Timeline

arsenm created this revision.Feb 18 2019, 8:03 AM
nemanjai accepted this revision.Mar 12 2019, 4:03 AM

Sorry about the delay. LGTM.

I just have a question about the implications of setting these flags - is this only to produce better errors (i.e. when an intrinsic call with a non-immediate argument appears in IR)? Or are there other implications as well?
I am just looking to gauge the importance of going through all the intrinsics to see which other ones also require this property.

This revision is now accepted and ready to land.Mar 12 2019, 4:03 AM

Sorry about the delay. LGTM.

I just have a question about the implications of setting these flags - is this only to produce better errors (i.e. when an intrinsic call with a non-immediate argument appears in IR)? Or are there other implications as well?
I am just looking to gauge the importance of going through all the intrinsics to see which other ones also require this property.

r356093.

No, this impacts transforms and codegen. In D58233, this will be required for correctness since then passes will be allowed to replace intrinsic call operands. If this isn't accurate, it will break. For GlobalISel, I also want this to change how intrinsics are emitted (D58232)

arsenm closed this revision.Mar 13 2019, 12:48 PM