This is an archive of the discontinued LLVM Phabricator instance.

GlobalISel: Add target pre-isel instructions
ClosedPublic

Authored by arsenm on Oct 7 2019, 8:41 AM.

Details

Summary

Allows targets to introduce regbankselectable
pseudo-instructions. Currently the closet feature to this is an
intrinsic. However this requires creating a public intrinsic
declaration. This litters the public intrinsic namespace with
operations we don't necessarily want to expose to IR producers, and
would rather leave as private to the backend.

Use a new instruction bit. A previous attempt tried to keep using enum
value ranges, but it turned into a mess.

Diff Detail

Event Timeline

arsenm created this revision.Oct 7 2019, 8:41 AM

I really like the approach here. Thanks for working on this.
LGTM.

This revision is now accepted and ready to land.Oct 7 2019, 10:19 AM
qcolombet accepted this revision.Oct 7 2019, 10:30 AM
qcolombet added inline comments.
lib/CodeGen/GlobalISel/RegBankSelect.cpp
693

Replying to the TODO: No, I don't think they should because after ISel the expectation is that pre-isel opcodes are not present anymore.

arsenm closed this revision.Oct 7 2019, 11:41 AM
arsenm marked an inline comment as done.

r373937