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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] Design and implement a library for performing work (example: compiling a shader) out of process
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            HLSL
      </td>
    </tr>

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

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

<pre>
    The current DXC compiler library is an in process component. Desire has been expressed to have an out of process solution for compiling shaders. This solution should perform compilation in a reusable host process that is connected to by the c-style compiler library.

# Build a reliable/reusable IPC mechanism
The llvm-project encourages building reusable libraries (called support libraries) that can be connected to together to create compelling clang tooling.  Clang itself is constructed using these libraries.  Each support library is individually tested. IPC logic seems like a good fit to be added to the support library set of features.

Requirements
* Reusable library for interprocess communication (IPC)
* must be cross platform
* tests are implemented that validate this library
* documentation is written and located where other support library docs live
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxkVE2T2jgQ_TXi0hWXEWYGH3yYDEttqnJIZXPYqyy1bW1kyatuMeHfpyQcGJILINQf771-akVkR4_Yif1HIaUOYVmElGJ_3KjEU4hd-WvTB3Ppvk0IOsWInuH47yvoMC_WYQRn-6jiBSyB8mA9LDFoJCoRwaPnCo5INiJMiqBH9IA_lohEaIADTOqMOTUkhjDc0im4xDZ4GEJcu1k_Ak3KYKQKvk32XRBNITkDC8YhxHmNV-XKelAQMZHqHcIUiG89eFKcgevgPWq-4ukvwJnsB-KLwz-IVqI-ivpl_ZQ7-JisM6WFs7mFkKdbt09fXmFGPSlvab6mZCGdO88flhj-Q82AXocU1YgEfS6VWd4KXJtaJBDyoJVzaIDSsoTI9zsh2ysVrTz0-EiHw4g8Ycy_dUTFV0roipzaKT8Ch5BPFcBrOVsmdMOqDHFMpViinMET0jtcFcBfSk-_gSp2sN7YszVJOXcBRmI0VVHEhdFqIMSZwNnvCArGEAwMlssAEJQxK_oJ_yhNWIwyoOIUkR4G8hX_TzbijJ7p14he4OujnJfiKesZ4zuzzslbfbWMkIdPX16FbO8l5kRctI2BCBanOBvtfp_5EaiIYOfFFQCZQZ7KWTlrsu6cLbtCuGeaoFMOX91K8BYtM3pQ3oALWuVCbxNGhFAG-bseJuhc9owb0-1Mu2vVBrvt87bZt-22rTdT1zZPcts-9bJWh3pn2u3w1OzRqOZg-v22xY3tZC2bel9v5Xa329bVYJq2l4eh0bVu8XkQTY2zsq7K1q1CHDeWKGHX1s8HuXGqR0frHvn78z-f1zUSu-L0Po0kmtpZYroXYMuu7J6SsD-WLTFead80BPUws_V9Zx--hfg9Dwp_qBwsdi_vtoRa90R-GY97ZZOi6ybmhcTuRciTkKfR8pT6SodZyFOGt379eqFCngpZEvJU-P4MAAD__1H20Vc">