From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1075) id 83F623857BA4; Fri, 23 Jun 2023 16:46:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 83F623857BA4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1687538772; bh=bWxtdoQBXD/a0Fwg4+7DhxB7cbgPT7125FIedzqBZhg=; h=From:To:Subject:Date:From; b=ByFLjY3JPl9Yt+GUIJoLzBVg+iXxgv5qBQ/RZWsuTOWlaP6XFkZc5oZ3DgmZ8tRHy NRfD0zO5m306xMYPn+UOHw3WJl63i7DKqpfrJzny62qTP5R9Qj4wUdlKcCmg+qjDi0 ME/fjpDlUtdwBvRQ6YI+gPofXgYjSU9KBzaJZuO8= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jan Hubicka To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-2051] Tiny phiprop compile time optimization X-Act-Checkin: gcc X-Git-Author: Jan Hubicka X-Git-Refname: refs/heads/master X-Git-Oldrev: d130ae8499e0c615e1636258d6901372316dfd93 X-Git-Newrev: 3124bfb14c0bdc08554b7c2bbec4e2650fad4445 Message-Id: <20230623164612.83F623857BA4@sourceware.org> Date: Fri, 23 Jun 2023 16:46:12 +0000 (GMT) List-Id: https://gcc.gnu.org/g:3124bfb14c0bdc08554b7c2bbec4e2650fad4445 commit r14-2051-g3124bfb14c0bdc08554b7c2bbec4e2650fad4445 Author: Jan Hubicka Date: Fri Jun 23 18:45:42 2023 +0200 Tiny phiprop compile time optimization gcc/ChangeLog: * tree-ssa-phiprop.cc (propagate_with_phi): Compute post dominators on demand. (pass_phiprop::execute): Do not compute it here; return update_ssa_only_virtuals if something changed. (pass_data_phiprop): Remove TODO_update_ssa from todos. Diff: --- gcc/tree-ssa-phiprop.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gcc/tree-ssa-phiprop.cc b/gcc/tree-ssa-phiprop.cc index 8c9ce903472..b01ef4495c2 100644 --- a/gcc/tree-ssa-phiprop.cc +++ b/gcc/tree-ssa-phiprop.cc @@ -340,6 +340,9 @@ propagate_with_phi (basic_block bb, gphi *phi, struct phiprop_d *phivn, gimple *def_stmt; tree vuse; + if (!dom_info_available_p (cfun, CDI_POST_DOMINATORS)) + calculate_dominance_info (CDI_POST_DOMINATORS); + /* Only replace loads in blocks that post-dominate the PHI node. That makes sure we don't end up speculating loads. */ if (!dominated_by_p (CDI_POST_DOMINATORS, @@ -485,7 +488,7 @@ const pass_data pass_data_phiprop = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_update_ssa, /* todo_flags_finish */ + 0, /* todo_flags_finish */ }; class pass_phiprop : public gimple_opt_pass @@ -513,7 +516,6 @@ pass_phiprop::execute (function *fun) size_t n; calculate_dominance_info (CDI_DOMINATORS); - calculate_dominance_info (CDI_POST_DOMINATORS); n = num_ssa_names; phivn = XCNEWVEC (struct phiprop_d, n); @@ -539,7 +541,7 @@ pass_phiprop::execute (function *fun) free_dominance_info (CDI_POST_DOMINATORS); - return 0; + return did_something ? TODO_update_ssa_only_virtuals : 0; } } // anon namespace