On Mon, Feb 17, 2025 at 7:08 PM Richard Earnshaw (lists) <richard.earns...@arm.com> wrote: > > On 13/02/2025 21:43, H.J. Lu wrote: > > Increment LABEL_NUSES when using minipool_vector_label to avoid the zero > > use count on minipool_vector_label. > > > > PR target/118866 > > * config/arm/arm.cc (arm_reorg): Increment LABEL_NUSES when > > using minipool_vector_label. > > > > Whilst this patch isn't wrong per se, I'm concerned that it's likely due to > something else violating the assumptions that a > TARGET_MACHINE_DEPENDENT_REORG pass implementation is entitled to make. On > arm, the insertion of minipools in the code has to assume that the BB layout > won't change after that point (otherwise the offset calculations will be > wrong). In fact, only changes that reduce code size within a single basic > block are going to be safe at this point. > > So what's changed to make this patch needed, and is it being run too late? > > R.
I am working on: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47253 After a sibcall is folded into a conditional branch, the old conditional branch target label becomes used. But the basic block can't be removed if it is still reachable. In this case, I'd like to change final_scan_insn_1 to skip the code label if its LABEL_NUSES is 0. This means that all referenced labels should have their LABEL_NUSES != 0. I will find another way to deal with it. -- H.J.