Hello,

I'm writing a Simple LTO pass.  I have placed my optimization routine under
execute() hook.  In my optimization routine, I want to delete an
instruction for which I have the gimple_stmt_iterator.  If I call
gsi_remove(gsi, true), it causes a crash in remove_stmt_from_en_lp_fn()
where it is expecting cfun and cfun is NULL.

If I call gsi_remove(gsi, false), it goes through fine but at final link
stage it shows undefined reference to a certain function.  It looks like
the entire function vanished.  And the instruction I tried to delete was
not even a part of that function.

Do I need to call update_ssa() after I delete the instruction using
gsi_remove(gsi, false)?

Is there a simple manner in which I can delete the instruction without
having to go through writing the full blown LTO pass with
serializers/deserializers and the like?

Thanks

Shubham

Reply via email to