Hi,

On Wed, 6 May 2009, Michael Matz wrote:

> > There's already emit_insn_at_entry in cfgrtl.c.  Would that work?
> 
> Unfortunately not.  That one also wants to immediately commit the just 
> inserted instructions, which doesn't work during the transition phase 
> from GIMPLE to RTL.  But just queuing them should be fine.

I.e. like so.  It fixes the testcase and to my untrained eye the output 
looks correct (at least there seems to be loads from something .PIC 
related :) ).  But better testing would be appreciated.


Ciao,
Michael.
-- 
Index: config/arm/arm.c
===================================================================
--- config/arm/arm.c    (revision 147187)
+++ config/arm/arm.c    (working copy)
@@ -3596,7 +3596,7 @@ require_pic_register (void)
 
              seq = get_insns ();
              end_sequence ();
-             emit_insn_after (seq, entry_of_function ());
+             insert_insn_on_edge (seq, single_succ_edge (ENTRY_BLOCK_PTR));
            }
        }
     }

Reply via email to