<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/145377>145377</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [DirectX] crash during computeRegisterProperties with DXILClassRegClass
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          tex3d
      </td>
    </tr>
</table>

<pre>
    We're seeing an intermittent crash on our Win32 pipeline:

```
FAIL: LLVM :: CodeGen/DirectX/strip-call-attrs.ll (36330 of 81915)
******************** TEST 'LLVM :: CodeGen/DirectX/strip-call-attrs.ll' FAILED ********************
Exit Code: 2

Command Output (stdout):
--
# RUN: at line 2
# |  #1 0x00007fff3362bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04)
# |  #2 0x00007fff3362cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1)
# |  #3 0x00007fff3362e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1)
# |  #4 0x00007fff3362e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1)
# |  #5 0x00007ff619ae5390 llvm::SmallVectorTemplateCommon<unsigned __int64,void>::operator[] D:\a\_work\1\s\llvm-project\llvm\include\llvm\ADT\SmallVector.h:297:0
# |  #6 0x00007ff619ae5390 llvm::BitVector::find_first_in(unsigned int, unsigned int, bool) const D:\a\_work\1\s\llvm-project\llvm\include\llvm\ADT\BitVector.h:209:0
# |  #7 0x00007ff61a4a0b1f llvm::BitVector::set_bits D:\a\_work\1\s\llvm-project\llvm\include\llvm\ADT\BitVector.h:141:0
# |  #8 0x00007ff61a4a0b1f llvm::TargetLoweringBase::findRepresentativeClass(class llvm::TargetRegisterInfo const *, class llvm::MVT) const D:\a\_work\1\s\llvm-project\llvm\lib\CodeGen\TargetLoweringBase.cpp:1280:0
# |  #9 0x00007ff61a49fc38 llvm::TargetLoweringBase::computeRegisterProperties(class llvm::TargetRegisterInfo const *) D:\a\_work\1\s\llvm-project\llvm\lib\CodeGen\TargetLoweringBase.cpp:1536:0
# | #10 0x00007ff6199419d4 llvm::DirectXTargetLowering::DirectXTargetLowering(class llvm::DirectXTargetMachine const &, class llvm::DirectXSubtarget const &) D:\a\_work\1\s\llvm-project\llvm\lib\Target\DirectX\DirectXTargetMachine.cpp:207:0
# | #11 0x00007ff61995aea6 llvm::DirectXInstrInfo::{ctor} D:\a\_work\1\s\llvm-project\llvm\lib\Target\DirectX\DirectXInstrInfo.h:25:0
# | #12 0x00007ff61995aea6 llvm::DirectXSubtarget::DirectXSubtarget(class llvm::Triple const &, class llvm::StringRef, class llvm::StringRef, class llvm::DirectXTargetMachine const &) D:\a\_work\1\s\llvm-project\llvm\lib\Target\DirectX\DirectXSubtarget.cpp:27:0
# | #13 0x00007ff619941b60 std::make_unique C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.44.35207\include\memory:3630:0
# | #14 0x00007ff619941b60 llvm::DirectXTargetMachine::DirectXTargetMachine(class llvm::Target const &, class llvm::Triple const &, class llvm::StringRef, class llvm::StringRef, class llvm::TargetOptions const &, class std::optional<enum llvm::Reloc::Model>, class std::optional<enum llvm::CodeModel::Model>, enum llvm::CodeGenOptLevel, bool) D:\a\_work\1\s\llvm-project\llvm\lib\Target\DirectX\DirectXTargetMachine.cpp:136:0
# | #15 0x00007ff619943e2d llvm::RegisterTargetMachine<class llvm::DirectXTargetMachine>::Allocator(class llvm::Target const &, class llvm::Triple const &, class llvm::StringRef, class llvm::StringRef, class llvm::TargetOptions const &, class std::optional<enum llvm::Reloc::Model>, class std::optional<enum llvm::CodeModel::Model>, enum llvm::CodeGenOptLevel, bool) D:\a\_work\1\s\llvm-project\llvm\include\llvm\MC\TargetRegistry.h:1282:0
# | #16 0x00007ff61a398930 llvm::Target::createTargetMachine D:\a\_work\1\s\llvm-project\llvm\include\llvm\MC\TargetRegistry.h:473:0
# | #17 0x00007ff61a398930 llvm::codegen::createTargetMachineForTriple(class llvm::StringRef, enum llvm::CodeGenOptLevel) D:\a\_work\1\s\llvm-project\llvm\lib\CodeGen\CommandFlags.cpp:766:0
# | #18 0x00007ff6197b3a93 optMain D:\a\_work\1\s\llvm-project\llvm\tools\opt\optdriver.cpp:634:0
# | #19 0x00007ff6197a6d47 main D:\a\_work\1\s\llvm-project\llvm\tools\opt\opt.cpp:25:0
# | #20 0x00007ff6197c518c invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:78:0
# | #21 0x00007ff6197c518c __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288:0
# | #22 0x00007fff34ab4cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0)
# | #23 0x00007fff3583edcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb)
# `-----------------------------
# error: command failed with exit status: 0x80000003
# executed command: 'd:\a\_work\1\b\build-release\bin\filecheck.exe' 'D:\a\_work\1\s\llvm-project\llvm\test\CodeGen\DirectX\strip-call-attrs.ll'
# .---command stderr------------
# | FileCheck error: '<stdin>' is empty.
# | FileCheck command line: d:\a\_work\1\b\build-release\bin\filecheck.exe D:\a\_work\1\s\llvm-project\llvm\test\CodeGen\DirectX\strip-call-attrs.ll
# `-----------------------------
# error: command failed with exit status: 2
```

Some tests that have triggered the crash:
- `CodeGen/DirectX/all.ll`
- `CodeGen/DirectX/strip-call-attrs.ll`
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWd1y4joSfhpxo4KyJf9ecEGccGpqkzOnQjYze0XJVgPakS2vJBPy9luyDQTiJJPMZGsvDkWFGKs_ff2j7nbDjBHrCmCKwgsUXo5YYzdKTy3sKB_lij9OvwEisQZsAES1xqzCorKgS2EtVBYXmpkNVhVWjcbfREUJrkUNUlSA6Ax57Tvy-rc3m8--XCM6w9fX9zfYraAznCkOf0CFyPxSaCjsd0TmxmpRjwsm5ZhZq81ESoxIQiNKPaxWOPFTP0QkdfDk4298d7W4w4jEH-CDSIydOleX-FcoIG92tRO23dXtTjqjZaosWcXx18bWjXW6G8tVY53OrWHH41Z3im__-aeTYxY7q3fyhGIUZxgjQn3s7TzP8-LVakVpRPLcCxxc5mDC7JuouHowKMwWj8ZCSQkKs6bQNmcGJtypeeHtYie1N_cRm5xhF4z778d2Us-x6Rk2BOwD2E7qOXZwjh3BR7AjGMAOj9iRnzIIaephKbdlF12Lkkl5D4VV-g7KWjILztWqQjRrqvY0crxcispGASLZVgmO6FUnq2rQzCrdHVZ82bFlKMyWD0r_QGHmozBzvN1-41qrf0Nh-0sUZqIqZMPh-MXs8s4peaQ02SA6I2mM6Mw70yt6Xa8LYTuI7nIlKr5cCW3sUlSIJAfVRGURyfD5da6URCTFhaqM_W2aHUh1ennpgF7xU71YwLzcX72slwG7zIU1n0TRD_wBisnrFO-YXoO9Vg-gRbW-YAaOPriFWoOByjIrtpBJZgwiSeE-nyHcwloYC_pLtVK9I9oUleHz9Tf3d7_gLClyFGb7LBtmz_lPirp21iCJN2CO9NQc6aqgyU-Yo1Bl3VjYa_mXdsfJCni_QdLP1Dmk0ZnOLol7J6cvDfyUB0_49oXqFPW1W89VPll3w4qNKyZ7paOhKOglFk1uW6Gnqz9som5_FGb72nv474RZby3inacqZyz_1FghAxY95_2lMrZ1bfctii_aYx5_ILG-Rf2wVZeHwgHO5Kc4H2z9wrcDkaxFLd9w5MK6mLiF1btvvhU0nxAGB2X3ITAUAfT8uOSRh43lHeuS_YBlU4n_NID7kv-XVmvNSjwXEhy3G1FoZdTK4nthGibxwjZcKBRmxCOuHbhyXXCthXEZ_T5zlJWSreiivfSDSRBMaOhC9Gn2L6FU-hHRGY3oeXZz1IMh6q9b_JU7L6W21wPic4OmY_C1tkJVZmiTg6NUu4ZJRDOomvIJxi1IVfTFSHGQrkd6j7zLxL3gOcbAyj-g-lrba9iCfNqs_E9SnD9YD8KzKKFA-Il5usp1FibZz5zfQ7s5k1IVbb_5dxT9P0XRs07yJjtEVed4_dh1kyQhA7Fz0skzmiYp9Z4Ztu-ZNDALp-n98_gGMR2gG79Ot1Ac1lC9yHeudBeIA1F8EmBveew3dH39Q_1csrXpj3ccDR3vk44_jXPKUopVbW-YqN5Pw_aVSdW2-8u12ILuGUQ0GGCQnjJgEQ9iXP6e7feVe6APIqeNblyEflJgUW3VD1i-tb3RBQqzbbHfsNC2vTaWadvUhxXHa9jBsmgfvyeicqc4TgY4-UOclktTaNtLt9SWBjafTI8kQ_xOxjABy4Mi994aZ_zj6vbPq2tKJpfX1-04w3dSp-MMh30yhgkTCrzIh7H_tbi7ummxK8ulfDIn4UX-BDjyxq-9-mWgdfvMjYt-ELZiQgLHD8JuMOyExcYy2xi3xNslXvuie-EdFI0Fvhd2ixCJ-bBv3BnNGyH5WIME1nZ0uXDndSUkFBsofkxgB4jEDuT94Q_GnmSBY9kfnir2SkzG4_FeeWM5aD1gJucm17NmjuXRaA6FZsZyUbX1KMbCYChr-zgZFNzv089t8a9Z6gMp4n02-rRIImfjauTNFqoE7PgZbDfM4g3bArZarNeggWO7gW4I3k9lHauhATKT0jFvUV9cNKRr5I34lPKUpmwEUz8OvdgjQRKMNtMkCTllPCYhXdEkj2IaRquEx8AAkjAuRmJKPBJ6kasofuAeR5I88eMUApL4cQg5CjwomXDUtuVE6fVIGNPA1A9CGscjyXKQpv1xgJAKHnB7F7kHoMuRnra-zJu1QYEnhbHmCGOFle2vCgdHXva_FfDG1Vz84jSm88vl9y_X7bTqFtbt56jRcrqxtnZ-QmSOyHwt7KbJJ4UqEZm3gdR9HMKLzFu-BpF5r9B2Sv4bAAD__7XeigY">