<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/90542>90542</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[NewPM][CodeGen] Remove reference to `MachineModuleInfo` when processing `MachineFunction`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
paperchalice
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
paperchalice
</td>
</tr>
</table>
<pre>
In order to support "machine module pass" in legacy pass manager, `MachineFunction` and `MachineModuleInfo` are tightly coupled (https://github.com/llvm/llvm-project/commit/733fe3676c629b25edcae79d3ba3ccb24e6c6cb3), but now we have new pass manager, we can use `MachineFunction` as analysis result again, thus the `MachineModuleInfo` during parsing `MachineFunction` is redundant, we should decouple them as much as possible.
Currently, these facilities (If there is anything missing, please add it directly) use `MachineModuleInfo` :
- [ ] `MIRParser`
- [ ] `MachineModuleSlotTracker`
- [ ] `MachineOutliner`
CC @aeubanks @arsenm.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUU8tu6zYQ_RpqM7gGTVFytNDixoYLL9JepP2BETmW2FCkwEcM_31B2UXdNkbRDYfgvM4ZzsEYzeiIeta8MiEWXCioCa1RxIRgzaHCnCYf-kdPNXh97U8OfNAUIHmIeVl8SMCEmFFNxhHMXmdLsGCMTAgwDiyNqK7rC8zocKTAxB5Yy99uOcfsVDLesZYDOv3geVuLndzZr75AkMw4JXsF5fNiSQMTL1NKS2T1dyaOTBxHk6Y8bJSfmTha-_mn-bYE_zupxMRR-Xk25bKr6zPV7a5VregG0ZBWSLtO1wPWSg1CUqtaNdRMdAXxkBM4f4ELwYSfBI4u_2J1IVDoIEd6RjACOrTXaCIEitkmwBGNK8lpyhHSRE8noHMwboQFQyz26w5rYZ2dRpfukOLks9Wg6Ta20mMuSOaspmIXH6MZLG0YPzD-_Xbucwjkkr3eoFEkOKMy1iRDsQz-dC7PgUpHdNc0FUyziQVbyVksYSRArcEk0CaQWqt1_xjP3zmWn1z7fwPWvAJrDmvo6f0HhkiBtfwr92OlX61PvwVUH_8R_UtO1riHoDvvPTDJkfKA7iOu9xDJzZtK97Xu6g4r6re7rZRy-9LKaupF03FeC9m1iiuJYsfbQcumUy-840LwyvSCC8llzfm22fJ60wjUuq216rRsJd8yyWlGYzdlVTc-jJWJMVPf8UaKyuJANt61WrZudd6FGvp1vYc8Ria5NTHFv6okk-wq8p_p8uONNQfWvO69pp_IlVm80-w_CQKdKZBTVDT97F8uEzlYglcUny9flYPt_7cgVzqRieNK948AAAD__3MgfN4">