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

    <tr>
        <th>Summary</th>
        <td>
            [DirectX] Switch to Itanium ABI
        </td>
    </tr>

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

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

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

<pre>
    Itanium ABI is pretty much a standard for C++ ABIs and it is already used for SPIR-V generation. It uses a well-defined name mangling scheme with vendor qualifiers extension that we can use to encode HLSL resource type attributes. 

Some of the potential issues that we might encounter after the switch are:
- changed order of parameter initializations
- bitfields layout changes
The consensus is that these issues are most likely not going to be blocking and can deal with them as they arise, for example by defining the order of values in bitfields in the language spec.

DXC is using MSVC ABI. Maintaining linking compatibility between DXC and Clang libraries is not required.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxMk8-OpDgMxp8GLlYhCPWPA4fpKpW2pRlptbUazdUQF3g7JEzidA379KtQNdt9CUKJf7a_z8YQeLBEbbZ7yXbnHKOMzrcjvTnBvHN6aV8FLccJvry8AgeYPYksMMV-BIQgaDV6DTfn4ZSpl0y9pJcB0GpgSRFoPKFeIAZ6vLv--frX5jsMZMmjsLMFvEq6DoBwJ2M2mm5sSYPFiWBCOxi2A4R-pIngzjLCO1ntPPyMaPjG5APQLyEb2FmQEQXuBD3aRAVxQLZ3muCPr9ev4Cm46HsCWWYCFPHcRaFQQFaes_LL47y6icDdQEaC2QlZYTTAIUQK_2eYeBhlhUcr5AFv6Uwh4c6SFPKU1U_iBvoR7UAanNfkE3xGjxOlGLacEvC_qyDhd0THcmMyOoDBxUV5Ip73f48EvbOBbIghSb3WJSMF-l0peoLJBQHDb2QWsE5gcElNcdARdMb1b-k3-ZUE04TmIbGMNAEmKC2AngNl6rQaSL9wmg1Bt8Dq1Iob6aOvdzQpOdtPDbBd3xi0Q8SBIMzUF58VP_84pR5iSLhv1--nNEgFfEO2go8khu1abO-mGYU7NiwLdCR3IgsJkNo4pRxguPPomVZhUtuefkb2pItct7Vu6gZzaquDOhyr7bE55GNbH45lc8O62fXH5ljtb3vddfp4bJqeaqJdzq0q1bYqy0qV9XZ3KCqF3baqVa0a3FO1z7YlTcimMOZ9Kpwf8tWHtqrKQ73PDXZkwrpsSlm6P1zKlEq759sUtOniELJtaThI-MAIi1m39MyeevmR7c5wfcyYOPi0o3n0ph1F5pAGT10ydRlYxtgVvZsydUnE52cze_cP9ZKpy2NaMnV5Fvreqv8CAAD__8gZZoo">