[PATCH] D61289: [globalisel] Add G_SEXT_INREG

Amara Emerson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 9 15:10:42 PDT 2019


aemerson added a comment.

In D61289#1493275 <https://reviews.llvm.org/D61289#1493275>, @rovka wrote:

> Thanks for the explanations. I think you have some good points. Overall, it still looks to me like we're complicating things for backend writers and introducing a lot of subtle distinctions to keep in mind. It would be useful to hear what other people think about this.


Thanks for drilling into this Diana. There's some good points raised about how necessary this is. After some consideration, I think on balance this is useful enough to move forward with.

m2c: While technically it may be true that we can generate correct code without the use of SEXT_IN_REG, I think the use cases warrants inclusion because of how critical extends are to the way the legalizer works. Given that sooner or later optimizations are going to break the extension-through-shifts idiom, and that there's no easy way to recover, I think it will become necessary to have this in order to have competitive performant code. There is additional complexity, but that complexity can be opted out of for targets that don't want to deal with this. If they do, then a supported route is available.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D61289/new/

https://reviews.llvm.org/D61289





More information about the llvm-commits mailing list