Hi Jakub,

gentle ping on this one. Is keeping get_insns () for the
expand_phi_nodes case fine with you? If so, I'll send a v3 that
names expand_phi_nodes in the comment. If you'd prefer another way,
I'm happy to change it.

Thanks,
Julius


Am Fr., 9. Okt. 2026 um 15:13 Uhr schrieb Julius Bairaktaris
<[email protected]>:
>
> On Fri, Oct 09, 2026 at 05:01:00PM +0200, Jakub Jelinek wrote:
> > But, if construct_init_block hasn't been called yet, then there is
> > no point to push it somewhere earlier in the sequence that will be pushed
> > into the init block, you can emit it at the current sequence without
> > push_topmost_sequence.
>
> There is a second caller before construct_init_block, expand_phi_nodes:
>
>   mips16_gp_pseudo_reg
>   ...
>   insert_value_copy_on_edge
>   eliminate_phi
>   expand_phi_nodes   <- pass_expand::execute
>
> There the current sequence is the copy sequence of one PHI edge, so
> with emit_insn (seq) the $gp load is only done on that edge.
>
> I tried your version: in gcc.c-torture/execute/20021015-1.c main then
> loads g_list through $gp before $gp is set, and 179 execution results
> fail with -mips16 -fpic that pass on master and with v2.
>
> So I'd keep get_insns () for that case.  Should I mention
> expand_phi_nodes in the comment?
>
> Julius

Reply via email to