On 6/3/19 12:18 PM, Marc Glisse wrote: > On Tue, 4 Jun 2019, 李宗霖 wrote: > >> I use gsi_remove to remove some call statement. >> Then it comes out some error message after the last basic block. >> But I didn't use the function(ex. like dominated_by_p, >> get_continuation_for_phi, etc) in these error message. >> After that, I add bitmap_set_bit to fix, but it still the same. > > The description is super vague... If you look at other places in the > compiler that use gsi_remove, there are often some other necessary > cleanups next to it, typically unlink_stmt_vdef or release_defs, but > there can be others depending on the type of statement, the pass, etc. > The issue may not manifest immediately but only the next time something > tries to use a datastructure that wasn't updated. > It isn't clear what bitmap_set_bit has to do with anything, without > context. The release_defs and such shouldn't be fatal like this -- you end up leaking SSA_NAMEs, but that's not the end of the world. The particular error in this case indicates that removal of the call is somehow changing the shape of the control flow graph. This can potentially clobber the dominance graph as well. BUt yes, the report is too vague to really diagnose what's going on. jeff