This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/26830] [4.1/4.2 Regression] Insane amount of compile-time / memory needed at -O1 and above



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]