<div dir="ltr">This makes sense, I squashed this patch together with D10673 (MIR Serialization: Serialize register mask machine operands.).<div><br></div><div>Cheers,</div><div>Alex</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-06-23 12:12 GMT-07:00 Duncan P. N. Exon Smith <span dir="ltr"><<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br>
> On 2015-Jun-22, at 14:30, Alex Lorenz <<a href="mailto:arphaman@gmail.com">arphaman@gmail.com</a>> wrote:<br>
><br>
> This is what tablegen would produce for the X86 TRI:<br>
><br>
>  ArrayRef<const uint32_t *> X86GenRegisterInfo::getRegMasks() const {<br>
>    static const uint32_t *Masks[] = {<br>
>      CSR_32_RegMask,<br>
>      CSR_32EHRet_RegMask,<br>
>      CSR_64_RegMask,<br>
>      CSR_64EHRet_RegMask,<br>
>      CSR_64_AllRegs_RegMask,<br>
>      CSR_64_AllRegs_AVX_RegMask,<br>
>      CSR_64_Intel_OCL_BI_RegMask,<br>
>      CSR_64_Intel_OCL_BI_AVX_RegMask,<br>
>      CSR_64_Intel_OCL_BI_AVX512_RegMask,<br>
>      CSR_64_MostRegs_RegMask,<br>
>      CSR_64_RT_AllRegs_RegMask,<br>
>      CSR_64_RT_AllRegs_AVX_RegMask,<br>
>      CSR_64_RT_MostRegs_RegMask,<br>
>      CSR_NoRegs_RegMask,<br>
>      CSR_Win64_RegMask,<br>
>      CSR_Win64_Intel_OCL_BI_AVX_RegMask,<br>
>      CSR_Win64_Intel_OCL_BI_AVX512_RegMask,<br>
>      nullptr<br>
>    };<br>
>    return ArrayRef<const uint32_t *>(Masks, (size_t)17);<br>
>  }<br>
><br>
>  ArrayRef<const char *> X86GenRegisterInfo::getRegMaskNames() const {<br>
>    static const char *Names[] = {<br>
>      "CSR_32",<br>
>      "CSR_32EHRet",<br>
>      "CSR_64",<br>
>      "CSR_64EHRet",<br>
>      "CSR_64_AllRegs",<br>
>      "CSR_64_AllRegs_AVX",<br>
>      "CSR_64_Intel_OCL_BI",<br>
>      "CSR_64_Intel_OCL_BI_AVX",<br>
>      "CSR_64_Intel_OCL_BI_AVX512",<br>
>      "CSR_64_MostRegs",<br>
>      "CSR_64_RT_AllRegs",<br>
>      "CSR_64_RT_AllRegs_AVX",<br>
>      "CSR_64_RT_MostRegs",<br>
>      "CSR_NoRegs",<br>
>      "CSR_Win64",<br>
>      "CSR_Win64_Intel_OCL_BI_AVX",<br>
>      "CSR_Win64_Intel_OCL_BI_AVX512",<br>
>      nullptr<br>
>    };<br>
>    return ArrayRef<const char *>(Names, (size_t)17);<br>
>  }<br>
><br>
><br>
> REPOSITORY<br>
>  rL LLVM<br>
><br>
> <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_D10615&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=GTM7ObmBHDqrCgK8Wn2i3VSYaUJCaY0rpFBEPyR94zA&s=e21dh8Qzh1KNXvkupX1-XZyFgvhL5IubybXW6SiEv2c&e=" rel="noreferrer" target="_blank">http://reviews.llvm.org/D10615</a><br>
<br>
</div></div>This introduces code without using or testing it.  I think it'd be<br>
better to squash it with its first use.<br>
</blockquote></div><br></div>