[PATCH] D101538: [GlobalISel][IRTranslator] Make translate() methods virtual.

Amara Emerson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 11 12:24:58 PDT 2021


aemerson added a comment.

In D101538#2750853 <https://reviews.llvm.org/D101538#2750853>, @zuban32 wrote:

> In D101538#2745606 <https://reviews.llvm.org/D101538#2745606>, @aemerson wrote:
>
>> Is this really necessary? Our preference is to use custom combines/lowering passes, or custom legalization, to do this.
>
> Well, our usecase might not be that canonical, let me briefly explain. For example, translating a bitcast - default IRTranslator implementation turns it into a COPY when LLTs of src and dst are the same. In our target (SPIR-V) LLTs do not matter that much, the typeinfo is represented with some pseudo instructions, so we run into this situation quite often. And losing a bitcast in the translator doesn't work for us as it'd obviously be quite difficult to recover it.

I see. Is this a widespread issue with a lot of the translation functions or just bitcasts? If it's just bitcast you could just make that virtual so we don't have to pay the virtual function call overhead every translate. If not, then I'm ok with doing this.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D101538



More information about the llvm-commits mailing list