> > The problem arises when we delete an insn from the df that contains a > > use but do not update the def-use chain of it's def as we do not have > > the use-def chain to reach it's def, This later causes a problem when > > we try to dump the def-use chain of it's def. > > I'm sorry but I don't understand the description of the problem. > What do you mean by "dump" and what problem does this "dump" cause ?
By dump I mean printing the function including all the DU chain info (in TODO_dump_func at the end of the pass). This causes a problem in our case becuase an insn with a use was deleted (in df_insn_delete) without unlinking it from the def-use chain of it's def (because we can not access the def using a use-def chain - we do not build it). Once we want to print the def's def-use chain we get an ICE. Hope this explains the problem better. > > So, it seems that when asking for only def-use problem and later dump > > the function we should ask for use-def problem as well to avoid cases > > like the above. > > The df chain dump routines are supposed to handle DU-only or UD-only cases > properly. If that's not the case, please send us a testcase > (and preferably file a bugzilla report). Thanks, Zadeck actually replied to this email and from his answer it seems that this is not really a bug as def-use chains are not enough in this case. I can add a testcase anyway. Thanks, Revital