[TableGen] Allow intrinsics to have up to 8 return values.
ClosedPublic

Authored by tra on Fri, Oct 6, 9:37 AM.

Details

Summary

The change is needed for my upcoming changes to NVPTX back-end that implement an intrinsic that has up to 8 output values.

Diff Detail

Repository
rL LLVM
tra created this revision.Fri, Oct 6, 9:37 AM
tra added reviewers: jlebar, rnk.Fri, Oct 6, 9:44 AM
jlebar accepted this revision.Fri, Oct 6, 11:25 AM
jlebar added inline comments.
llvm/lib/IR/Function.cpp
655 ↗(On Diff #118021)

Is there a reason not to put these consecutive with struct5?

This revision is now accepted and ready to land.Fri, Oct 6, 11:25 AM
tra added inline comments.Fri, Oct 6, 1:01 PM
llvm/lib/IR/Function.cpp
655 ↗(On Diff #118021)

Caution mostly. If enum has explicitly assigned values, I assume that someone somewhere relies on them being exactly those values and it's prudent to extend the range rather than change existing order.

tra updated this revision to Diff 118299.Mon, Oct 9, 5:20 PM

Fixed another place where we're checking the number of fields in a struct.

tra updated this revision to Diff 118506.Tue, Oct 10, 5:14 PM

Ugh. Make sure static array to keep per-field info is also sized properly.

tra updated this revision to Diff 118631.Wed, Oct 11, 9:40 AM

Replaced fixed-size array with SmallVector<>. One less place for making potential buffer overflow error when struct encoding changes.

rnk accepted this revision.Wed, Oct 11, 11:07 AM

Looks good!

This revision was automatically updated to reflect the committed changes.