<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/153197>153197</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] Long compile time with large array constructor
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang:frontend
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DanielCChen
</td>
</tr>
</table>
<pre>
Consider the following code
```
PROGRAM main
IMPLICIT NONE
INTEGER(2), PARAMETER :: I2Max=32767
INTEGER(2), PARAMETER :: I2Min=-32768
TYPE :: DT0
END TYPE
INTEGER, TARGET :: I
TYPE(DT0), TARGET :: I1Arr(I2Min:I2Max)=(/(DT0(),I=I2Min, I2Max)/)
END
```
Flang took long time to compile it.
All ifort, gfortran and XLF used much less time.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUUstu4zgQ_Brq0ohBk5YtHnTg6hEYiB3D0GH3SEuUxF2KDEgq2fz9gJKdGWROAwgQ0aiq7uou4b0ajJQ5Sv9CaZmIOYzW5aUwSuqiGKVJbrb7zAtrvOqkgzBK6K3W9kOZAVrbSYQ52uP7hznA5fr6fOUnmIQyS-F4urwci2MD59dzFeFL8dxUz9UVkYwgwhAp4MKv_FQ11RUQ5YhyOJKT-B_RkpLD_vAHJGUQLZ8iK3t0a_65VA9E2axzVudyqf82UQENvz5XDXxp_iqDSBYV1vbfgVvuHCLZfQi-OiAM0RKRDJH6Qc5W_hHRcsWSAr7AEcYeI35bL8K81sIMEKz9D7SNLzVJCBZaO70pLUGFDcKcaw2qty5E6SE-nDAgTAd_v9Qwe9nBNLcjaOn9IhFJSZfTjlEmEplvD2mKccYOOBnzvWSsS3dCdKSn3b7t910mKEsF7g9ZlrJE5QSTFGdbst0RRvFG7rKeyR6zVuzaNu3QDstJKL3R-n3aWDckyvtZ5tuUbtkh0eImtV9iSEgfHSLKe2dNkKZDhMRwujxyn27z4NEOa-WD_6kWVNBLjFdyWsKLXRK6LmVZ0ocKI2jhBgnCOfEJrTU-uLkN1iWz0_kYwpuPt4wnqAcVxvm2ae2ESB0b3X9Pb87-K9uASL148IjUdxvvOfkRAAD__1ig9GY">