<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/130553>130553</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
MachineSanitizerBinaryMetadata modifies original IR as a MachineFunction pass
</td>
</tr>
<tr>
<th>Labels</th>
<td>
llvm:codegen
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
melver,
dvyukov,
vitalybuka
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
arsenm
</td>
</tr>
</table>
<pre>
https://github.com/llvm/llvm-project/blob/c4808741e89df29dcd06c7be2784824c82f34e46/llvm/lib/CodeGen/SanitizerBinaryMetadata.cpp#L82
This violates the rules of codegen, where we assume the underlying IR never changes.
For the purposes of what this pass is doing, it should not be a machine pass. It is only checking the size and alignment of stack passed arguments. The ABI is exactly computable from an IR signature, and does not require going through codegen to get this information.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUk8uupDYQhp_GbEpBxtANLFj0ORHRkTKbZF6gsAtw2tjEF056nj4y3TPJJousEHbVV5f_N4agF0s0sMsbE2Ijc5BnQjDxzoRQxyPd3fHj_9ARzWNKd8xHl58LTHF1fkAfyG7F5NRjWGPcA6tvTIxMjIuOa5pK6TYmRmOO75-fdu_-IBmZGCfjJiZG2XS8a5uKul7NoldS8atsJxJt13SikZ2Y64aa6784Oue9O0W_kGVi_B2tjvob-Tdt0T--UESFEUu570zUv3aC8Rvjt6-rDnBoZzBSgLgS-GQogJtBOkVLZr3D50qe4JMAQ0gbnXHJKvLmoe0CH7-BpYM8yBXtQqGEJ3x0_gzdk99deFI_V4wQc9UdQwAdQDltl1xFRwirS0aBdREmAoQN5aotnbElfMQc76x5gFxJ3nPtzA_6GwFaBWj0YjeyMVcKEeX9zCQF6JeUL0IJX1eC29tHRtFfKGOmuW1PESdDMHu3Ado8UzYDxuQpN5fxylE4e_P0Z9KeYHHPFrxLy_p9YRAdLPQaUtvZ-Q2jdrYs1FCrvu6xoKFqm-rSXZtKFOug5rlGamo5txVvsEHV43ztlRTUyElSoQfBxYXXFedXzitRct71su2EbKu-Fu3EGk4balNmN5TOL4UOIdFQ1fxyqQuDE5nwsvVpmPr2Q97Tu344jTilJbCGGx1i-IcVdTQ0fHlq8R_Ggs0pPesssteLtmjyCjEAwitxTFbmPZySFMmb__86zqECE-NrrmMQfwcAAP__Ijw-nA">