On Jun 3, 2011, Eric Botcazou <ebotca...@adacore.com> wrote: >> Hmm... Maybe it could, I'm not sure. The problem is that DCE removes >> insns, and then DF associates remaining uses in debug insns to earlier >> DEFs. Adjusting debug insns in DCE is right per the VTA design motto: >> decide as if debug insns weren't there, adjust them as you would adjust >> non-debug insns. This code borrowed from DF into DCE is the “adjust” >> bit.
> But DCE isn't the only pass that removes insns. Yup. > Does the same logic need to be replicated in all passes that do? Those that remove sets whose DESTs may still be receved by debug insns ought to adjust debug insns, yeah. I think (hope) we have them all covered. Do you know of any we missed? > On the other hand, these passes call into DF when they remove insns, > so DF is a central place here. It might be too late for DF to do anything sensible to preserve the debug info rather than just throw it away, as your partial approval suggests. >> Err... These depend on the interface changes of functions defined >> within DF to work. > No, they don't, I can compile them independently. Indeed, sorry, I misread it. -- Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ You must be the change you wish to see in the world. -- Gandhi Be Free! -- http://FSFLA.org/ FSF Latin America board member Free Software Evangelist Red Hat Brazil Compiler Engineer