Gunther Nikl <[EMAIL PROTECTED]> writes:

> I am trying to add instructions into function prologue/epilogue. These
> instructions shall save and load "fixed" registers to avoid assembly.
> 
> Register saving in the prologue appears to work. The restore code in the
> epilogue aborts in flow.c/propagate_one_insn with
> 
>   "Attempt to delete prologue/epilogue insn"
> 
> unless the stackslot was marked with MEM_VOLATILE_P. I don't think thats
> the proper fix.

As Nathan said, you can add a USE.  Or in some cases the correct fix
is to define EPILOGUE_USES and/or EH_USES.

In some cases this error message can indicate a bug in the
prologue/epilogue code.  For example, if you accidentally try to save
two different registers into the same stack slot, flow will cleverly
try to delete the first store, and then cleverly notice that it is
deleting a prologue insn.  Similarly if you accidentally save a
register into a stack slot which is being used for a temporary
variable.

Ian

Reply via email to