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:
Alex Coplan 2023-08-17 16:16:46 +01:00
parent c95aab23c1
commit ba230aa1b8
2 changed files with 11 additions and 0 deletions

View File

@ -1239,6 +1239,14 @@ function_info::add_use (use_info *use)
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
// of uses. Also remove if it from the associated splay tree, if any.
void

View File

@ -159,6 +159,9 @@ public:
// Like change_insns, but for a single 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
// to the CFG, perform those updates now. Return true if something changed.
// If it did: