mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 11:28:05 +02:00
aco/ra: remove live-in temporary from live_out_per_block when moving it
Otherwise, handle_loop_phis() might pass it to handle_live_in() and then we could have two phis for this variable. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Fixes:7c64623e94("aco/ra: refactor SSA repairing during register allocation") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10236> (cherry picked from commit5b8a4516e6)
This commit is contained in:
parent
6b385bf6ad
commit
09151387c5
2 changed files with 6 additions and 1 deletions
|
|
@ -1570,7 +1570,7 @@
|
|||
"description": "aco/ra: remove live-in temporary from live_out_per_block when moving it",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": "7c64623e9489a37297808f7346e6e80bd1c78587"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2200,6 +2200,11 @@ void register_allocation(Program *program, std::vector<IDSet>& live_out_per_bloc
|
|||
for (unsigned i = 0; i < preds.size(); i++)
|
||||
new_phi->operands[i] = Operand(pc.first);
|
||||
instructions.emplace_back(std::move(new_phi));
|
||||
|
||||
/* Remove from live_out_per_block (now used for live-in), because handle_loop_phis()
|
||||
* would re-create this phi later if this is a loop header.
|
||||
*/
|
||||
live_out_per_block[block.index].erase(orig.id());
|
||||
}
|
||||
|
||||
register_file.fill(definition);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue