<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJylU01vnDAQ_TXmMipiYb84cEiyXWmlVJGi3CtjBnBkMLXHu8q_72B326jqrcjyB_abefP83Nruo3kb0SFoDxIGnNFJA4PljixM9orrKI2xNxBlqYInO_GE_y5g8IoG7MIY0nb2oGdPKDuwPTj8ETTHbYM2pOf8m-2Cke5lEeUT_ySgkUM7OXsTwYztnfTkgqLAuFG6DpTt0EOEYkJiPuR8VFQPojiJ4t7vi18tLctzanCZCV0vFa6U1ox9mFVMR6Ok3_nXJM-X11gqdLrvWZGZoLdu4lNy7v6OawMtgXwM6dAHQwnL_FFOOVwoCrrKhl1SksN-xPNTLCdPIYPX8wBvdx5nZ6eVyflOU1SndBD489SthVcP9ypE9fRsB62keY0kRHn8LJYx1ykBnLx9t4kcX-M-0RdlLaqvonr8t4ix50JuNpgOWoRZK_zkihvfkId3dgSkKl7uRhDlA0RTWQfeTkgjb-dZ11RdXdUyk4FG6xoumNhvWXCmGYkWv3KN-g6axtDmarXaOVaRhi-Ls--omPlZex_Q82RXVYciGxu538vjpt7jpkDctsfDtsfjoZbHut2W2O4yI1s0vhG7R_bvZLTjdMo65JXYnbL_56CbsijLYlNWm3pzLLe5OqhNv5PFXu0OdV0rsS1wktrka5zcuiFjEdaQbRg8bxrtyf_ZlN7rYUaMlJkhaTLYPKYHtfrrftewOH3VBgf2Wvvx-VX5LHJsIsGfS2NMJg>53370</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Builtin is ModuleOp privileged by translations
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir:core
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
lattner
</td>
</tr>
</table>
<pre>
There is a general goal to move to allow "custom" top level operations instead of require builtin.ModularOp, but the translation infrastructure hard codes ModuleOp, e.g. in:
```
/// Interface of the function that translates MLIR to a different format and
/// outputs the result to a stream. It is allowed to modify the module.
using TranslateFromMLIRFunction =
std::function<LogicalResult(ModuleOp, llvm::raw_ostream &output)>;
```
It would be nice to move towards just using Operation* here or something.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxtU9tq3DAQ_Rr5ZajxZZ2NH_yQSxcCKYGQ9yJLY1tBtlxptEv-vmO524YSI3Q_M-eMjnunP7q3CT2CCSBhxAW9tDA67sjB7M64jdJadwFRVSoGcjNPeHcFi2e04FbGkHFLALMEQqnBDeDxVzQct4_GklnyH05HK_3LKqoH3iSgiUN7uQSbwIwdvAzko6LIuEl6DcppDJCguCMxH3O-Kuo7UTyK4trfFH_avqxOe4OnhdAPUuFGacs4xEWldDRJ-pt_S_L89JqkgjbDwBVZCAbnZ74lF_1_XBdpjRRSSI8hWtqxzB_lnMMTpYJuZUO9V5LDfqT7c5KT7yFjMMsIb1ceJ-_mjcnpSlPUj_tF4C-Q3oTXd1cVon54dqNR0r4mEqK6_Vwsa8_zDvDy8tPt5PgZb3b6ompF_V3U918XMfUs5OKi1dAjLEbhJ1dc-IUCvLMjYFfxcjWCqO4gmcp5CG5Gmvg4z3RX67ZuZUaGLHb3uzO2Ql1Jw-rN2VgcuWj9x2d7hCx6201Ea9gUpVcYDU2xz9VmyFPSug_fVu_eUbG-kwkhYuBJU9fHIpu6sh8OZSMPEgd9K3l61DWWBbNqG9SHQ2ZljzZ0orlnl8_WeE6nnEdeieYxM11VVFVRVnXZlrfVIVdHVQ6NLG5Uc2zbVolDgbM0Nt-Y5M6Pme8SqT6OgQ-tCRT-HcoQzLggpoQcX0aaHCMkEf-KWeLfJfK_ASsENsg">