On 7/16/24 8:34 AM, Richard Sandiford wrote:
order_nodes are used to implement ordered comparisons between
two insns with the same program point number. remove_insn would
remove an order_node from its splay tree, but didn't remove it
from the insn. This caused confusion if the insn was later
reinserted somewhere else that also needed an order_node.
Tested on aarch64-linux-gnu & x86_64-linux-gnu. Pushed as obvious.
Richard
gcc/
PR rtl-optimization/115929
* rtl-ssa/insns.cc (function_info::remove_insn): Remove an
order_node from the instruction as well as from the splay tree.
gcc/testsuite/
PR rtl-optimization/115929
* gcc.dg/torture/pr115929-1.c: New test.
OK. I do find myself wondering if you should just be pushing these
patches. You know this code far better than anyone.
jeff