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

    <tr>
        <th>Summary</th>
        <td>
            [ORC] FastISel and ORCv2/LLJIT
        </td>
    </tr>

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

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

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

<pre>
    Dear LLVM team,

a while back, I ported an application from MCJIT to ORCv2/LLJIT (using the C bindings). One feature that was lost during this rewrite was the ability to control the method used to perform instruction selection. The MCJIT interface exposed this through a convenient parameter:
```
struct LLVMMCJITCompilerOptions {
 ...
 LLVMBool EnableFastISel;
};
```
but no such thing exists for ORCv2/LLJIT (that I am aware of..).

Thus, I was wondering if there is any way to enable/disable `FastISel` for ORCv2/LLJIT, either using the C API or via annotations in the generated LLVM IR? I'd be really grateful for feedback from somebody familiar with this part of LLVM (@lhames?)

PS: I saw that the `TargetMachine` C++ API has a `setFastISel()` method, but it is likewise not exposed through the C-level `LLVMCreateTargetMachine` call.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxkVNFuozoQ_RrnZVRETEKSBx4acpFy1aqrbnXfBxjAW2Mjewjbv7-yye52VSlKDDM-c3zOidF71RuiQuzPYn_Z4MyDdcXyA99tvalt-1FcCB08Pf33DEw4ClmK9CLSx_UbYRmUJqixeReyhCtM1jG1gAZwmrRqkJU10Dk7wnP57_UN2MLLa3mTQlZPT-GFkMfZK9MDDwQl1Mq0yvReyFMCL4agI-TZEfCADAt60NYztLNb9ygPjhanmGIxgGCttOKPMKqxhp3V8fVIPNgWZk9tKE3kOutGUMazm5vI05OmuErgbaA7Y2WYXIcNAf2cbNwdpvLg7NwPgGHIjYwiwzChw5GYnMjuEok8vX_i4zorChrRSztOSpN7mcJYD-JwXhshSZL7KjSfrdXwj8FaU4Wer99Ji-zeKg6XP-u_x9Uzg7Hg52YIrE0P9FN59tBZ99WHKPEVcARc0BHYLkmCD58tfxtmv1od5F6saSk6obogsiNQHtB8wILRAIqUhaxa5cMKRJ7-PkCefuURsEkFKPgci8dvV7AObgoBjbGMq1zKxHpPhhyG4MWkXl9FVsFVyEMLNYEj1PoD-tDRzTrO7IjakNo1mt6OFNIOHY5KK3SwKB5Wnyd0DLZbkYU8il2qBxzJi6wS8vRZm2_fRfYIV_C4rHEN3ESevqHriZ-xGZShcOpSyLOQ53iqAT1g6PLEv5WRxwCdp_fQBlGClYqDvFq906I8gbH8KZNrHKNcD5pupANoYF06QqYvJBrUOtm0RdaeshNuqNjmp2N-OG4Pu81QYJPi9hiecZt3iG2e7vZNnjenbiuP6WGjCpnKbJtm6Xafyt0p2Wf1Ljtg27Y72cjdTuxSGlHpROvbmFjXb5T3MxWHNM_zjcaatI8Xj5SGFohFIWW4h1wR9jzUc--D3CGxf1BYsY431strKfYX-CUaoGn_ztJmdroYmCcf_o6yErLqFQ9znTR2FLIKkPefh8nZH9SwkFUk4oWsItH_AwAA__8Mq6W3">