<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/60983>60983</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang17] File blowup and timeout for generating llvm IR file with -emit-llvm
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          cbossut7
      </td>
    </tr>
</table>

<pre>
    Clang compiles the file fine.

$ clang-trunk -O3 abc.c -o abc.out

However it never finishes generating an ir file, which also blows up in size.

$ timeout -s 9 20 clang-trunk -O3 abc.c -emit-llvm -S -o abc.ll
Killed

$ clang-trunk --version
clang version 17.0.0 (https://github.com/llvm/llvm-project.git a52432f633127036f5da7bedd83bacb1083cb833)


This seems to be a problem with the latest clang. It emits an ir file for clang 13 without issue.

$ clang-13 -O3 abc.c -emit-llvm -S -o abc.ll

$ clang-13 --version
clang version 13.0.0


$ cat abc.c
typedef int h;
int a[], c[];
h b, g, f, e, d, l;
short n;
short(o)(short p, int q) { return q >= 2 || p > 7 >> p << q; }
void r() {
  h *i = &b, *j = &a[3];
  for (; g; g++) {
    h *k = &c[2], *m = &b;
    for (; f;)
      ;
    e = -7;
    for (; e; ++e) {
      l = 0;
 for (; l <= 8; l++) {
        n = o(*i & m == k, f);
        *m = (&d == j) - (3 && n);
      }
    }
  }
}
void main() {}

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVd2OqzYQfhpzMwLBmPBzwUV-TtSjXlRq-wI2GPCusVlsNjp9-som2STd7lGLook94_nmz3wwa-WghWjI7kB2p4itbjRL03Jj7erKiJvuR3NUTA_QmmmWSlhwo4BeKi-0SEh6Iun-KjGH1h-O3bLqV4h_o8B4m7QQm7Awq3s8_4u5iHexgHSgw6KXWtpRWBiEFgtzUg_ANMglBCR4hMso2xGYsga4MhcL6wxSg5V_fU7FyUmY1UFsoQZMv0pNTNLFSr1PEP9xS1SpDeZXqZToflpj_C4WK43ezMEEVxVkZZImKRCsRudmS-ie4JngeZBuXHnSmong2Ye-_sXzYl5E65JBOmA7zCn2BaUZlikt-l3HSi66rqKctTxLK9ryilKC9VOCQf45SgtWiMmCM8AFMJgXw5WY4CLdGIaomBPWbdUk8N2B74R9aDj0ZtnMkNHg59sprV2_mntG_2tn_83zp62kvpWfCw0IzG0hN5X7MYtO9CC1g5HQw6b1O7Zdc3-R2uvyZh6Be_XgRe9FuG6dF-rjkB3N4kA_7wlWxs8Aq808ex8f7Y1gDaQ8wCLcumh4A0K_EXoCBFIeSXmE2Wug3PTfwvZI6BHeCD0AKU9blHcjO1gIVle8TQswAsG9BI9IsAjpE9y_3BS-WPpYIoR5ehx6gGETeAi_J9wr8usNyLcKr20juJ_uEemDzwN27w23WwnheToqAkJcfuUvQvkhNfEpNwAV3NO794Or2lp4gm33RX3-0QHFhLb6LmIBoTKvfb3egvopw1DHvf6KYNHdPF58jNhrqYfyaPqz_8dI_7H5WD7PfGJSP4z9Zou6hnY1rVkkmqwoSyzzPK-jsemKKi-7HlEwTndFxso-Y1m6y9s-73ecRbLBFGmKmGNG87ROBPZdV5S1oCntecpJnoqJSZX4tzYxyxCFt70p0rqikWJcKBu-FYhaXDYqIOgvR7Q0gcH4OliSp0paZ-8oTjoVPjLhpc5KsjvB2TOMJ_F1Bqa7D7r203zg_8Af33_fCClw151XonVRzf-jVoLnkLUleA5V_R0AAP__SK3vUA">