<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/97326>97326</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[SPIR-V] Refactor SPIRVModuleAnalysis ideas
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:SPIR-V
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
michalpaszkowski
</td>
</tr>
</table>
<pre>
Before the new SPIRVModuleAnalysis:
ModuleAnalysisInfo collects information (from all passes) on required extensions, capabilities, and decorations (so they are not emitted).
New SPIRVModuleAnalysis (uses global ModuleAnalysisInfo)
- Collects requirements for existing instructions
- Collect global type/const/global var/func declaration instructions, number their destination registers
- Adds missing decorations (those which could not be deduced at individual instruction level)
- Number instructions
- Collect "other" global instructions
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEk0Fv2zAMhX-NfCESOHQS2wcf0hYBelgxdEDvskTHXGUpE-W02a8f7KRY2xXYxYYJ8_F7D6QW4YMnatTmRm3uMj2mPsRmYNNrd9Ty-zm8yDNnbbDn5oa6EAlST-DpBX58v398-hbs6GjntTsLiyp2Kr9T-e5j-d53AUxwjkwSYN-FOOjEwYPCqothAO0cHLUIicIagodIv0aOZIFeE3nh4EXhLRh91C07Tkzzt_YWLJkQZzmZ9CRMhGfQkcCHBDRwSmQV1ssL2-X58LWDSWEUEji40GoH_xpRWF8UAAAWcPtm60o8kE8CXYhAryyJ_QHYS4qjmQm_aH0blc5HUrg3wUtSuL9WTzoq3HejN5NRpy9OP2riLfhxaClOzjmCpWnw5cdIB5ZE8cPknbUCA4tMeJ_yS30QgpeeTQ8mjM7OKbYEluxoyIJOwN7yie2o3XsQcHQi9ymfhwvY_zJQiCH1FBXiWx7vWzLbFLYuap1RsypXdbXZ5NU665u27Oq87FY5bstuvc232HZVZ6oKy5osUsYN5rjOy3y1KosVrpcrs61aLMqtrQpTlKTWOQ2a3dK507AM8ZCxyEhNXRa4zZxuycl8HoitNs_krSp20-YsnhTidDSxmVoX7XgQtc4dS5K_YomTm8_r2rK5g0fqtEkhfrl_bElLNkbX9Ckd54vC_bQOnPqxXZowKNxP6tfX4hjDTzLTxszconB_QT81-CcAAP__0T5Mmw">