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

    <tr>
        <th>Summary</th>
        <td>
            [Attributes] Introduce API about whether attributes is ABI or not
        </td>
    </tr>

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

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

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

<pre>
    This is follow up from https://github.com/llvm/llvm-project/pull/91122#discussion_r1590620385

> [arsenm](https://github.com/arsenm) [7 hours ago](https://github.com/llvm/llvm-project/pull/91122#discussion_r1590621362)
> Really we should have something in Attributes that maintains whether the attribute is ABI or not

> Member
> @[nikic](https://github.com/nikic) nikic [5 hours ago](https://github.com/llvm/llvm-project/pull/91122#discussion_r1590713703)
> We kind of have this in

> [llvm-project/llvm/lib/IR/Attributes.cpp](https://github.com/llvm/llvm-project/blob/d98a78590f4f9e43fdfb69fde7d154a985e4560f/llvm/lib/IR/Attributes.cpp#L2021)

> Line 2021 in [d98a785](https://github.com/llvm/llvm-project/commit/d98a78590f4f9e43fdfb69fde7d154a985e4560f)

>  AttributeMask AttributeFuncs::typeIncompatible(Type *Ty, 
> , but it's currently mixed together with typeIncompatible(). It would make sense to separate it out.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VE1v5DYM_TXyhehApi3bOvgws-kAA-wCxSJAj4Vs02MlsmToY6fz7ws7yU5SBN1ugL3YFEiRj0_kUyHosyVqmTgwcZepFCfn24fwoLPODdf2ftIBdIDRGeMukBYYvZthinEJrNgzPDI8nnWcUrfr3czwaMy3l99vi3cP1EeGxyUZw_Ao8xyRYTHo0KcQtLN_-VxIXiEvGsH4HeP752_xOzBxUD6QnZm4Y9j8R9HnMJTrnRoml3wAdXY_vPhBtHlRIUN5g_qVlDFXuBCEySUzwKS-EQQ3U5y0PYO2sI_R6y5FChAnFWFW2kalbYDLRHEiD3EiUC9RK-v7wwmcB-viK1K-W19o7si_8pSciYPVj7r_Yd9PUShhM1bWxK9mrc6LmhdvWPuT4FHbAdz4xFfcps2-1ywTh3-VewGhO4bH01eGxxvDu35ZPthFZ9yacJCNqhsh-ViOkspiHMaukuNA9ZCLUslGUCkqPv4fIFh8Ro75m9Zv1mdtCVb_OiRMHJ4rfxB-7-ZZx59q4F1Ut3H9osLj7XRMtt8AFft4XehkezcvKurOEMPm_roQMNzfXxl-ev16-Am6FGFFVgfok_dko7nCrP-mAaI7P23ARccJ3snLUO7gFOGy7dasHgkC2UAQHQRalFfrwkRwKe6yoS0GWUiVUZvXueBc1FxmU1urRuWqEygKHJq-UlXDBXV93qMiJetMt8ix5IJXeYkN1js1ylwUlVQoiooEZyWnWWmzW0nfOX_OdAiJWplj3mRGdWTCJqWIli6wORniqqy-3R6qS-fASm50iOGWJepoNg2-DQ4Td3Cy0bsh9QT7P06gOpfid61QNzV5IxRZ8qb96anZkIZteTFv_gkAAP__rbjmQQ">