<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/112271>112271</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
GlobalISel generator gives an obscure error when setting incorrect defs on an instruction that modifies physical registers
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
JL2210
</td>
</tr>
</table>
<pre>
Repro (run from build tree one level under project):
```
include "llvm/Target/Target.td"
def T : Target;
def A : Register<"">;
def B : Register<"">;
def R1 : RegisterClass<"", [i1], 0, (add B)>;
def R8 : RegisterClass<"", [i8], 0, (add A)>;
def FOO1 : Instruction {
let OutOperandList = (outs);
let InOperandList = (ins);
let Pattern = [(set A, (add A, 1))];
}
let Defs = [B] in
def FOO2 : Instruction {
let OutOperandList = (outs);
let InOperandList = (ins);
let Pattern = [(set A, (add A, 1))];
}
```
command:
```
./bin/llvm-tblgen -gen-global-isel -I ../llvm/include ./test.td
```
log:
```
Type set is empty for each HW mode:
possible type contradiction in the pattern below (use -print-records with llvm-tblgen to see all expanded records).
FOO2: (FOO2:{ *:[i1] })
// record omitted for brevity
./test.td:18:5: error: Type set is empty for each HW mode in 'FOO2'
def FOO2 : Instruction {
^
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUVV1vqzgQ_TXmZZQIhtDAAw9Jc7Pb1ZW66lbaZ4Mn4JVjI3toN_9-ZULzUfXq3teVEDL4-HjOmRlbhqA7S1SLYiuKXSJH7p2v__iOmKVJ49SpfqHBOxBY-tHCwbsjNKM2CtgTgbMEht7IwGgVeRi8-4daFliJfCPSnUg_3g_p_Eyf2rZmVAQC0Zi3o8D9q_Qd8WWwZCUQbxkUHeAVRL6BGZpvP09vpukX6nRg8iJ_jBSIIv92AUfY9uewK_glu0M_GhnCdQk-gii2OhPFLo7T6QeWUinYTibc7_xS_gJZ-QXZ5hPZlXL__HyO8MkG9mPL2lkQ6xkHYIjheeTngby06rsODCLfRV43cpho77BP9guotl8g_5TM5O0ZU2wFloE4Rnob9SNkcSVWUdQl-vXuVkYk29EhfDDFSgRt7zTi_1fjfeWf3607HqVV1ya5By0F7httBe5jdyy4MR1ZWHRkF51xjTQLHcjA4gmWyxkkcP_RVPEXU5h66MchGNf9aPvX00AQheoAdBz4BAfngWTbw-9_w9EpuqwcXAi6MQQc17TOspdKnzOkLXBPMMweNmTce7RtDASLwWvLC0-t8yrAu-YebrWyg0AE0higfwdpFSmYwQKr5XnzWBexLCCyzh9ivQWBmziaGxNiKrCaleJe4H6mAnfUzKQmeY2nN82nawI-LMw3WSnyTRF3Iu-dn86gn1oU5QtcT2Hh-peLWRTfPuUkUXWuqrySCdXZGstqlVVZlvR1q1b5qlJEKItKUipXD9Q8VOlqnTWUqkOia0xxlaXZCrO8zLMltSmWD9iqhyxvirISq5SOUptltH7pfJfoEEaqswxxnSVGNmTCdDcgWnqHaTYeVcUu8fWUr2bsglilRgcOVxrWbKj-barVp7_IQEeWvGTnodNvFEBacE1oR09nT-G9JxsNZW070LZ13lPLoOK54GzE6xu_uJccXdYHTQGG_hR0Kw34-WANyehN3TMPIRbClPNOcz82y9Ydrx0zKbjcWftJXhC4n_W_1fhfAAAA___hARCI">