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.

Reply via email to