From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x530.google.com (mail-pg1-x530.google.com [IPv6:2607:f8b0:4864:20::530]) by sourceware.org (Postfix) with ESMTPS id 3FDB8385800A for ; Wed, 18 Nov 2020 11:35:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 3FDB8385800A Received: by mail-pg1-x530.google.com with SMTP id t37so921909pga.7 for ; Wed, 18 Nov 2020 03:35:20 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=6wR3oTCyLC/mcQiySHQM6X5MxhvtlUcWrnGRJD4l1GA=; b=j54iHpC+lQ+wDCq4VABdmuUbuSaSwE3iXMd7Q8TOl3Gstzddh4OYO5QhyVJAYR7GjH JT4+Ue3eA+hMdE30rzS0KavjxpUmq4Qx3VQvjIw8zC7ri5nPKjYSq6z6F4rtIUh9dLY4 9DQ3vfKQlGgyvj5T3EeqK/GZP6LRfALvLjtky5iE4UU0P3pxKPDCg3MF6Ls8mYojtyVW 6mAAFJr9If+t9kGKUPMk39tXID6q8xKl4a8xhU307Lu8ruuBfemCi2q6AlcRoLIApMF9 u82KCsLkRcDTBxpwvGptVLKLYxxGbzxdxb5LgwOeeObfPx9wwiVJlRJ1lxotuAlcHy2L /gYQ== X-Gm-Message-State: AOAM531WmX9aNC0OqvJFUAIDJo5iXa9PE5o7cs9veLInrDVfi+xHWUWc +bqm/neT+7GENbG2u9qM2QI+1lnoAf6R5nz/VHDzrTycgjVzOA== X-Google-Smtp-Source: ABdhPJxH9d57kQHIhLM5uwH96+A2vvbdj0YpIsxnS2nIssIPiWeZPtDIZUs4Gh+kf45uTUVh3eBkFt5raMLcW4oiDn8= X-Received: by 2002:a62:e516:0:b029:156:3b35:9423 with SMTP id n22-20020a62e5160000b02901563b359423mr3890659pff.19.1605699318750; Wed, 18 Nov 2020 03:35:18 -0800 (PST) MIME-Version: 1.0 From: Prathamesh Kulkarni Date: Wed, 18 Nov 2020 17:04:42 +0530 Message-ID: Subject: PR97849: aarch64: ICE (segfault) during GIMPLE pass: ifcvt To: gcc Patches , Richard Biener Content-Type: multipart/mixed; boundary="00000000000083098805b4600144" X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Nov 2020 11:35:21 -0000 --00000000000083098805b4600144 Content-Type: text/plain; charset="UTF-8" Hi, For the following test-case (slightly reduced from PR) int a, b, c; int g() { char i = 0; for (c = 0; c <= 8; c++) --i; while (b) { _Bool f = i <= 0; a = (a == 0) ? 0 : f / a; } } The compiler segfaults with -O1 -march=armv8.2-a+sve in ifcvt_local_dce. IIUC, the issue here is that tree-if-conv.c:predicate_rhs_code processes the following statement: iftmp.2_7 = a_lsm.10_11 != 0 ? iftmp.2_13 : 0; and records mapping. However RPO VN eliminates iftmp.2_13: Removing dead stmt iftmp.2_13 = .COND_DIV (_29, _4, a_lsm.10_11, 0); and we end up replacing iftmp.2_7 with a dead ssa_name in ifcvt_local_dce: FOR_EACH_VEC_ELT (redundant_ssa_names, i, name_pair) replace_uses_by (name_pair->first, name_pair->second); redundant_ssa_names.release (); resulting in incorrect IR, and segfault down the line. To avoid clashing of RPO VN with redunant_ssa_names, the patch simply moves ifcvt_local_dce before do_rpo_vn, which avoids the segfault. Does that look OK ? (Altho I guess, doing DCE after VN is better in principle) Thanks, Prathamesh --00000000000083098805b4600144 Content-Type: application/octet-stream; name="pr97849-1.diff" Content-Disposition: attachment; filename="pr97849-1.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_khnbu0f10 ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3ByOTc4NDkuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3ByOTc4NDkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uNDhlYzRkYjdiMzAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS9wcjk3ODQ5LmMKQEAgLTAsMCArMSwxNiBAQAorLyog eyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFh cmNoNjRfc3ZlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8xIC1mdHJlZS12ZWN0b3JpemUgLW1h cmNoPWFybXY4LjItYStzdmUiIH0gKi8KKworaW50IGEsIGIsIGM7CisKK2ludCBnKCkgeworICBj aGFyIGkgPSAwOworICBmb3IgKGMgPSAwOyBjIDw9IDg7IGMrKykKKyAgICAtLWk7CisKKyAgd2hp bGUgKGIpIHsKKyAgICBfQm9vbCBmID0gaSA8PSAwOworICAgIGEgPSAoYSA9PSAwKSA/IDAgOiBm IC8gYTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtaWYtY29udi5jIGIvZ2NjL3RyZWUt aWYtY29udi5jCmluZGV4IDIwNjI3NThmNDBmLi5lZmM1NDM4MjlmMiAxMDA2NDQKLS0tIGEvZ2Nj L3RyZWUtaWYtY29udi5jCisrKyBiL2djYy90cmVlLWlmLWNvbnYuYwpAQCAtMzEyNCwxMCArMzEy NCwxMSBAQCB0cmVlX2lmX2NvbnZlcnNpb24gKGNsYXNzIGxvb3AgKmxvb3AsIHZlYzxnaW1wbGUg Kj4gKnByZWRzKQogICBleGl0X2JicyA9IEJJVE1BUF9BTExPQyAoTlVMTCk7CiAgIGJpdG1hcF9z ZXRfYml0IChleGl0X2Jicywgc2luZ2xlX2V4aXQgKGxvb3ApLT5kZXN0LT5pbmRleCk7CiAgIGJp dG1hcF9zZXRfYml0IChleGl0X2JicywgbG9vcC0+bGF0Y2gtPmluZGV4KTsKLSAgdG9kbyB8PSBk b19ycG9fdm4gKGNmdW4sIGxvb3BfcHJlaGVhZGVyX2VkZ2UgKGxvb3ApLCBleGl0X2Jicyk7CiAK ICAgLyogRGVsZXRlIGRlYWQgcHJlZGljYXRlIGNvbXB1dGF0aW9ucy4gICovCiAgIGlmY3Z0X2xv Y2FsX2RjZSAobG9vcCk7CisKKyAgdG9kbyB8PSBkb19ycG9fdm4gKGNmdW4sIGxvb3BfcHJlaGVh ZGVyX2VkZ2UgKGxvb3ApLCBleGl0X2Jicyk7CiAgIEJJVE1BUF9GUkVFIChleGl0X2Jicyk7CiAK ICAgdG9kbyB8PSBUT0RPX2NsZWFudXBfY2ZnOwo= --00000000000083098805b4600144--