<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/185003>185003</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Why does opt produce "unknown module pass 'xxx'" in case of default<O3>?
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
pmor13
</td>
</tr>
</table>
<pre>
If I run:
```
opt -S --load-pass-plugin=yyy.so -passes="xxx" < foo.ll
```
then opt produces:
```
<nothing>
```
which is expected (pass 'xxx' is found and executed).
If I run:
```
opt -S --load-pass-plugin=yyy.so -passes="xxx" -O3 < foo.ll
```
then opt produces:
```
Cannot specify -O# and --passes=/--foo-pass, use -passes='default<O#>,other-pass'
```
If I run:
```
opt -S --load-pass-plugin=yyy.so -passes="default<O3>,xxx" < foo.ll
```
then opt produces:
```
opt: unknown module pass 'xxx'
```
Why? How to execute module pass 'xxx' together with all passes in -O3?
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0U82OozgQfpriUiIy5STAgUM2vWj71Ic99BlwAd51bITtTnj7EXRG03-aU49kCcnFV99PuRrv9WCZKzj8BYeHpIlhdHM1XdycyaR1aqkee3zEOVqQJxDbOYr7ESc3BUz_xTQ1rlHp1HifTiYO2oJ8WJZl5x1ut-xBPgDR7XYDIgR5xt65nTEf-oE4hZEtrn2n2anYrcgviEGerQujtgPIvz_UrqPuRtQe-TZxF1ghULGqQKB8U5Cv1d5Fq7CxCvnGXQysgMrdK9WfMJ0-yW8wfm6sdQH9xJ3uF0yfgORmIn3LWadp79x2A3TG6PmdpFxx30QTQJ5X_BohnV0Yeb5D8s_yvjWSN_x39m97GW4KIE8Y7f_WXS1enIqG8f34P_d-HheQNf7jrhjczwfxNRiDG3jNCq86jNgYg6_WUNt1yCDrRFVSlbJsEq6yPKdCSHHMk7Fq2qI8lFwqkam8yFQpBO1FkeVM8tB2KtEVCTquv2cyy_f5riypz_uiPVCR5e3xCHvBl0abnTEvl52bh0R7H7nKioMQMjFNy8Zv60xk-YpbFYjW7Z6rFZS2cfCwF0b74H-1CToYrp7HBZVj_zZnBKLfx0m0eu8az-h6_DhcWSdxNtUYwrSNjGqgetBhjO2ucxegehVx_6TT7P7jLgDVm3QPVN-9vVT0IwAA__-FHGPy">