rtl-ssa: Avoid creating duplicated phis
If make_uses_available was called twice for the same use, we could end up trying to create duplicate definitions for the same extended live range. gcc/ * rtl-ssa/blocks.cc (function_info::create_degenerate_phi): Check whether the requested phi already exists.
This commit is contained in:
parent
d0eb4aceaa
commit
3e901615ff
1 changed files with 5 additions and 0 deletions
|
@ -525,6 +525,11 @@ function_info::create_phi (ebb_info *ebb, resource_info resource,
|
|||
phi_info *
|
||||
function_info::create_degenerate_phi (ebb_info *ebb, set_info *def)
|
||||
{
|
||||
// Allow the function to be called twice in succession for the same def.
|
||||
def_lookup dl = find_def (def->resource (), ebb->phi_insn ());
|
||||
if (set_info *set = dl.matching_set ())
|
||||
return as_a<phi_info *> (set);
|
||||
|
||||
access_info *input = def;
|
||||
phi_info *phi = create_phi (ebb, def->resource (), &input, 1);
|
||||
if (def->is_reg ())
|
||||
|
|
Loading…
Add table
Reference in a new issue