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