rtl-ssa: Add entry point to allow re-parenting uses
This is needed by the upcoming aarch64 load pair pass, as it can re-order stores (when alias analysis determines this is safe) and thus change which mem def a given use consumes (in the RTL-SSA view, there is no alias disambiguation of memory). gcc/ChangeLog: * rtl-ssa/accesses.cc (function_info::reparent_use): New. * rtl-ssa/functions.h (function_info): Declare new member function reparent_use.
This commit is contained in:
parent
c95aab23c1
commit
ba230aa1b8
2 changed files with 11 additions and 0 deletions
|
@ -1239,6 +1239,14 @@ function_info::add_use (use_info *use)
|
||||||
insert_use_before (use, neighbor->value ());
|
insert_use_before (use, neighbor->value ());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
function_info::reparent_use (use_info *use, set_info *new_def)
|
||||||
|
{
|
||||||
|
remove_use (use);
|
||||||
|
use->set_def (new_def);
|
||||||
|
add_use (use);
|
||||||
|
}
|
||||||
|
|
||||||
// If USE has a known definition, remove USE from that definition's list
|
// If USE has a known definition, remove USE from that definition's list
|
||||||
// of uses. Also remove if it from the associated splay tree, if any.
|
// of uses. Also remove if it from the associated splay tree, if any.
|
||||||
void
|
void
|
||||||
|
|
|
@ -159,6 +159,9 @@ public:
|
||||||
// Like change_insns, but for a single change CHANGE.
|
// Like change_insns, but for a single change CHANGE.
|
||||||
void change_insn (insn_change &change);
|
void change_insn (insn_change &change);
|
||||||
|
|
||||||
|
// Given a use USE, re-parent it to get its def from NEW_DEF.
|
||||||
|
void reparent_use (use_info *use, set_info *new_def);
|
||||||
|
|
||||||
// If the changes that have been made to instructions require updates
|
// If the changes that have been made to instructions require updates
|
||||||
// to the CFG, perform those updates now. Return true if something changed.
|
// to the CFG, perform those updates now. Return true if something changed.
|
||||||
// If it did:
|
// If it did:
|
||||||
|
|
Loading…
Add table
Reference in a new issue