This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/26830] [4.1/4.2 Regression] Insane amount of compile-time / memory needed at -O1 and above
- From: "bonzini at gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 24 Mar 2006 16:07:16 -0000
- Subject: [Bug tree-optimization/26830] [4.1/4.2 Regression] Insane amount of compile-time / memory needed at -O1 and above
- References: <bug-26830-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #15 from bonzini at gnu dot org 2006-03-24 16:07 -------
tree_duplicate_sese_region calls update_ssa. that makes the loop grow very
fast with the number of basic blocks.
4.0, instead, has
5081 /* Add phi nodes for definitions at exit. TODO -- once we have
immediate
5082 uses, it should be possible to emit phi nodes just for definitions
that
5083 are used outside region. */
5084 EXECUTE_IF_SET_IN_BITMAP (definitions, 0, ver, bi)
5085 {
5086 tree name = ssa_name (ver);
5087
5088 phi = create_phi_node (name, exit->dest);
5089 add_phi_arg (phi, name, exit);
5090 add_phi_arg (phi, name, exit_copy);
5091
5092 SSA_NAME_DEF_STMT (name) = phi;
5093 }
5094
5095 /* And create new definitions inside region and its copy. TODO -- once
we
5096 have immediate uses, it might be better to leave definitions in
region
5097 unchanged, create new ssa names for phi nodes on exit, and rewrite
5098 the uses, to avoid changing the copied region. */
5099 allocate_ssa_names (definitions, &ssa_name_map);
5100 rewrite_to_new_ssa_names (region, n_region, ssa_name_map);
5101 allocate_ssa_names (definitions, &ssa_name_map);
5102 rewrite_to_new_ssa_names (region_copy, n_region, ssa_name_map);
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26830