This may occur when swifterror codegen in the translator generates these, but we shouldn't try to handle them since they should have regclasses anyway.
rdar://75784009
Paths
| Differential D99287
[GlobalISel] Fix crash in RBS with a non-generic IMPLICIT_DEF. ClosedPublic Authored by aemerson on Mar 24 2021, 11:31 AM.
Details Summary This may occur when swifterror codegen in the translator generates these, but we shouldn't try to handle them since they should have regclasses anyway. rdar://75784009
Diff Detail
Event TimelineComment Actions Update x86 RBS test. For some reason it was using the non-generic IMPLICIT_DEF when it should be using the generic one.
Comment Actions LGTM. Kind of weird that we create normal IMPLICIT_DEFs in the IRTranslator though? I guess it's code shared with SDAG. This revision is now accepted and ready to land.Mar 24 2021, 2:05 PM Comment Actions
Definitely shouldn't be doing that. No optimizations are going to recognize it Comment Actions
This falls under “already selected” code, and should have regclasses. The intention AFAIK is for GISel to allow targets to preselect code at any point in the pipeline. Comment Actions
It should work, but it doesn't mean it's the best idea to use (especially for a "generic" instruction that has a direct "generic generic" instruction) Closed by commit rG0d2c4db637d4: [GlobalISel] Fix crash in RBS with a non-generic IMPLICIT_DEF. (authored by aemerson). · Explain WhyMar 24 2021, 11:09 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 333071 llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp
llvm/test/CodeGen/AArch64/GlobalISel/implicit_def_rbs_crash.mir
llvm/test/CodeGen/X86/GlobalISel/regbankselect-X86_64.mir
|
How did this get past the isPreIselOpcode check (same with asm)?