<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/88115>88115</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[ORC] LLJITBuilder overwrite CodeModel setting from JTMB
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
epitavy
</td>
</tr>
</table>
<pre>
I am doing something like this to configure a LLJIT object with it's code model set as `CodeModel::Large`.
```cpp
auto JTMBOrErr = orc::JITTargetMachineBuilder::detectHost();
if (JTMBOrErr)
exit_on_err(JTMBOrErr.takeError());
auto JTMB = std::move(*JTMBOrErr);
JTMB.setCodeModel(CodeModel::Large);
// TODO find a way to setCodeModel(CodeModel::Large)
// because JTMB's code model is overwritten by create() function
jit = exit_on_err(orc::LLJITBuilder().setJITTargetMachineBuilder(JTMB).create());
```
As written in the comment, the code model is overwritten by `LLJITBuilder::create`. Digging in the code, we can see that `LLJITBuilder::create` call `LLJITBuilderState::prepareForConstruction`, which then set `CodeModel::Small` without looking at the setting in JTMB. See here :
https://github.com/llvm/llvm-project/blob/040e0d4fa45f3606fb584c2923dd111cca675feb/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp#L755-L757
I think there is no reason to force this setting.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVF1v4joQ_TXmZbSRY0hCHvLQlqLbqhXSLe8rx5kk3iY2sidl---v7ACl3fu1EgL8dWbOOTMjvdedQaxYdsuyzUJO1FtX4UGTfHtf1LZ5rx5AjtBYbTrwdkTqw79BvyJQrz2QBWVNq7vJIUh4enp82IOtf6AiOGrqQRMThQdlG4TRNjiARwLpgeX8zjb4HPbY8oYtb56k65DlPGF8w_jN6Tvn80cdDvOOnMjC4_75dufunQO23IB1aoZ4fNjvAwo9S9Vrg7eTHhp082GDhIr-sJ6YWDNRsuXtjKhbYGJ9gQxHcR_wp6bv1nzHsPlxISH5ivfOWXcCusL6kmNMz1MzZzDaN4xPbj4FO78Nm4lH-tBFrP9Wo1_iMbFlYgv73WYHrTYNSDjK9-DO_4S7RqlRycljzP-redqDfUN3dJoIDdTvoBxKmlmV0E5GkbZmxvuhKfL_LOPFrFgsZ4fi-0D-nyyc9Q-XriN-kuJcKtfK3Hg4J6sNUI-g7DiiISbuTst_Icdy_inLmPcpfs4T2OiuCw1xgW4w4B4RlDTgMXSJpP-AASWH4eudFwqH8eLB4UE63Fp3Z40nN80S5zyG6rXqQ3ATG-vXrnoZ5TCEKKEd7UQwWPsacpYUc_ZIdKIQ6w9eEKFHhxDeRw17ooMPq1gfnaZ-qhNlRya2w_B2_vl2cDb0PRPberA1E1u-4sibVStXWbvMed7W2XqlRCmWTZOmqVIyL7IW6yscHRb3P1FNgeO96bRBJrY7p5jYRn2SMAjE8qnIsm9PRVZcm_0QhpJ5DbwcBjuNBYfSWxNaobVOncbWiXSyaKplUy5LucAqLVKR55koskVftaiKYs3rMsvLtcjrMmsLJeq25GWdq1YsdCW4WPEVL1Mh0jRL5CpNC8ElikyUTSHYiuMo9ZAEaol13UJ7P2G1XqdpthhkjYOPg1cIg0eIh0yIMIddFfWsp86zFR-0J_-BQpqGOLF3f96xbAPXRXMpX4RLFVwMbp0do8WLyQ3Vb3saE_RMbCOBvwIAAP__kM3xVg">