get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2226782/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2226782,
    "url": "http://patchwork.ozlabs.org/api/patches/2226782/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/bmm.hhup4p5wp2.gcc.gcc-TEST.pinskia.84.1.10@forge-stage.sourceware.org/",
    "project": {
        "id": 17,
        "url": "http://patchwork.ozlabs.org/api/projects/17/?format=api",
        "name": "GNU Compiler Collection",
        "link_name": "gcc",
        "list_id": "gcc-patches.gcc.gnu.org",
        "list_email": "gcc-patches@gcc.gnu.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<bmm.hhup4p5wp2.gcc.gcc-TEST.pinskia.84.1.10@forge-stage.sourceware.org>",
    "list_archive_url": null,
    "date": "2026-04-22T18:49:18",
    "name": "[v1,10/10] Remove fold_builtin pass [PR121762]",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "a193eec01a72c8e3691e72d361746b4021ae43e1",
    "submitter": {
        "id": 93219,
        "url": "http://patchwork.ozlabs.org/api/people/93219/?format=api",
        "name": "Andrew Pinski via Sourceware Forge",
        "email": "forge-bot+pinskia@forge-stage.sourceware.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/bmm.hhup4p5wp2.gcc.gcc-TEST.pinskia.84.1.10@forge-stage.sourceware.org/mbox/",
    "series": [
        {
            "id": 501092,
            "url": "http://patchwork.ozlabs.org/api/series/501092/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=501092",
            "date": "2026-04-22T18:49:11",
            "name": "remove_fab",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/501092/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2226782/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2226782/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "gcc-patches@gcc.gnu.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "gcc-patches@gcc.gnu.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)",
            "sourceware.org; dmarc=none (p=none dis=none)\n header.from=forge-stage.sourceware.org",
            "sourceware.org;\n spf=pass smtp.mailfrom=forge-stage.sourceware.org",
            "server2.sourceware.org;\n arc=none smtp.remote-ip=38.145.34.39"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g18gN0kvcz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 05:39:28 +1000 (AEST)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 3696E436758F\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 19:39:26 +0000 (GMT)",
            "from forge-stage.sourceware.org (vm08.sourceware.org [38.145.34.39])\n by sourceware.org (Postfix) with ESMTPS id AEA1640AB6A3\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 18:50:43 +0000 (GMT)",
            "from forge-stage.sourceware.org (localhost [IPv6:::1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256)\n (No client certificate requested)\n by forge-stage.sourceware.org (Postfix) with ESMTPS id 0A0EC43599\n for <gcc-patches@gcc.gnu.org>; Wed, 22 Apr 2026 18:50:42 +0000 (UTC)"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 3696E436758F",
            "OpenDKIM Filter v2.11.0 sourceware.org AEA1640AB6A3"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org AEA1640AB6A3",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org AEA1640AB6A3",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776883843; cv=none;\n b=Q4fBSyClkkdE3HWuu3sl2HNC2bmcgDskpclPYduP6J6FmRZnPQ1VVmyZIsIRAotcSNbFJRwBb54QLhD1bX51r/2zbqXMBvcT3rzjN4WYuoxfKC/t7gjzbQFW0ixMmkL4lPSUzLzL7yh49pkewtFGqokBjVFoUF2ToZ695G0DtL0=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776883843; c=relaxed/simple;\n bh=XiCM1Hf7DR13oqGb/nIWFYdlU3dJoNgrYog6vAlrTyY=;\n h=From:Date:Subject:To:Message-ID;\n b=GENB+bYxI1J30FimvrTCtx7gr2BMoM5vCb1rz5U4HuI2DRbkBPmfj6gUQ4tq0anCmhb0/a/NzVHosYKCobJitFTPw14eTXlONI2x0gSDGwdmgYYfV5OdecSTIUbSZqlS7iGnYp/X/eEYr8DIvftVHHHRTqj0mIv7kZDKu7PJ+CY=",
        "ARC-Authentication-Results": "i=1; server2.sourceware.org",
        "From": "Andrew Pinski via Sourceware Forge\n <forge-bot+pinskia@forge-stage.sourceware.org>",
        "Date": "Wed, 22 Apr 2026 18:49:18 +0000",
        "Subject": "[PATCH v1 10/10] Remove fold_builtin pass [PR121762]",
        "To": "gcc-patches mailing list <gcc-patches@gcc.gnu.org>",
        "Message-ID": "\n <bmm.hhup4p5wp2.gcc.gcc-TEST.pinskia.84.1.10@forge-stage.sourceware.org>",
        "X-Mailer": "batrachomyomachia",
        "X-Pull-Request-Organization": "gcc",
        "X-Pull-Request-Repository": "gcc-TEST",
        "X-Pull-Request": "https://forge.sourceware.org/gcc/gcc-TEST/pulls/84",
        "References": "\n <bmm.hhup4p5wp2.gcc.gcc-TEST.pinskia.84.1.0@forge-stage.sourceware.org>",
        "In-Reply-To": "\n <bmm.hhup4p5wp2.gcc.gcc-TEST.pinskia.84.1.0@forge-stage.sourceware.org>",
        "X-Patch-URL": "\n https://forge.sourceware.org/pinskia/gcc-TEST/commit/54194efe9062df3e7a0cd7c3c08dca0cad5f3f0a",
        "X-BeenThere": "gcc-patches@gcc.gnu.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "Gcc-patches mailing list <gcc-patches.gcc.gnu.org>",
        "List-Unsubscribe": "<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>",
        "List-Archive": "<https://gcc.gnu.org/pipermail/gcc-patches/>",
        "List-Post": "<mailto:gcc-patches@gcc.gnu.org>",
        "List-Help": "<mailto:gcc-patches-request@gcc.gnu.org?subject=help>",
        "List-Subscribe": "<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>",
        "Reply-To": "gcc-patches mailing list <gcc-patches@gcc.gnu.org>,\n pinskia@gcc.gnu.org",
        "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"
    },
    "content": "From: Andrew Pinski <andrew.pinski@oss.qualcomm.com>\n\nAfter moving the last optimization out of fab, we can\nfinally remove this pass.\nFor -Og, we remove this pass and also swaps out the copy_prop\nfor a forwprop (which does an integrated copy prop too).\n\nA few testcases needed to be updated.\nMost is just s/fab1/optimized/ except for pr79691.c which\nneeded a slight change in the scaning of the optimized dump;\nto find `return 9;` instead of `= 9;`.\n\nBootstrappd and tested on x86_64-linux-gnu.\n\n\tPR tree-optimization/121762\ngcc/ChangeLog:\n\n\t* passes.def: Remove both pass_fold_builtin.\n\tSwap out pass_copy_prop for pass_forwprop with\n\tfull_walk = false and last=true.\n\t* tree-pass.h (make_pass_fold_builtins): Remove.\n\t* tree-ssa-ccp.cc (class pass_fold_builtins): Delete.\n\t(pass_fold_builtins::execute): Delete.\n\t(make_pass_fold_builtins): Remove.\n\t* doc/passes.texi (Folding built-in functions): Remove.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.dg/tree-ssa/builtin-fprintf-1.c: Update to scan optimized.\n\t* gcc.dg/tree-ssa/builtin-fprintf-chk-1.c: Likewise.\n\t* gcc.dg/tree-ssa/builtin-printf-1.c: Likewise.\n\t* gcc.dg/tree-ssa/builtin-printf-chk-1.c: Likewise.\n\t* gcc.dg/tree-ssa/builtin-vfprintf-1.c: Likewise.\n\t* gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c: Likewise.\n\t* gcc.dg/tree-ssa/builtin-vprintf-1.c: Likewise.\n\t* gcc.dg/tree-ssa/builtin-vprintf-chk-1.c: Likewise.\n\t* gcc.dg/tree-ssa/ssa-ccp-10.c: Likewise.\n\t* gcc.dg/builtin-unreachable-5.c: Likewise.\n\t* gcc.dg/builtin-unreachable-6.c: Likewise.\n\t* gcc.dg/builtin-unreachable-6a.c: Likewise.\n\t* gcc.dg/builtin-unreachable-7.c: Likewise.\n\t* gcc.dg/pr78408-2.c: Change fab1 to forwprop1 as that\n\toptimization was moved there a while back.\n\t* gcc.dg/tree-ssa/pr79691.c: Udpate scanning for 9\n\tconstant to return.\n\nSigned-off-by: Andrew Pinski <andrew.pinski@oss.qualcomm.com>\n---\n gcc/doc/passes.texi                           |   6 -\n gcc/passes.def                                |   8 +-\n gcc/testsuite/gcc.dg/builtin-unreachable-5.c  |  10 +-\n gcc/testsuite/gcc.dg/builtin-unreachable-6.c  |   6 +-\n gcc/testsuite/gcc.dg/builtin-unreachable-6a.c |   6 +-\n gcc/testsuite/gcc.dg/builtin-unreachable-7.c  |   8 +-\n gcc/testsuite/gcc.dg/pr78408-2.c              |   4 +-\n .../gcc.dg/tree-ssa/builtin-fprintf-1.c       |  20 ++--\n .../gcc.dg/tree-ssa/builtin-fprintf-chk-1.c   |  20 ++--\n .../gcc.dg/tree-ssa/builtin-printf-1.c        |  22 ++--\n .../gcc.dg/tree-ssa/builtin-printf-chk-1.c    |  22 ++--\n .../gcc.dg/tree-ssa/builtin-vfprintf-1.c      |  16 +--\n .../gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c  |  16 +--\n .../gcc.dg/tree-ssa/builtin-vprintf-1.c       |  16 +--\n .../gcc.dg/tree-ssa/builtin-vprintf-chk-1.c   |  16 +--\n gcc/testsuite/gcc.dg/tree-ssa/pr79691.c       |   2 +-\n gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c    |   4 +-\n gcc/tree-pass.h                               |   1 -\n gcc/tree-ssa-ccp.cc                           | 108 ------------------\n 19 files changed, 96 insertions(+), 215 deletions(-)",
    "diff": "diff --git a/gcc/doc/passes.texi b/gcc/doc/passes.texi\nindex 282fc1a6a12b..f6db15d5a5fc 100644\n--- a/gcc/doc/passes.texi\n+++ b/gcc/doc/passes.texi\n@@ -735,12 +735,6 @@ cannot be used for branch prediction (though adapting it would\n not be difficult).  The pass is located in @file{tree-vrp.cc} and is\n described by @code{pass_vrp}.\n \n-@item Folding built-in functions\n-\n-This pass simplifies built-in functions, as applicable, with constant\n-arguments or with inferable string lengths.  It is located in\n-@file{tree-ssa-ccp.cc} and is described by @code{pass_fold_builtins}.\n-\n @item Split critical edges\n \n This pass identifies critical edges and inserts empty basic blocks\ndiff --git a/gcc/passes.def b/gcc/passes.def\nindex 3f828477b687..fac04cd86c7d 100644\n--- a/gcc/passes.def\n+++ b/gcc/passes.def\n@@ -369,7 +369,6 @@ along with GCC; see the file COPYING3.  If not see\n       NEXT_PASS (pass_forwprop, /*full_walk=*/false, /*last=*/true);\n       NEXT_PASS (pass_sink_code, true /* unsplit edges */);\n       NEXT_PASS (pass_phiopt, false /* early_p */);\n-      NEXT_PASS (pass_fold_builtins);\n       NEXT_PASS (pass_optimize_widening_mul);\n       NEXT_PASS (pass_store_merging);\n       /* If DCE is not run before checking for uninitialized uses,\n@@ -405,12 +404,9 @@ along with GCC; see the file COPYING3.  If not see\n       NEXT_PASS (pass_ccp, true /* nonzero_p */);\n       NEXT_PASS (pass_post_ipa_warn);\n       NEXT_PASS (pass_object_sizes);\n-      /* Fold remaining builtins.  */\n-      NEXT_PASS (pass_fold_builtins);\n       NEXT_PASS (pass_strlen);\n-      /* Copy propagation also copy-propagates constants, this is necessary\n-         to forward object-size and builtin folding results properly.  */\n-      NEXT_PASS (pass_copy_prop);\n+      /* Fold remaining builtins.  */\n+      NEXT_PASS (pass_forwprop, /*full_walk=*/false, /*last=*/true);\n       NEXT_PASS (pass_dce);\n       /* Profile count may overflow as a result of inlinining very large\n          loop nests.  This pass should run before any late pass that makes\ndiff --git a/gcc/testsuite/gcc.dg/builtin-unreachable-5.c b/gcc/testsuite/gcc.dg/builtin-unreachable-5.c\nindex ba87bdd735e2..91e6dcc3db13 100644\n--- a/gcc/testsuite/gcc.dg/builtin-unreachable-5.c\n+++ b/gcc/testsuite/gcc.dg/builtin-unreachable-5.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -fdump-tree-fab1\" } */\n+/* { dg-options \"-O2 -fdump-tree-optimized\" } */\n \n int\n foo (int a)\n@@ -16,7 +16,7 @@ foo (int a)\n   return a > 0;\n }\n \n-/* { dg-final { scan-tree-dump-times \"if \\\\(\" 0 \"fab1\" } } */\n-/* { dg-final { scan-tree-dump-times \"goto\" 0 \"fab1\" } } */\n-/* { dg-final { scan-tree-dump-times \"L1:\" 0 \"fab1\" } } */\n-/* { dg-final { scan-tree-dump-times \"__builtin_unreachable\" 0 \"fab1\" } } */\n+/* { dg-final { scan-tree-dump-times \"if \\\\(\" 0 \"optimized\" } } */\n+/* { dg-final { scan-tree-dump-times \"goto\" 0 \"optimized\" } } */\n+/* { dg-final { scan-tree-dump-times \"L1:\" 0 \"optimized\" } } */\n+/* { dg-final { scan-tree-dump-times \"__builtin_unreachable\" 0 \"optimized\" } } */\ndiff --git a/gcc/testsuite/gcc.dg/builtin-unreachable-6.c b/gcc/testsuite/gcc.dg/builtin-unreachable-6.c\nindex 4c3b9bbaefd0..c896ad4e39ce 100644\n--- a/gcc/testsuite/gcc.dg/builtin-unreachable-6.c\n+++ b/gcc/testsuite/gcc.dg/builtin-unreachable-6.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -fdump-tree-fab1 -fno-tree-dominator-opts -fno-tree-vrp\" } */\n+/* { dg-options \"-O2 -fdump-tree-optimized -fno-tree-dominator-opts -fno-tree-vrp\" } */\n /* { dg-require-effective-target label_values } */\n \n void\n@@ -17,5 +17,5 @@ lab2:\n   goto *x;\n }\n \n-/* { dg-final { scan-tree-dump-times \"lab:\" 1 \"fab1\" } } */\n-/* { dg-final { scan-tree-dump-times \"__builtin_unreachable\" 1 \"fab1\" } } */\n+/* { dg-final { scan-tree-dump-times \"lab:\" 1 \"optimized\" } } */\n+/* { dg-final { scan-tree-dump-times \"__builtin_unreachable\" 1 \"optimized\" } } */\ndiff --git a/gcc/testsuite/gcc.dg/builtin-unreachable-6a.c b/gcc/testsuite/gcc.dg/builtin-unreachable-6a.c\nindex f527f2edc3b2..53062352d420 100644\n--- a/gcc/testsuite/gcc.dg/builtin-unreachable-6a.c\n+++ b/gcc/testsuite/gcc.dg/builtin-unreachable-6a.c\n@@ -1,7 +1,7 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -fdump-tree-fab1\" } */\n+/* { dg-options \"-O2 -fdump-tree-optimized\" } */\n \n #include \"builtin-unreachable-6.c\"\n \n-/* { dg-final { scan-tree-dump-times \"lab:\" 1 \"fab1\" } } */\n-/* { dg-final { scan-tree-dump-not \"__builtin_unreachable\" \"fab1\" } } */\n+/* { dg-final { scan-tree-dump-times \"lab:\" 1 \"optimized\" } } */\n+/* { dg-final { scan-tree-dump-not \"__builtin_unreachable\" \"optimized\" } } */\ndiff --git a/gcc/testsuite/gcc.dg/builtin-unreachable-7.c b/gcc/testsuite/gcc.dg/builtin-unreachable-7.c\nindex a6c078fef285..0ff60b6550be 100644\n--- a/gcc/testsuite/gcc.dg/builtin-unreachable-7.c\n+++ b/gcc/testsuite/gcc.dg/builtin-unreachable-7.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -fdump-tree-fab1 -fno-tree-dominator-opts -fno-tree-vrp\" } */\n+/* { dg-options \"-O2 -fdump-tree-optimized -fno-tree-dominator-opts -fno-tree-vrp\" } */\n /* { dg-require-effective-target label_values } */\n \n void foo (int b, int c)\n@@ -18,7 +18,7 @@ lab2:\n \n /* Fab should still able to remove the conditional but leave the bb there. */\n \n-/* { dg-final { scan-tree-dump-times \"lab:\" 1 \"fab1\" } } */\n-/* { dg-final { scan-tree-dump-times \"__builtin_unreachable\" 1 \"fab1\" } } */\n-/* { dg-final { scan-tree-dump-not \"if \" \"fab1\" } } */\n+/* { dg-final { scan-tree-dump-times \"lab:\" 1 \"optimized\" } } */\n+/* { dg-final { scan-tree-dump-times \"__builtin_unreachable\" 1 \"optimized\" } } */\n+/* { dg-final { scan-tree-dump-not \"if \" \"optimized\" } } */\n \ndiff --git a/gcc/testsuite/gcc.dg/pr78408-2.c b/gcc/testsuite/gcc.dg/pr78408-2.c\nindex 89c9b7eae435..cad1285f70e4 100644\n--- a/gcc/testsuite/gcc.dg/pr78408-2.c\n+++ b/gcc/testsuite/gcc.dg/pr78408-2.c\n@@ -1,7 +1,7 @@\n /* PR c/78408 */\n /* { dg-do compile { target size32plus } } */\n-/* { dg-options \"-O2 -fdump-tree-fab1-details\" } */\n-/* { dg-final { scan-tree-dump-not \"after previous\" \"fab1\" } } */\n+/* { dg-options \"-O2 -fdump-tree-forwprop1-details\" } */\n+/* { dg-final { scan-tree-dump-not \"after previous\" \"forwprop1\" } } */\n \n struct S { char a[32]; };\n struct T { char a[65536]; };\ndiff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c\nindex 9e4501490dbb..31d7f70e4418 100644\n--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c\n+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -fdump-tree-fab1\" } */\n+/* { dg-options \"-O2 -fdump-tree-optimized\" } */\n \n typedef struct { int i; } FILE;\n FILE *fp;\n@@ -29,12 +29,12 @@ void test (void)\n   vi9 = 0;\n }\n \n-/* { dg-final { scan-tree-dump \"vi0.*fwrite.*\\\"hello\\\".*1, 5, fp.*vi1\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi1.*fwrite.*\\\"hello\\\\\\\\n\\\".*1, 6, fp.*vi2\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi2.*fputc.*fp.*vi3\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi4.*fwrite.*\\\"hello\\\".*1, 5, fp.*vi5\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi5.*fwrite.*\\\"hello\\\\\\\\n\\\".*1, 6, fp.*vi6\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi6.*fputc.*fp.*vi7\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi7.*fputc.*fp.*vi8\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi8.*fprintf.*fp.*\\\"%d%d\\\".*vi9\" \"fab1\"} } */\n+/* { dg-final { scan-tree-dump \"vi0.*fwrite.*\\\"hello\\\".*1, 5, fp.*vi1\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi1.*fwrite.*\\\"hello\\\\\\\\n\\\".*1, 6, fp.*vi2\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi2.*fputc.*fp.*vi3\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi4.*fwrite.*\\\"hello\\\".*1, 5, fp.*vi5\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi5.*fwrite.*\\\"hello\\\\\\\\n\\\".*1, 6, fp.*vi6\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi6.*fputc.*fp.*vi7\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi7.*fputc.*fp.*vi8\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi8.*fprintf.*fp.*\\\"%d%d\\\".*vi9\" \"optimized\"} } */\ndiff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c\nindex f3de73acd86c..f4f18e8bebbf 100644\n--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c\n+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -fdump-tree-fab1\" } */\n+/* { dg-options \"-O2 -fdump-tree-optimized\" } */\n \n typedef struct { int i; } FILE;\n FILE *fp;\n@@ -29,12 +29,12 @@ void test (void)\n   vi9 = 0;\n }\n \n-/* { dg-final { scan-tree-dump \"vi0.*fwrite.*\\\"hello\\\".*1, 5, fp.*vi1\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi1.*fwrite.*\\\"hello\\\\\\\\n\\\".*1, 6, fp.*vi2\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi2.*fputc.*fp.*vi3\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi4.*fwrite.*\\\"hello\\\".*1, 5, fp.*vi5\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi5.*fwrite.*\\\"hello\\\\\\\\n\\\".*1, 6, fp.*vi6\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi6.*fputc.*fp.*vi7\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi7.*fputc.*fp.*vi8\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi8.*__fprintf_chk.*fp.*1.*\\\"%d%d\\\".*vi9\" \"fab1\"} } */\n+/* { dg-final { scan-tree-dump \"vi0.*fwrite.*\\\"hello\\\".*1, 5, fp.*vi1\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi1.*fwrite.*\\\"hello\\\\\\\\n\\\".*1, 6, fp.*vi2\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi2.*fputc.*fp.*vi3\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi4.*fwrite.*\\\"hello\\\".*1, 5, fp.*vi5\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi5.*fwrite.*\\\"hello\\\\\\\\n\\\".*1, 6, fp.*vi6\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi6.*fputc.*fp.*vi7\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi7.*fputc.*fp.*vi8\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi8.*__fprintf_chk.*fp.*1.*\\\"%d%d\\\".*vi9\" \"optimized\"} } */\ndiff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c\nindex bd119e0e55bd..056edea65d2d 100644\n--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c\n+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -fdump-tree-fab1\" } */\n+/* { dg-options \"-O2 -fdump-tree-optimized\" } */\n \n extern int printf (const char *, ...);\n volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;\n@@ -29,13 +29,13 @@ void test (void)\n   via = 0;\n }\n \n-/* { dg-final { scan-tree-dump \"vi0.*printf.*\\\"hello\\\".*vi1\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi1.*puts.*\\\"hello\\\".*vi2\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi2.*putchar.*vi3\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi4.*printf.*\\\"hello\\\".*vi5\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi5.*puts.*\\\"hello\\\".*vi6\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi6.*putchar.*vi7\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi7 ={v} 0\\[^\\(\\)\\]*vi8 ={v} 0\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi8.*putchar.*vi9\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi9.*puts.*\\\"hello\\\\\\\\n\\\".*via\" \"fab1\"} } */\n+/* { dg-final { scan-tree-dump \"vi0.*printf.*\\\"hello\\\".*vi1\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi1.*puts.*\\\"hello\\\".*vi2\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi2.*putchar.*vi3\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi4.*printf.*\\\"hello\\\".*vi5\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi5.*puts.*\\\"hello\\\".*vi6\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi6.*putchar.*vi7\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi7 ={v} 0\\[^\\(\\)\\]*vi8 ={v} 0\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi8.*putchar.*vi9\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi9.*puts.*\\\"hello\\\\\\\\n\\\".*via\" \"optimized\"} } */\ndiff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c\nindex a0c0ef946f38..1a9690fde125 100644\n--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c\n+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -fdump-tree-fab1\" } */\n+/* { dg-options \"-O2 -fdump-tree-optimized\" } */\n \n extern int __printf_chk (int, const char *, ...);\n volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;\n@@ -29,13 +29,13 @@ void test (void)\n   via = 0;\n }\n \n-/* { dg-final { scan-tree-dump \"vi0.*__printf_chk.*1.*\\\"hello\\\".*vi1\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi1.*puts.*\\\"hello\\\".*vi2\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi2.*putchar.*vi3\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi4.*__printf_chk.*1.*\\\"hello\\\".*vi5\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi5.*puts.*\\\"hello\\\".*vi6\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi6.*putchar.*vi7\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi7 ={v} 0\\[^\\(\\)\\]*vi8 ={v} 0\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi8.*putchar.*vi9\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi9.*puts.*\\\"hello\\\\\\\\n\\\".*via\" \"fab1\"} } */\n+/* { dg-final { scan-tree-dump \"vi0.*__printf_chk.*1.*\\\"hello\\\".*vi1\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi1.*puts.*\\\"hello\\\".*vi2\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi2.*putchar.*vi3\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi4.*__printf_chk.*1.*\\\"hello\\\".*vi5\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi5.*puts.*\\\"hello\\\".*vi6\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi6.*putchar.*vi7\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi7 ={v} 0\\[^\\(\\)\\]*vi8 ={v} 0\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi8.*putchar.*vi9\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi9.*puts.*\\\"hello\\\\\\\\n\\\".*via\" \"optimized\"} } */\ndiff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c\nindex 29b4a4b4ebe7..3124309198c6 100644\n--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c\n+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -fdump-tree-fab1\" } */\n+/* { dg-options \"-O2 -fdump-tree-optimized\" } */\n \n #include <stdarg.h>\n \n@@ -29,10 +29,10 @@ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5,\n   vi7 = 0;\n }\n \n-/* { dg-final { scan-tree-dump \"vi0.*fwrite.*\\\"hello\\\".*1, 5, fp.*vi1\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi1.*fwrite.*\\\"hello\\\\\\\\n\\\".*1, 6, fp.*vi2\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi2.*fputc.*fp.*vi3\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi4.*vfprintf.*\\\"%s\\\".*vi5\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi5.*vfprintf.*\\\"%c\\\".*vi6\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi6.*vfprintf.*\\\"%s\\\\\\\\n\\\".*vi7\" \"fab1\"} } */\n+/* { dg-final { scan-tree-dump \"vi0.*fwrite.*\\\"hello\\\".*1, 5, fp.*vi1\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi1.*fwrite.*\\\"hello\\\\\\\\n\\\".*1, 6, fp.*vi2\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi2.*fputc.*fp.*vi3\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi4.*vfprintf.*\\\"%s\\\".*vi5\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi5.*vfprintf.*\\\"%c\\\".*vi6\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi6.*vfprintf.*\\\"%s\\\\\\\\n\\\".*vi7\" \"optimized\"} } */\ndiff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c\nindex c91c70921b50..15ee7f979526 100644\n--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c\n+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -fdump-tree-fab1\" } */\n+/* { dg-options \"-O2 -fdump-tree-optimized\" } */\n \n #include <stdarg.h>\n \n@@ -29,10 +29,10 @@ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5,\n   vi7 = 0;\n }\n \n-/* { dg-final { scan-tree-dump \"vi0.*fwrite.*\\\"hello\\\".*1, 5, fp.*vi1\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi1.*fwrite.*\\\"hello\\\\\\\\n\\\".*1, 6, fp.*vi2\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi2.*fputc.*fp.*vi3\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi4.*__vfprintf_chk.*fp.*1.*\\\"%s\\\".*vi5\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi5.*__vfprintf_chk.*fp.*1.*\\\"%c\\\".*vi6\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi6.*__vfprintf_chk.*fp.*1.*\\\"%s\\\\\\\\n\\\".*vi7\" \"fab1\"} } */\n+/* { dg-final { scan-tree-dump \"vi0.*fwrite.*\\\"hello\\\".*1, 5, fp.*vi1\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi1.*fwrite.*\\\"hello\\\\\\\\n\\\".*1, 6, fp.*vi2\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi2.*fputc.*fp.*vi3\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi4.*__vfprintf_chk.*fp.*1.*\\\"%s\\\".*vi5\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi5.*__vfprintf_chk.*fp.*1.*\\\"%c\\\".*vi6\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi6.*__vfprintf_chk.*fp.*1.*\\\"%s\\\\\\\\n\\\".*vi7\" \"optimized\"} } */\ndiff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c\nindex 023384a3b819..ed7a4ae05592 100644\n--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c\n+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -fdump-tree-fab1\" } */\n+/* { dg-options \"-O2 -fdump-tree-optimized\" } */\n \n #include <stdarg.h>\n \n@@ -27,10 +27,10 @@ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5,\n   vi7 = 0;\n }\n \n-/* { dg-final { scan-tree-dump \"vi0.*vprintf.*\\\"hello\\\".*vi1\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi1.*puts.*\\\"hello\\\".*vi2\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi2.*putchar.*vi3\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi4.*vprintf.*\\\"%s\\\".*vi5\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi5.*vprintf.*\\\"%c\\\".*vi6\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi6.*vprintf.*\\\"%s\\\\\\\\n\\\".*vi7\" \"fab1\"} } */\n+/* { dg-final { scan-tree-dump \"vi0.*vprintf.*\\\"hello\\\".*vi1\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi1.*puts.*\\\"hello\\\".*vi2\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi2.*putchar.*vi3\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi4.*vprintf.*\\\"%s\\\".*vi5\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi5.*vprintf.*\\\"%c\\\".*vi6\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi6.*vprintf.*\\\"%s\\\\\\\\n\\\".*vi7\" \"optimized\"} } */\ndiff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c\nindex 2b21f7b70e22..b86fe33f0edd 100644\n--- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c\n+++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O2 -fdump-tree-fab1\" } */\n+/* { dg-options \"-O2 -fdump-tree-optimized\" } */\n \n #include <stdarg.h>\n \n@@ -27,10 +27,10 @@ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5,\n   vi7 = 0;\n }\n \n-/* { dg-final { scan-tree-dump \"vi0.*__vprintf_chk.*1.*\\\"hello\\\".*vi1\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi1.*puts.*\\\"hello\\\".*vi2\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi2.*putchar.*vi3\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi4.*__vprintf_chk.*1.*\\\"%s\\\".*vi5\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi5.*__vprintf_chk.*1.*\\\"%c\\\".*vi6\" \"fab1\"} } */\n-/* { dg-final { scan-tree-dump \"vi6.*__vprintf_chk.*1.*\\\"%s\\\\\\\\n\\\".*vi7\" \"fab1\"} } */\n+/* { dg-final { scan-tree-dump \"vi0.*__vprintf_chk.*1.*\\\"hello\\\".*vi1\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi1.*puts.*\\\"hello\\\".*vi2\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi2.*putchar.*vi3\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi3 ={v} 0\\[^\\(\\)\\]*vi4 ={v} 0\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi4.*__vprintf_chk.*1.*\\\"%s\\\".*vi5\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi5.*__vprintf_chk.*1.*\\\"%c\\\".*vi6\" \"optimized\"} } */\n+/* { dg-final { scan-tree-dump \"vi6.*__vprintf_chk.*1.*\\\"%s\\\\\\\\n\\\".*vi7\" \"optimized\"} } */\ndiff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c b/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c\nindex bf889318c063..43770c95bcab 100644\n--- a/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c\n+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c\n@@ -34,4 +34,4 @@ int f4 (int i)\n \n /* { dg-final { scan-tree-dump-times \"sprintf\" 1 \"optimized\" } }\n    { dg-final { scan-tree-dump-times \"snprintf\" 1 \"optimized\" } }\n-   { dg-final { scan-tree-dump \" = 9;\" \"optimized\" } } */\n+   { dg-final { scan-tree-dump \"return 9;\" \"optimized\" } } */\ndiff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c\nindex d6126a3e8efe..dc87a56de06e 100644\n--- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c\n+++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c\n@@ -1,5 +1,5 @@\n /* { dg-do compile } */\n-/* { dg-options \"-O1 -fdump-tree-fab1\" } */\n+/* { dg-options \"-O1 -fdump-tree-optimized\" } */\n \n /* Check that we fold strlen of equally long strings, and that we do not\n    fail to terminate when there is a nontrivial cycle in the corresponding\n@@ -32,4 +32,4 @@ middle:\n }\n \n /* There should be no calls to strlen.  */\n-/* { dg-final { scan-tree-dump-times \"strlen\" 0 \"fab1\"} } */\n+/* { dg-final { scan-tree-dump-times \"strlen\" 0 \"optimized\"} } */\ndiff --git a/gcc/tree-pass.h b/gcc/tree-pass.h\nindex 61cec52c6248..410341d47119 100644\n--- a/gcc/tree-pass.h\n+++ b/gcc/tree-pass.h\n@@ -447,7 +447,6 @@ extern gimple_opt_pass *make_pass_warn_access (gcc::context *ctxt);\n extern gimple_opt_pass *make_pass_warn_printf (gcc::context *ctxt);\n extern gimple_opt_pass *make_pass_warn_recursion (gcc::context *ctxt);\n extern gimple_opt_pass *make_pass_strlen (gcc::context *ctxt);\n-extern gimple_opt_pass *make_pass_fold_builtins (gcc::context *ctxt);\n extern gimple_opt_pass *make_pass_post_ipa_warn (gcc::context *ctxt);\n extern gimple_opt_pass *make_pass_stdarg (gcc::context *ctxt);\n extern gimple_opt_pass *make_pass_early_warn_uninitialized (gcc::context *ctxt);\ndiff --git a/gcc/tree-ssa-ccp.cc b/gcc/tree-ssa-ccp.cc\nindex c884fdfffd01..6de02e5c7dcb 100644\n--- a/gcc/tree-ssa-ccp.cc\n+++ b/gcc/tree-ssa-ccp.cc\n@@ -3085,114 +3085,6 @@ make_pass_ccp (gcc::context *ctxt)\n   return new pass_ccp (ctxt);\n }\n \n-/* A simple pass that attempts to fold all builtin functions.  This pass\n-   is run after we've propagated as many constants as we can.  */\n-\n-namespace {\n-\n-const pass_data pass_data_fold_builtins =\n-{\n-  GIMPLE_PASS, /* type */\n-  \"fab\", /* name */\n-  OPTGROUP_NONE, /* optinfo_flags */\n-  TV_NONE, /* tv_id */\n-  ( PROP_cfg | PROP_ssa ), /* properties_required */\n-  0, /* properties_provided */\n-  0, /* properties_destroyed */\n-  0, /* todo_flags_start */\n-  TODO_update_ssa, /* todo_flags_finish */\n-};\n-\n-class pass_fold_builtins : public gimple_opt_pass\n-{\n-public:\n-  pass_fold_builtins (gcc::context *ctxt)\n-    : gimple_opt_pass (pass_data_fold_builtins, ctxt)\n-  {}\n-\n-  /* opt_pass methods: */\n-  opt_pass * clone () final override { return new pass_fold_builtins (m_ctxt); }\n-  unsigned int execute (function *) final override;\n-\n-}; // class pass_fold_builtins\n-\n-unsigned int\n-pass_fold_builtins::execute (function *fun)\n-{\n-  bool cfg_changed = false;\n-  basic_block bb;\n-  unsigned int todoflags = 0;\n-\n-  /* Set last full fold prop if not already set. */\n-  fun->curr_properties |= PROP_last_full_fold;\n-\n-  FOR_EACH_BB_FN (bb, fun)\n-    {\n-      gimple_stmt_iterator i;\n-      for (i = gsi_start_bb (bb); !gsi_end_p (i); )\n-\t{\n-\t  gimple *stmt, *old_stmt;\n-\n-\t  stmt = gsi_stmt (i);\n-\n-\t  if (gimple_code (stmt) != GIMPLE_CALL)\n-\t    {\n-\t      gsi_next (&i);\n-\t      continue;\n-\t    }\n-\n-\t  /* Only fold internal calls\n-\t     or normal builtins. */\n-\t  if (!gimple_call_internal_p (stmt)\n-\t      && !gimple_call_builtin_p (stmt, BUILT_IN_NORMAL))\n-\t    {\n-\t      gsi_next (&i);\n-\t      continue;\n-\t    }\n-\t  if (!fold_stmt (&i))\n-\t    {\n-\t      gsi_next (&i);\n-\t      continue;\n-\t    }\n-\t  if (dump_file && (dump_flags & TDF_DETAILS))\n-\t    {\n-\t      fprintf (dump_file, \"Simplified\\n  \");\n-\t      print_gimple_stmt (dump_file, stmt, 0, dump_flags);\n-\t    }\n-\n-\t  old_stmt = stmt;\n-\t  stmt = gsi_stmt (i);\n-\t  update_stmt (stmt);\n-\n-\t  if (maybe_clean_or_replace_eh_stmt (old_stmt, stmt)\n-\t      && gimple_purge_dead_eh_edges (bb))\n-\t    cfg_changed = true;\n-\n-\t  if (dump_file && (dump_flags & TDF_DETAILS))\n-\t    {\n-\t      fprintf (dump_file, \"to\\n  \");\n-\t      print_gimple_stmt (dump_file, stmt, 0, dump_flags);\n-\t      fprintf (dump_file, \"\\n\");\n-\t    }\n-\t  gsi_next (&i);\n-\t}\n-    }\n-\n-  /* Delete unreachable blocks.  */\n-  if (cfg_changed)\n-    todoflags |= TODO_cleanup_cfg;\n-\n-  return todoflags;\n-}\n-\n-} // anon namespace\n-\n-gimple_opt_pass *\n-make_pass_fold_builtins (gcc::context *ctxt)\n-{\n-  return new pass_fold_builtins (ctxt);\n-}\n-\n /* A simple pass that emits some warnings post IPA.  */\n \n namespace {\n",
    "prefixes": [
        "v1",
        "10/10"
    ]
}